Changeset 2057572 in mainline for uspace/libc/generic/as.c
- Timestamp:
- 2007-03-27T23:40:25Z (18 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 399ece9
- Parents:
- 8d37a06
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/libc/generic/as.c
r8d37a06 r2057572 56 56 { 57 57 return (void *) __SYSCALL3(SYS_AS_AREA_CREATE, (sysarg_t ) address, 58 58 (sysarg_t) size, (sysarg_t) flags); 59 59 } 60 60 … … 70 70 int as_area_resize(void *address, size_t size, int flags) 71 71 { 72 return __SYSCALL3(SYS_AS_AREA_RESIZE, (sysarg_t ) address, (sysarg_t)73 72 return __SYSCALL3(SYS_AS_AREA_RESIZE, (sysarg_t ) address, 73 (sysarg_t) size, (sysarg_t) flags); 74 74 } 75 75 … … 144 144 * 145 145 * @param sz Requested size of the allocation. 146 * @param color Requested virtual color of the allocation.147 146 * 148 147 * @return Pointer to the beginning … … 151 150 * the pointer to last area 152 151 */ 153 void *as_get_mappable_page(size_t sz , int color)152 void *as_get_mappable_page(size_t sz) 154 153 { 155 154 void *res; … … 167 166 168 167 /* 169 * Make sure we allocate from naturally aligned address and a page of 170 * appropriate color. 168 * Make sure we allocate from naturally aligned address. 171 169 */ 172 170 i = 0; 173 do { 174 if (!last_allocated) { 175 last_allocated = (void *) ALIGN_UP((void *) &_heap + 176 maxheapsize, asz); 177 } else { 178 last_allocated = (void *) ALIGN_UP(((uintptr_t) 179 last_allocated) + (int) (i > 0), asz); 180 } 181 } while ((asz < (1 << (PAGE_COLOR_BITS + PAGE_WIDTH))) && 182 (PAGE_COLOR((uintptr_t) last_allocated) != color) && 183 (++i < (1 << PAGE_COLOR_BITS))); 171 if (!last_allocated) { 172 last_allocated = (void *) ALIGN_UP((void *) &_heap + 173 maxheapsize, asz); 174 } else { 175 last_allocated = (void *) ALIGN_UP(((uintptr_t) 176 last_allocated) + (int) (i > 0), asz); 177 } 184 178 185 179 res = last_allocated;
Note:
See TracChangeset
for help on using the changeset viewer.