18 #ifndef _COBALT_POSIX_EXTENSION_H 19 #define _COBALT_POSIX_EXTENSION_H 21 #include <linux/time.h> 22 #include <linux/list.h> 24 #ifdef CONFIG_XENO_OPT_COBALT_EXTENSION 26 #include <cobalt/kernel/thread.h> 29 struct cobalt_sigpending;
33 union xnsched_policy_param;
35 struct cobalt_extension {
36 struct xnthread_personality core;
38 struct cobalt_thread *
39 (*timer_init)(
struct cobalt_extref *reftimer,
40 const struct sigevent *__restrict__ evp);
42 const struct itimerspec *__restrict__ value,
45 struct itimerspec *__restrict__ value);
47 int (*timer_cleanup)(
struct cobalt_extref *reftimer);
48 int (*signal_deliver)(
struct cobalt_extref *refthread,
50 struct cobalt_sigpending *sigp);
51 int (*signal_queue)(
struct cobalt_extref *refthread,
52 struct cobalt_sigpending *sigp);
53 int (*signal_copyinfo)(
struct cobalt_extref *refthread,
55 const struct siginfo *si,
57 int (*signal_copyinfo_compat)(
struct cobalt_extref *refthread,
59 const struct siginfo *si,
62 int (*thread_setsched)(
struct cobalt_extref *refthread,
63 struct xnsched_class *sched_class,
64 union xnsched_policy_param *param);
68 struct cobalt_extref {
69 struct cobalt_extension *extension;
70 struct list_head next;
74 static inline void cobalt_set_extref(
struct cobalt_extref *ref,
75 struct cobalt_extension *ext,
87 #define cobalt_initcall_extension(__extfn, __extref, __owner, __ret, __args...) \ 90 if ((__owner) && (__owner)->extref.extension) { \ 91 (__extref)->extension = (__owner)->extref.extension; \ 92 if ((__extref)->extension->ops.__extfn) { \ 93 (__ret) = (__extref)->extension->ops. \ 94 __extfn(__extref, ##__args ); \ 98 (__extref)->extension = NULL; \ 102 #define cobalt_call_extension(__extfn, __extref, __ret, __args...) \ 105 if ((__extref)->extension && \ 106 (__extref)->extension->ops.__extfn) { \ 107 (__ret) = (__extref)->extension->ops. \ 108 __extfn(__extref, ##__args ); \ 116 struct cobalt_extension;
118 struct cobalt_extref {
121 static inline void cobalt_set_extref(
struct cobalt_extref *ref,
122 struct cobalt_extension *ext,
127 #define cobalt_initcall_extension(__extfn, __extref, __owner, __ret, __args...) \ 128 ({ (void)(__owner); (void)(__ret); 0; }) 130 #define cobalt_call_extension(__extfn, __extref, __ret, __args...) \ 131 ({ (void)(__ret); 0; }) int sched_yield(void)
Yield the processor.
Definition: sched.c:58
int timer_gettime(timer_t timerid, struct itimerspec *value)
Get timer next expiration date and reload value.
Definition: timer.c:212
int timer_delete(timer_t timerid)
Delete a timer object.
Definition: timer.c:107
int timer_settime(timer_t timerid, int flags, const struct itimerspec *__restrict__ value, struct itimerspec *__restrict__ ovalue)
Start or stop a timer
Definition: timer.c:168