Changes in kernel/generic/include/mm/as.h [908bb96:ae6021d] in mainline
- File:
-
- 1 edited
-
kernel/generic/include/mm/as.h (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/include/mm/as.h
r908bb96 rae6021d 42 42 #include <arch/mm/asid.h> 43 43 #include <arch/istate.h> 44 #include <typedefs.h>45 44 #include <synch/spinlock.h> 46 45 #include <synch/mutex.h> … … 48 47 #include <adt/btree.h> 49 48 #include <lib/elf.h> 49 #include <arch.h> 50 51 #define AS THE->as 52 50 53 51 54 /** … … 140 143 /** This structure can be deallocated if refcount drops to 0. */ 141 144 size_t refcount; 142 145 /** True if the area has been ever shared. */ 146 bool shared; 147 143 148 /** 144 149 * B+tree containing complete map of anonymous pages of the shared area. 145 150 */ 146 151 btree_t pagemap; 152 153 /** Address space area backend. */ 154 struct mem_backend *backend; 155 /** Address space area shared data. */ 156 void *backend_shared_data; 147 157 } share_info_t; 148 158 … … 159 169 /** Backend data stored in address space area. */ 160 170 typedef union mem_backend_data { 171 /* anon_backend members */ 172 struct { 173 }; 174 161 175 /** elf_backend members */ 162 176 struct { … … 169 183 uintptr_t base; 170 184 size_t frames; 185 bool anonymous; 171 186 }; 187 188 /** user_backend members */ 189 struct { 190 as_area_pager_info_t pager_info; 191 }; 192 172 193 } mem_backend_data_t; 173 194 … … 226 247 int (* page_fault)(as_area_t *, uintptr_t, pf_access_t); 227 248 void (* frame_free)(as_area_t *, uintptr_t, uintptr_t); 249 250 bool (* create_shared_data)(as_area_t *); 251 void (* destroy_shared_data)(void *); 228 252 } mem_backend_t; 229 253 … … 282 306 extern mem_backend_t elf_backend; 283 307 extern mem_backend_t phys_backend; 308 extern mem_backend_t user_backend; 284 309 285 310 /* Address space area related syscalls. */ 286 extern sysarg_t sys_as_area_create(uintptr_t, size_t, unsigned int, uintptr_t); 311 extern sysarg_t sys_as_area_create(uintptr_t, size_t, unsigned int, uintptr_t, 312 as_area_pager_info_t *); 287 313 extern sysarg_t sys_as_area_resize(uintptr_t, size_t, unsigned int); 288 314 extern sysarg_t sys_as_area_change_flags(uintptr_t, unsigned int);
Note:
See TracChangeset
for help on using the changeset viewer.
