Changeset 927a181e in mainline for uspace/lib/c/generic


Ignore:
Timestamp:
2012-12-04T02:17:04Z (13 years ago)
Author:
Adam Hraska <adam.hraska+hos@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
cb10bc9
Parents:
21b703f
Message:

Turned futex_t in uspace into an opaque type.

Location:
uspace/lib/c/generic
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/generic/async.c

    r21b703f r927a181e  
    166166
    167167/** Async framework global futex */
    168 atomic_t async_futex = FUTEX_INITIALIZER;
     168futex_t async_futex = FUTEX_INITIALIZER;
    169169
    170170/** Number of threads waiting for IPC in the kernel. */
  • uspace/lib/c/generic/fibril.c

    r21b703f r927a181e  
    4949#include <assert.h>
    5050#include <async.h>
     51#include <futex.h>
    5152
    5253/**
     
    5455 * serialized_list and manager_list.
    5556 */
    56 static atomic_t fibril_futex = FUTEX_INITIALIZER;
     57static futex_t fibril_futex = FUTEX_INITIALIZER;
    5758
    5859static LIST_INITIALIZE(ready_list);
  • uspace/lib/c/generic/futex.c

    r21b703f r927a181e  
    4646void futex_initialize(futex_t *futex, int val)
    4747{
    48         atomic_set(futex, val);
     48        atomic_set(&futex->val, val);
    4949}
    5050
     
    5959int futex_trydown(futex_t *futex)
    6060{
    61         return cas(futex, 1, 0);
     61        return cas(&futex->val, 1, 0);
    6262}
    6363
     
    7373int futex_down(futex_t *futex)
    7474{
    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);
    7777       
    7878        return 0;
     
    8989int futex_up(futex_t *futex)
    9090{
    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);
    9393       
    9494        return 0;
  • uspace/lib/c/generic/ipc.c

    r21b703f r927a181e  
    8181LIST_INITIALIZE(queued_calls);
    8282
    83 static atomic_t ipc_futex = FUTEX_INITIALIZER;
     83static futex_t ipc_futex = FUTEX_INITIALIZER;
    8484
    8585/** Send asynchronous message via syscall.
Note: See TracChangeset for help on using the changeset viewer.