Files | |
file | shadow.c |
Real-time shadow services. | |
Functions | |
void | xnshadow_harden (xnmutex_t *imutex) |
Migrate a Linux task to the RTAI domain -- INTERNAL. | |
void | xnshadow_relax (void) |
Switch a shadow thread back to the Linux domain -- INTERNAL. | |
void | xnshadow_map (xnthread_t *thread, const char *name, int prio, pid_t syncpid, int *u_syncp, unsigned magic, xnmutex_t *imutex) |
Create a shadow thread context -- INTERNAL. |
|
Migrate a Linux task to the RTAI domain -- INTERNAL. This service causes the transition of "current" from the Linux domain to RTAI. This is obtained by asking the gatekeeper to resume the shadow mated with "current" then triggering the rescheduling procedure in the RTAI domain. The shadow will resume in the RTAI domain as returning from schedule().
Context: This routine must be called on behalf of a user-space task from the Linux domain. |
|
Create a shadow thread context -- INTERNAL.
Context: This routine must be called on behalf of the Linux user-space task which is being shadowed. |
|
Switch a shadow thread back to the Linux domain -- INTERNAL. This service yields the control of the running shadow back to Linux. This is obtained by suspending the shadow and scheduling a wake up call for the mated user task inside the Linux domain. The Linux task will resume on return from xnpod_suspend_thread() on behalf of the root thread. Side-effect: This routine indirectly calls the rescheduling procedure. Context: This routine must be called on behalf of a real-time shadow inside the RTAI domain. |