Changeset 927a181e in mainline
- Timestamp:
- 2012-12-04T02:17:04Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- cb10bc9
- Parents:
- 21b703f
- Location:
- uspace/lib/c
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/async.c
r21b703f r927a181e 166 166 167 167 /** Async framework global futex */ 168 atomic_t async_futex = FUTEX_INITIALIZER;168 futex_t async_futex = FUTEX_INITIALIZER; 169 169 170 170 /** Number of threads waiting for IPC in the kernel. */ -
uspace/lib/c/generic/fibril.c
r21b703f r927a181e 49 49 #include <assert.h> 50 50 #include <async.h> 51 #include <futex.h> 51 52 52 53 /** … … 54 55 * serialized_list and manager_list. 55 56 */ 56 static atomic_t fibril_futex = FUTEX_INITIALIZER;57 static futex_t fibril_futex = FUTEX_INITIALIZER; 57 58 58 59 static LIST_INITIALIZE(ready_list); -
uspace/lib/c/generic/futex.c
r21b703f r927a181e 46 46 void futex_initialize(futex_t *futex, int val) 47 47 { 48 atomic_set( futex, val);48 atomic_set(&futex->val, val); 49 49 } 50 50 … … 59 59 int futex_trydown(futex_t *futex) 60 60 { 61 return cas( futex, 1, 0);61 return cas(&futex->val, 1, 0); 62 62 } 63 63 … … 73 73 int futex_down(futex_t *futex) 74 74 { 75 if ((atomic_signed_t) atomic_predec( futex) < 0)76 return __SYSCALL1(SYS_FUTEX_SLEEP, (sysarg_t) &futex-> count);75 if ((atomic_signed_t) atomic_predec(&futex->val) < 0) 76 return __SYSCALL1(SYS_FUTEX_SLEEP, (sysarg_t) &futex->val.count); 77 77 78 78 return 0; … … 89 89 int futex_up(futex_t *futex) 90 90 { 91 if ((atomic_signed_t) atomic_postinc( futex) < 0)92 return __SYSCALL1(SYS_FUTEX_WAKEUP, (sysarg_t) &futex-> count);91 if ((atomic_signed_t) atomic_postinc(&futex->val) < 0) 92 return __SYSCALL1(SYS_FUTEX_WAKEUP, (sysarg_t) &futex->val.count); 93 93 94 94 return 0; -
uspace/lib/c/generic/ipc.c
r21b703f r927a181e 81 81 LIST_INITIALIZE(queued_calls); 82 82 83 static atomic_t ipc_futex = FUTEX_INITIALIZER;83 static futex_t ipc_futex = FUTEX_INITIALIZER; 84 84 85 85 /** Send asynchronous message via syscall. -
uspace/lib/c/include/futex.h
r21b703f r927a181e 39 39 #include <sys/types.h> 40 40 41 #define FUTEX_INITIALIZER { 1}41 #define FUTEX_INITIALIZER {{1}} 42 42 43 typedef atomic_t futex_t; 43 typedef struct futex { 44 atomic_t val; 45 } futex_t; 44 46 45 47 extern void futex_initialize(futex_t *futex, int value); -
uspace/lib/c/include/ipc/common.h
r21b703f r927a181e 40 40 #include <atomic.h> 41 41 #include <task.h> 42 #include <futex.h> 42 43 43 44 #define IPC_FLAG_BLOCKING 0x01 … … 51 52 typedef sysarg_t ipc_callid_t; 52 53 53 extern atomic_t async_futex;54 extern futex_t async_futex; 54 55 55 56 #endif
Note:
See TracChangeset
for help on using the changeset viewer.