Changeset 2c2d54a in mainline for uspace/lib/c
- Timestamp:
- 2016-09-02T17:58:05Z (9 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 4c3602c4
- Parents:
- 4bf0926e (diff), 3233adb (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- uspace/lib/c
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/as.c
r4bf0926e r2c2d54a 45 45 /** Create address space area. 46 46 * 47 * @param base Starting virtual address of the area. 48 * If set to AS_AREA_ANY ((void *) -1), 49 * the kernel finds a mappable area. 50 * @param size Size of the area. 51 * @param flags Flags describing type of the area. 47 * @param base Starting virtual address of the area. 48 * If set to AS_AREA_ANY ((void *) -1), the kernel finds a 49 * mappable area. 50 * @param size Size of the area. 51 * @param flags Flags describing type of the area. 52 * @param pager_info Pager info structure or AS_AREA_UNPAGED (NULL) if the area 53 * is not paged (i.e. anonymous). 52 54 * 53 55 * @return Starting virtual address of the created area on success. … … 55 57 * 56 58 */ 57 void *as_area_create(void *base, size_t size, unsigned int flags) 59 void *as_area_create(void *base, size_t size, unsigned int flags, 60 as_area_pager_info_t *pager_info) 58 61 { 59 return (void *) __SYSCALL4(SYS_AS_AREA_CREATE, (sysarg_t) base, 60 (sysarg_t) size, (sysarg_t) flags, (sysarg_t) __entry); 62 return (void *) __SYSCALL5(SYS_AS_AREA_CREATE, (sysarg_t) base, 63 (sysarg_t) size, (sysarg_t) flags, (sysarg_t) __entry, 64 (sysarg_t) pager_info); 61 65 } 62 66 -
uspace/lib/c/generic/async.c
r4bf0926e r2c2d54a 116 116 #include <stdlib.h> 117 117 #include <macros.h> 118 #include <as.h> 119 #include <abi/mm/as.h> 118 120 #include "private/libc.h" 119 121 … … 3381 3383 } 3382 3384 3385 void *async_as_area_create(void *base, size_t size, unsigned int flags, 3386 async_sess_t *pager, sysarg_t id1, sysarg_t id2, sysarg_t id3) 3387 { 3388 as_area_pager_info_t pager_info = { 3389 .pager = pager->phone, 3390 .id1 = id1, 3391 .id2 = id2, 3392 .id3 = id3 3393 }; 3394 return as_area_create(base, size, flags, &pager_info); 3395 } 3396 3383 3397 /** @} 3384 3398 */ -
uspace/lib/c/generic/elf/elf_mod.c
r4bf0926e r2c2d54a 370 370 */ 371 371 a = as_area_create((uint8_t *) base + bias, mem_sz, 372 AS_AREA_READ | AS_AREA_WRITE | AS_AREA_CACHEABLE); 372 AS_AREA_READ | AS_AREA_WRITE | AS_AREA_CACHEABLE, 373 AS_AREA_UNPAGED); 373 374 if (a == AS_MAP_FAILED) { 374 375 DPRINTF("memory mapping failed (%p, %zu)\n", -
uspace/lib/c/generic/fibril.c
r4bf0926e r2c2d54a 279 279 size_t stack_size = (stksz == FIBRIL_DFLT_STK_SIZE) ? 280 280 stack_size_get() : stksz; 281 fibril->stack = as_area_create( (void *) -1, stack_size,281 fibril->stack = as_area_create(AS_AREA_ANY, stack_size, 282 282 AS_AREA_READ | AS_AREA_WRITE | AS_AREA_CACHEABLE | AS_AREA_GUARD | 283 AS_AREA_LATE_RESERVE );283 AS_AREA_LATE_RESERVE, AS_AREA_UNPAGED); 284 284 if (fibril->stack == (void *) -1) { 285 285 fibril_teardown(fibril, false); -
uspace/lib/c/generic/io/chargrid.c
r4bf0926e r2c2d54a 60 60 if ((flags & CHARGRID_FLAG_SHARED) == CHARGRID_FLAG_SHARED) { 61 61 scrbuf = (chargrid_t *) as_area_create(AS_AREA_ANY, size, 62 AS_AREA_READ | AS_AREA_WRITE | AS_AREA_CACHEABLE); 62 AS_AREA_READ | AS_AREA_WRITE | AS_AREA_CACHEABLE, 63 AS_AREA_UNPAGED); 63 64 if (scrbuf == AS_MAP_FAILED) 64 65 return NULL; -
uspace/lib/c/generic/malloc.c
r4bf0926e r2c2d54a 354 354 size_t asize = ALIGN_UP(size, PAGE_SIZE); 355 355 void *astart = as_area_create(AS_AREA_ANY, asize, 356 AS_AREA_WRITE | AS_AREA_READ | AS_AREA_CACHEABLE );356 AS_AREA_WRITE | AS_AREA_READ | AS_AREA_CACHEABLE, AS_AREA_UNPAGED); 357 357 if (astart == AS_MAP_FAILED) 358 358 return false; -
uspace/lib/c/generic/thread.c
r4bf0926e r2c2d54a 116 116 void *stack = as_area_create(AS_AREA_ANY, stack_size, 117 117 AS_AREA_READ | AS_AREA_WRITE | AS_AREA_CACHEABLE | AS_AREA_GUARD | 118 AS_AREA_LATE_RESERVE );118 AS_AREA_LATE_RESERVE, AS_AREA_UNPAGED); 119 119 if (stack == AS_MAP_FAILED) { 120 120 free(uarg); -
uspace/lib/c/include/as.h
r4bf0926e r2c2d54a 38 38 #include <sys/types.h> 39 39 #include <abi/mm/as.h> 40 #include <task.h>41 40 #include <libarch/config.h> 42 43 #define AS_AREA_ANY ((void *) -1)44 #define AS_MAP_FAILED ((void *) -1)45 41 46 42 static inline size_t SIZE2PAGES(size_t size) … … 57 53 } 58 54 59 extern void *as_area_create(void *, size_t, unsigned int); 55 extern void *as_area_create(void *, size_t, unsigned int, 56 as_area_pager_info_t *); 60 57 extern int as_area_resize(void *, size_t, unsigned int); 61 58 extern int as_area_change_flags(void *, unsigned int); -
uspace/lib/c/include/async.h
r4bf0926e r2c2d54a 488 488 extern void async_remote_state_release_exchange(async_exch_t *); 489 489 490 extern void *async_as_area_create(void *, size_t, unsigned int, async_sess_t *, 491 sysarg_t, sysarg_t, sysarg_t); 492 490 493 #endif 491 494
Note:
See TracChangeset
for help on using the changeset viewer.