19 #ifndef _COBALT_POSIX_MUTEX_H 20 #define _COBALT_POSIX_MUTEX_H 23 #include <cobalt/uapi/mutex.h> 24 #include <xenomai/posix/syscall.h> 25 #include <xenomai/posix/process.h> 27 struct cobalt_process;
31 struct xnsynch synchbase;
33 struct list_head conds;
34 struct cobalt_mutexattr attr;
35 struct cobalt_resnode resnode;
38 int __cobalt_mutex_timedlock_break(
struct cobalt_mutex_shadow __user *u_mx,
39 const void __user *u_ts,
40 int (*fetch_timeout)(
struct timespec *ts,
41 const void __user *u_ts));
43 int __cobalt_mutex_acquire_unchecked(
struct xnthread *cur,
44 struct cobalt_mutex *mutex,
45 const struct timespec *ts);
47 COBALT_SYSCALL_DECL(mutex_check_init,
48 (
struct cobalt_mutex_shadow __user *u_mx));
50 COBALT_SYSCALL_DECL(mutex_init,
51 (
struct cobalt_mutex_shadow __user *u_mx,
52 const struct cobalt_mutexattr __user *u_attr));
54 COBALT_SYSCALL_DECL(mutex_destroy,
55 (
struct cobalt_mutex_shadow __user *u_mx));
57 COBALT_SYSCALL_DECL(mutex_trylock,
58 (
struct cobalt_mutex_shadow __user *u_mx));
60 COBALT_SYSCALL_DECL(mutex_lock,
61 (
struct cobalt_mutex_shadow __user *u_mx));
63 COBALT_SYSCALL_DECL(mutex_timedlock,
64 (
struct cobalt_mutex_shadow __user *u_mx,
65 const struct timespec __user *u_ts));
67 COBALT_SYSCALL_DECL(mutex_unlock,
68 (
struct cobalt_mutex_shadow __user *u_mx));
70 int cobalt_mutex_release(
struct xnthread *cur,
71 struct cobalt_mutex *mutex);
73 void cobalt_mutex_reclaim(
struct cobalt_resnode *node,