Files | |
file | shadow.c |
Real-time shadow services. | |
Functions | |
void | xnshadow_harden (void) |
Migrate a Linux task to the RTAI domain. | |
void | xnshadow_relax (void) |
Switch a shadow thread back to the Linux domain . | |
void | xnshadow_map (xnthread_t *thread, pid_t syncpid, int *u_syncp) |
Create a shadow thread context. |
|
Migrate a Linux task to the RTAI domain.
For internal use only. 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(). Side-effect: This routine indirectly triggers the rescheduling procedure (see __xn_sys_sched service). Context: This routine must be called on behalf of a user-space task from the Linux domain. |
|
Create a shadow thread context.
For internal use only. This call maps a nucleus thread to the "current" Linux task.
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 .
For internal use only. 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. |