/kernel/trunk/generic/include/mm/page.h |
---|
61,8 → 61,8 |
/** Operations to manipulate page mappings. */ |
struct page_operations { |
void (* mapping_insert)(as_t *as, __address page, __address frame, int flags, __address root); |
pte_t *(* mapping_find)(as_t *as, __address page, __address root); |
void (* mapping_insert)(as_t *as, __address page, __address frame, int flags); |
pte_t *(* mapping_find)(as_t *as, __address page); |
}; |
typedef struct page_operations page_operations_t; |
69,8 → 69,9 |
extern page_operations_t *page_operations; |
extern void page_init(void); |
extern void page_mapping_insert(as_t *as, __address page, __address frame, int flags, __address root); |
extern pte_t *page_mapping_find(as_t *as, __address page, __address root); |
extern void page_mapping_insert(as_t *as, __address page, __address frame, int flags); |
extern pte_t *page_mapping_find(as_t *as, __address page); |
extern pte_t *page_table_create(int flags); |
extern void map_structure(__address s, size_t size); |
#endif |
/kernel/trunk/generic/include/mm/as.h |
---|
80,13 → 80,24 |
SPINLOCK_DECLARE(lock); |
link_t as_area_head; |
pte_t *ptl0; |
asid_t asid; /**< Address space identifier. */ |
/** Page table pointer. Constant on architectures that use global page hash table. */ |
pte_t *page_table; |
/** Address space identifier. Constant on architectures that do not support ASIDs.*/ |
asid_t asid; |
}; |
struct as_operations { |
pte_t *(* page_table_create)(int flags); |
}; |
typedef struct as_operations as_operations_t; |
extern as_t *AS_KERNEL; |
extern as_operations_t *as_operations; |
extern as_t *as_create(pte_t *ptl0, int flags); |
extern void as_init(void); |
extern as_t *as_create(int flags); |
extern as_area_t *as_area_create(as_t *as, as_area_type_t type, size_t size, __address base); |
extern void as_set_mapping(as_t *as, __address page, __address frame); |
extern int as_page_fault(__address page); |
/kernel/trunk/generic/include/mm/buddy.h |
---|
57,5 → 57,4 |
extern void buddy_system_free(buddy_system_t *b, link_t *block); |
extern void buddy_system_structure_print(buddy_system_t *b, size_t elem_size); |
#endif |