Rev 1702 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1702 | Rev 1780 | ||
|---|---|---|---|
| Line 74... | Line 74... | ||
| 74 | }; |
74 | }; |
| 75 | typedef enum pf_access pf_access_t; |
75 | typedef enum pf_access pf_access_t; |
| 76 | 76 | ||
| 77 | /** Operations to manipulate page mappings. */ |
77 | /** Operations to manipulate page mappings. */ |
| 78 | struct page_mapping_operations { |
78 | struct page_mapping_operations { |
| 79 | void (* mapping_insert)(as_t *as, __address page, __address frame, int flags); |
79 | void (* mapping_insert)(as_t *as, uintptr_t page, uintptr_t frame, int flags); |
| 80 | void (* mapping_remove)(as_t *as, __address page); |
80 | void (* mapping_remove)(as_t *as, uintptr_t page); |
| 81 | pte_t *(* mapping_find)(as_t *as, __address page); |
81 | pte_t *(* mapping_find)(as_t *as, uintptr_t page); |
| 82 | }; |
82 | }; |
| 83 | typedef struct page_mapping_operations page_mapping_operations_t; |
83 | typedef struct page_mapping_operations page_mapping_operations_t; |
| 84 | 84 | ||
| 85 | extern page_mapping_operations_t *page_mapping_operations; |
85 | extern page_mapping_operations_t *page_mapping_operations; |
| 86 | 86 | ||
| 87 | extern void page_init(void); |
87 | extern void page_init(void); |
| 88 | extern void page_table_lock(as_t *as, bool lock); |
88 | extern void page_table_lock(as_t *as, bool lock); |
| 89 | extern void page_table_unlock(as_t *as, bool unlock); |
89 | extern void page_table_unlock(as_t *as, bool unlock); |
| 90 | extern void page_mapping_insert(as_t *as, __address page, __address frame, int flags); |
90 | extern void page_mapping_insert(as_t *as, uintptr_t page, uintptr_t frame, int flags); |
| 91 | extern void page_mapping_remove(as_t *as, __address page); |
91 | extern void page_mapping_remove(as_t *as, uintptr_t page); |
| 92 | extern pte_t *page_mapping_find(as_t *as, __address page); |
92 | extern pte_t *page_mapping_find(as_t *as, uintptr_t page); |
| 93 | extern pte_t *page_table_create(int flags); |
93 | extern pte_t *page_table_create(int flags); |
| 94 | extern void page_table_destroy(pte_t *page_table); |
94 | extern void page_table_destroy(pte_t *page_table); |
| 95 | extern void map_structure(__address s, size_t size); |
95 | extern void map_structure(uintptr_t s, size_t size); |
| 96 | extern __address hw_map(__address physaddr, size_t size); |
96 | extern uintptr_t hw_map(uintptr_t physaddr, size_t size); |
| 97 | 97 | ||
| 98 | #endif |
98 | #endif |
| 99 | 99 | ||
| 100 | /** @} |
100 | /** @} |
| 101 | */ |
101 | */ |