Changeset b3f8fb7 in mainline for kernel/genarch/include/mm/as_ht.h
- Timestamp:
- 2007-01-28T13:25:49Z (17 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/genarch/include/mm/as_ht.h
r1ba41c5 rb3f8fb7 36 36 #define KERN_AS_HT_H_ 37 37 38 #include <mm/as.h> 38 #include <mm/mm.h> 39 #include <arch/mm/asid.h> 40 #include <adt/list.h> 41 #include <adt/btree.h> 42 #include <synch/mutex.h> 39 43 40 extern as_operations_t as_ht_operations; 44 /** Address space structure. 45 * 46 * as_t contains the list of as_areas of userspace accessible 47 * pages for one or more tasks. Ranges of kernel memory pages are not 48 * supposed to figure in the list as they are shared by all tasks and 49 * set up during system initialization. 50 */ 51 typedef struct { 52 /** Protected by asidlock. */ 53 link_t inactive_as_with_asid_link; 54 55 mutex_t lock; 56 57 /** Number of references (i.e tasks that reference this as). */ 58 count_t refcount; 59 60 /** Number of processors on wich is this address space active. */ 61 count_t cpu_refcount; 62 63 /** B+tree of address space areas. */ 64 btree_t as_area_btree; 65 66 /** Address space identifier. Constant on architectures that do not support ASIDs.*/ 67 asid_t asid; 68 69 /** Architecture specific content. */ 70 as_arch_t arch; 71 } as_t; 72 73 typedef struct { 74 link_t link; /**< Page hash table link. */ 75 as_t *as; /**< Address space. */ 76 uintptr_t page; /**< Virtual memory page. */ 77 uintptr_t frame; /**< Physical memory frame. */ 78 unsigned g : 1; /**< Global page. */ 79 unsigned x : 1; /**< Execute. */ 80 unsigned w : 1; /**< Writable. */ 81 unsigned k : 1; /**< Kernel privileges required. */ 82 unsigned c : 1; /**< Cacheable. */ 83 unsigned a : 1; /**< Accessed. */ 84 unsigned d : 1; /**< Dirty. */ 85 unsigned p : 1; /**< Present. */ 86 } pte_t; 41 87 42 88 #endif
Note:
See TracChangeset
for help on using the changeset viewer.