NAME
userret
—
return path to user-mode
execution
SYNOPSIS
#include
<sys/lwp.h>
#include <sys/sched.h>
void
userret
(struct
lwp *l);
DESCRIPTION
Theuserret
()
function is executed after processing a trap (e.g., a system call or
interrupt) before returning to user-mode execution. The implementation is
machine dependent and is never invoked from machine-independent code. The
function prototype for each architecture may be different to the prototype
above, however the functionally provided by the
userret
() function on each architecture is essentially
the same.
Specifically, the
userret
()
function performs the following procedure:
- Detect a change in the signal disposition of the current process and invoke postsig(9) to post the signal to the process. This may occur when the outcome of the trap or syscall posted a signal to the process (e.g., invalid instruction trap).
- Check the want_resched flag to see if the scheduler requires the current process to be preempted by invoking preempt(9) (see cpu_need_resched(9)). This may occur if the clock interrupt causes the scheduler to determine that the current process has completed its time slice.
- Update the scheduler state.