Changes in kernel/generic/src/mm/as.c [315b7e3:75b139f] in mainline
- File:
-
- 1 edited
-
kernel/generic/src/mm/as.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/mm/as.c
r315b7e3 r75b139f 574 574 * @param backend_data NULL or a pointer to custom backend data. 575 575 * @param base Starting virtual address of the area. 576 * If set to -1, a suitable mappable area is found. 577 * @param bound Lowest address bound if base is set to -1. 576 * If set to AS_AREA_ANY, a suitable mappable area is 577 * found. 578 * @param bound Lowest address bound if base is set to AS_AREA_ANY. 578 579 * Otherwise ignored. 579 580 * … … 585 586 mem_backend_data_t *backend_data, uintptr_t *base, uintptr_t bound) 586 587 { 587 if ((*base != (uintptr_t) -1) && !IS_ALIGNED(*base, PAGE_SIZE))588 if ((*base != (uintptr_t) AS_AREA_ANY) && !IS_ALIGNED(*base, PAGE_SIZE)) 588 589 return NULL; 589 590 … … 601 602 mutex_lock(&as->lock); 602 603 603 if (*base == (uintptr_t) -1) {604 if (*base == (uintptr_t) AS_AREA_ANY) { 604 605 *base = as_get_unmapped_area(as, bound, size, guarded); 605 606 if (*base == (uintptr_t) -1) { … … 2182 2183 2183 2184 sysarg_t sys_as_area_create(uintptr_t base, size_t size, unsigned int flags, 2184 uintptr_t bound )2185 uintptr_t bound, int pager) 2185 2186 { 2186 2187 uintptr_t virt = base; 2188 mem_backend_t *backend; 2189 mem_backend_data_t backend_data; 2190 2191 if (pager == AS_AREA_UNPAGED) 2192 backend = &anon_backend; 2193 else { 2194 backend = &user_backend; 2195 backend_data.pager = pager; 2196 } 2187 2197 as_area_t *area = as_area_create(AS, flags, size, 2188 AS_AREA_ATTR_NONE, &anon_backend, NULL, &virt, bound);2198 AS_AREA_ATTR_NONE, backend, &backend_data, &virt, bound); 2189 2199 if (area == NULL) 2190 return (sysarg_t) -1;2200 return (sysarg_t) AS_MAP_FAILED; 2191 2201 2192 2202 return (sysarg_t) virt;
Note:
See TracChangeset
for help on using the changeset viewer.
