diff options
Diffstat (limited to 'static/netbsd/man9/userret.9')
| -rw-r--r-- | static/netbsd/man9/userret.9 | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/static/netbsd/man9/userret.9 b/static/netbsd/man9/userret.9 new file mode 100644 index 00000000..8653faa9 --- /dev/null +++ b/static/netbsd/man9/userret.9 @@ -0,0 +1,81 @@ +.\" $NetBSD: userret.9,v 1.9 2008/04/30 13:10:59 martin Exp $ +.\" +.\" Copyright (c) 2002 The NetBSD Foundation, Inc. +.\" All rights reserved. +.\" +.\" This code is derived from software contributed to The NetBSD Foundation +.\" by Gregory McGarry. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd December 20, 2005 +.Dt USERRET 9 +.Os +.Sh NAME +.Nm userret +.Nd return path to user-mode execution +.Sh SYNOPSIS +.In sys/lwp.h +.In sys/sched.h +.Ft void +.Fn userret "struct lwp *l" +.Sh DESCRIPTION +The +.Fn userret +function is executed after processing a trap +.Pq 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 +.Fn userret +function on each architecture is essentially the same. +.Pp +Specifically, the +.Fn userret +function performs the following procedure: +.Bl -bullet -offset indent +.It +Detect a change in the signal disposition of the current process and invoke +.Xr 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 +.Pq e.g., invalid instruction trap . +.It +Check the +.Va want_resched +flag to see if the scheduler requires the current process to be +preempted by invoking +.Xr preempt 9 +.Pq see Xr 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. +.It +Update the scheduler state. +.El +.Sh SEE ALSO +.Xr cpu_need_resched 9 , +.Xr postsig 9 , +.Xr preempt 9 , +.Xr scheduler 9 |
