Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/mm/as.c

    r315b7e3 r75b139f  
    574574 * @param backend_data NULL or a pointer to custom backend data.
    575575 * @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.
    578579 *                     Otherwise ignored.
    579580 *
     
    585586    mem_backend_data_t *backend_data, uintptr_t *base, uintptr_t bound)
    586587{
    587         if ((*base != (uintptr_t) -1) && !IS_ALIGNED(*base, PAGE_SIZE))
     588        if ((*base != (uintptr_t) AS_AREA_ANY) && !IS_ALIGNED(*base, PAGE_SIZE))
    588589                return NULL;
    589590       
     
    601602        mutex_lock(&as->lock);
    602603       
    603         if (*base == (uintptr_t) -1) {
     604        if (*base == (uintptr_t) AS_AREA_ANY) {
    604605                *base = as_get_unmapped_area(as, bound, size, guarded);
    605606                if (*base == (uintptr_t) -1) {
     
    21822183
    21832184sysarg_t sys_as_area_create(uintptr_t base, size_t size, unsigned int flags,
    2184     uintptr_t bound)
     2185    uintptr_t bound, int pager)
    21852186{
    21862187        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        }
    21872197        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);
    21892199        if (area == NULL)
    2190                 return (sysarg_t) -1;
     2200                return (sysarg_t) AS_MAP_FAILED;
    21912201       
    21922202        return (sysarg_t) virt;
Note: See TracChangeset for help on using the changeset viewer.