20 #ifndef _XENO_NUCLEUS_SHADOW_H
21 #define _XENO_NUCLEUS_SHADOW_H
23 #include <asm/xenomai/atomic.h>
25 #ifdef CONFIG_XENO_OPT_PERVASIVE
27 #include <asm/xenomai/syscall.h>
29 #define XENOMAI_MUX_NR 16
32 #define XNSHADOW_CLIENT_ATTACH 0
33 #define XNSHADOW_CLIENT_DETACH 1
50 void *(*eventcb)(int,
void *);
52 struct xntbase **timebasep;
53 struct module *module;
56 int xnshadow_mount(
void);
58 void xnshadow_cleanup(
void);
60 void xnshadow_grab_events(
void);
62 void xnshadow_release_events(
void);
65 xncompletion_t __user *u_completion,
66 unsigned long __user *u_mode_offset);
68 void xnshadow_unmap(
struct xnthread *thread);
74 void xnshadow_renice(
struct xnthread *thread);
76 void xnshadow_suspend(
struct xnthread *thread);
78 int xnshadow_wait_barrier(
struct pt_regs *regs);
80 void xnshadow_start(
struct xnthread *thread);
82 void xnshadow_signal_completion(xncompletion_t __user *u_completion,
85 void xnshadow_exit(
void);
87 int xnshadow_register_interface(
struct xnskin_props *props);
89 int xnshadow_unregister_interface(
int muxid);
91 void xnshadow_reset_shield(
void);
93 void xnshadow_send_sig(
struct xnthread *thread,
98 void xnshadow_rpi_check(
void);
100 #ifdef RTHAL_HAVE_RETURN_EVENT
101 #define XNARCH_HAVE_MAYDAY 1
102 void xnshadow_call_mayday(
struct xnthread *thread);
104 static inline void xnshadow_call_mayday(
struct xnthread *thread)
116 #if defined(CONFIG_XENO_OPT_PERVASIVE) && defined(CONFIG_XENO_OPT_VFILE)
117 void xnshadow_init_proc(
void);
118 void xnshadow_cleanup_proc(
void);
120 static inline void xnshadow_init_proc(
void) { }
121 static inline void xnshadow_cleanup_proc(
void) { }
int xnshadow_map(struct xnthread *curr, xncompletion_t __user *u_completion, unsigned long __user *u_mode_offset)
Create a shadow thread context.
Definition: shadow.c:1274
int xnshadow_harden(void)
Migrate a Linux task to the Xenomai domain.
Definition: shadow.c:939
void xnshadow_relax(int notify, int reason)
Switch a shadow thread back to the Linux domain.
Definition: shadow.c:1109