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,
58 int (*thread_setsched)(
struct cobalt_extref *refthread,
59 struct xnsched_class *sched_class,
60 union xnsched_policy_param *param);
64 struct cobalt_extref {
65 struct cobalt_extension *extension;
66 struct list_head next;
70 static inline void cobalt_set_extref(
struct cobalt_extref *ref,
71 struct cobalt_extension *ext,
83 #define cobalt_initcall_extension(__extfn, __extref, __owner, __ret, __args...) \ 86 if ((__owner) && (__owner)->extref.extension) { \ 87 (__extref)->extension = (__owner)->extref.extension; \ 88 if ((__extref)->extension->ops.__extfn) { \ 89 (__ret) = (__extref)->extension->ops. \ 90 __extfn(__extref, ##__args ); \ 94 (__extref)->extension = NULL; \ 98 #define cobalt_call_extension(__extfn, __extref, __ret, __args...) \ 101 if ((__extref)->extension && \ 102 (__extref)->extension->ops.__extfn) { \ 103 (__ret) = (__extref)->extension->ops. \ 104 __extfn(__extref, ##__args ); \ 112 struct cobalt_extension;
114 struct cobalt_extref {
117 static inline void cobalt_set_extref(
struct cobalt_extref *ref,
118 struct cobalt_extension *ext,
123 #define cobalt_initcall_extension(__extfn, __extref, __owner, __ret, __args...) \ 124 ({ (void)(__owner); (void)(__ret); 0; }) 126 #define cobalt_call_extension(__extfn, __extref, __ret, __args...) \ 127 ({ (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:208
int timer_delete(timer_t timerid)
Delete a timer object.
Definition: timer.c:105
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:165