Subversion Repositories HelenOS-historic

Rev

Rev 1380 | Rev 1702 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1380 Rev 1468
Line 42... Line 42...
42
#include <typedefs.h>
42
#include <typedefs.h>
43
#include <memstr.h>
43
#include <memstr.h>
44
#include <arch.h>
44
#include <arch.h>
45
 
45
 
46
static pte_t *ptl0_create(int flags);
46
static pte_t *ptl0_create(int flags);
-
 
47
static void ptl0_destroy(pte_t *page_table);
47
 
48
 
48
static void pt_lock(as_t *as, bool lock);
49
static void pt_lock(as_t *as, bool lock);
49
static void pt_unlock(as_t *as, bool unlock);
50
static void pt_unlock(as_t *as, bool unlock);
50
 
51
 
51
as_operations_t as_pt_operations = {
52
as_operations_t as_pt_operations = {
52
    .page_table_create = ptl0_create,
53
    .page_table_create = ptl0_create,
-
 
54
    .page_table_destroy = ptl0_destroy,
53
    .page_table_lock = pt_lock,
55
    .page_table_lock = pt_lock,
54
    .page_table_unlock = pt_unlock
56
    .page_table_unlock = pt_unlock
55
};
57
};
56
 
58
 
57
/** Create PTL0.
59
/** Create PTL0.
Line 92... Line 94...
92
    }
94
    }
93
 
95
 
94
    return (pte_t *) KA2PA((__address) dst_ptl0);
96
    return (pte_t *) KA2PA((__address) dst_ptl0);
95
}
97
}
96
 
98
 
-
 
99
/** Destroy page table.
-
 
100
 *
-
 
101
 * Destroy PTL0, other levels are expected to be already deallocated.
-
 
102
 *
-
 
103
 * @param page_table Physical address of PTL0.
-
 
104
 */
-
 
105
void ptl0_destroy(pte_t *page_table)
-
 
106
{
-
 
107
    frame_free(ADDR2PFN((__address) page_table));
-
 
108
}
-
 
109
 
97
/** Lock page tables.
110
/** Lock page tables.
98
 *
111
 *
99
 * Lock only the address space.
112
 * Lock only the address space.
100
 * Interrupts must be disabled.
113
 * Interrupts must be disabled.
101
 *
114
 *