Rev 727 | Rev 755 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 727 | Rev 754 | ||
---|---|---|---|
Line 63... | Line 63... | ||
63 | SPINLOCK_DECLARE(lock); |
63 | SPINLOCK_DECLARE(lock); |
64 | link_t link; |
64 | link_t link; |
65 | as_area_type_t type; |
65 | as_area_type_t type; |
66 | size_t size; /**< Size of this area in multiples of PAGE_SIZE. */ |
66 | size_t size; /**< Size of this area in multiples of PAGE_SIZE. */ |
67 | __address base; /**< Base address of this area. */ |
67 | __address base; /**< Base address of this area. */ |
68 | index_t *mapping; /**< Map of physical frame numbers mapped to virtual page numbers in this area. */ |
- | |
69 | }; |
68 | }; |
70 | 69 | ||
71 | /** Address space structure. |
70 | /** Address space structure. |
72 | * |
71 | * |
73 | * as_t contains the list of as_areas of userspace accessible |
72 | * as_t contains the list of as_areas of userspace accessible |
Line 85... | Line 84... | ||
85 | asid_t asid; /**< Address space identifier. */ |
84 | asid_t asid; /**< Address space identifier. */ |
86 | }; |
85 | }; |
87 | 86 | ||
88 | extern as_t * as_create(pte_t *ptl0, int flags); |
87 | extern as_t * as_create(pte_t *ptl0, int flags); |
89 | extern as_area_t *as_area_create(as_t *as, as_area_type_t type, size_t size, __address base); |
88 | extern as_area_t *as_area_create(as_t *as, as_area_type_t type, size_t size, __address base); |
90 | extern void as_area_set_mapping(as_area_t *a, index_t vpn, index_t pfn); |
89 | extern void as_set_mapping(as_t *as, __address page, __address frame); |
91 | extern int as_page_fault(__address page); |
90 | extern int as_page_fault(__address page); |
92 | extern void as_install(as_t *m); |
91 | extern void as_install(as_t *m); |
93 | 92 | ||
94 | /* Interface to be implemented by architectures. */ |
93 | /* Interface to be implemented by architectures. */ |
95 | #ifndef as_install_arch |
94 | #ifndef as_install_arch |