Rev 2007 | Rev 2071 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2007 | Rev 2015 | ||
---|---|---|---|
Line 80... | Line 80... | ||
80 | }; |
80 | }; |
81 | typedef enum pf_access pf_access_t; |
81 | typedef enum pf_access pf_access_t; |
82 | 82 | ||
83 | /** Operations to manipulate page mappings. */ |
83 | /** Operations to manipulate page mappings. */ |
84 | struct page_mapping_operations { |
84 | struct page_mapping_operations { |
85 | void (* mapping_insert)(as_t *as, uintptr_t page, uintptr_t frame, int flags); |
85 | void (* mapping_insert)(as_t *as, uintptr_t page, uintptr_t frame, int |
- | 86 | flags); |
|
86 | void (* mapping_remove)(as_t *as, uintptr_t page); |
87 | void (* mapping_remove)(as_t *as, uintptr_t page); |
87 | pte_t *(* mapping_find)(as_t *as, uintptr_t page); |
88 | pte_t *(* mapping_find)(as_t *as, uintptr_t page); |
88 | }; |
89 | }; |
89 | typedef struct page_mapping_operations page_mapping_operations_t; |
90 | typedef struct page_mapping_operations page_mapping_operations_t; |
90 | 91 | ||
91 | extern page_mapping_operations_t *page_mapping_operations; |
92 | extern page_mapping_operations_t *page_mapping_operations; |
92 | 93 | ||
93 | extern void page_init(void); |
94 | extern void page_init(void); |
94 | extern void page_table_lock(as_t *as, bool lock); |
95 | extern void page_table_lock(as_t *as, bool lock); |
95 | extern void page_table_unlock(as_t *as, bool unlock); |
96 | extern void page_table_unlock(as_t *as, bool unlock); |
96 | extern void page_mapping_insert(as_t *as, uintptr_t page, uintptr_t frame, int flags); |
97 | extern void page_mapping_insert(as_t *as, uintptr_t page, uintptr_t frame, int |
- | 98 | flags); |
|
97 | extern void page_mapping_remove(as_t *as, uintptr_t page); |
99 | extern void page_mapping_remove(as_t *as, uintptr_t page); |
98 | extern pte_t *page_mapping_find(as_t *as, uintptr_t page); |
100 | extern pte_t *page_mapping_find(as_t *as, uintptr_t page); |
99 | extern pte_t *page_table_create(int flags); |
101 | extern pte_t *page_table_create(int flags); |
100 | extern void page_table_destroy(pte_t *page_table); |
102 | extern void page_table_destroy(pte_t *page_table); |
101 | extern void map_structure(uintptr_t s, size_t size); |
103 | extern void map_structure(uintptr_t s, size_t size); |