Changeset b3f8fb7 in mainline for kernel/generic/include/mm/page.h
- Timestamp:
- 2007-01-28T13:25:49Z (18 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 8e8c1a5
- Parents:
- 1ba41c5
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/include/mm/page.h
r1ba41c5 rb3f8fb7 36 36 #define KERN_PAGE_H_ 37 37 38 #include <arch/mm/asid.h>39 38 #include <arch/types.h> 40 #include < typedefs.h>39 #include <mm/as.h> 41 40 #include <memstr.h> 42 43 #define PAGE_CACHEABLE_SHIFT 044 #define PAGE_NOT_CACHEABLE_SHIFT PAGE_CACHEABLE_SHIFT45 #define PAGE_PRESENT_SHIFT 146 #define PAGE_NOT_PRESENT_SHIFT PAGE_PRESENT_SHIFT47 #define PAGE_USER_SHIFT 248 #define PAGE_KERNEL_SHIFT PAGE_USER_SHIFT49 #define PAGE_READ_SHIFT 350 #define PAGE_WRITE_SHIFT 451 #define PAGE_EXEC_SHIFT 552 #define PAGE_GLOBAL_SHIFT 653 54 #define PAGE_NOT_CACHEABLE (0<<PAGE_CACHEABLE_SHIFT)55 #define PAGE_CACHEABLE (1<<PAGE_CACHEABLE_SHIFT)56 57 #define PAGE_PRESENT (0<<PAGE_PRESENT_SHIFT)58 #define PAGE_NOT_PRESENT (1<<PAGE_PRESENT_SHIFT)59 60 #define PAGE_USER (1<<PAGE_USER_SHIFT)61 #define PAGE_KERNEL (0<<PAGE_USER_SHIFT)62 63 #define PAGE_READ (1<<PAGE_READ_SHIFT)64 #define PAGE_WRITE (1<<PAGE_WRITE_SHIFT)65 #define PAGE_EXEC (1<<PAGE_EXEC_SHIFT)66 67 #define PAGE_GLOBAL (1<<PAGE_GLOBAL_SHIFT)68 69 41 70 42 /** … … 73 45 #define PAGE_COLOR(va) (((va) >> PAGE_WIDTH) & ((1 << PAGE_COLOR_BITS) - 1)) 74 46 75 /** Page fault access type. */76 enum pf_access {77 PF_ACCESS_READ,78 PF_ACCESS_WRITE,79 PF_ACCESS_EXEC80 };81 typedef enum pf_access pf_access_t;82 83 47 /** Operations to manipulate page mappings. */ 84 struct page_mapping_operations{85 void (* mapping_insert)(as_t *as, uintptr_t page, uintptr_t frame, int86 flags);48 typedef struct { 49 void (* mapping_insert)(as_t *as, uintptr_t page, uintptr_t frame, 50 int flags); 87 51 void (* mapping_remove)(as_t *as, uintptr_t page); 88 52 pte_t *(* mapping_find)(as_t *as, uintptr_t page); 89 }; 90 typedef struct page_mapping_operations page_mapping_operations_t; 53 } page_mapping_operations_t; 91 54 92 55 extern page_mapping_operations_t *page_mapping_operations; … … 95 58 extern void page_table_lock(as_t *as, bool lock); 96 59 extern void page_table_unlock(as_t *as, bool unlock); 97 extern void page_mapping_insert(as_t *as, uintptr_t page, uintptr_t frame, int98 flags);60 extern void page_mapping_insert(as_t *as, uintptr_t page, uintptr_t frame, 61 int flags); 99 62 extern void page_mapping_remove(as_t *as, uintptr_t page); 100 63 extern pte_t *page_mapping_find(as_t *as, uintptr_t page);
Note:
See TracChangeset
for help on using the changeset viewer.