summaryrefslogtreecommitdiff
path: root/static/netbsd/man9/userret.9
diff options
context:
space:
mode:
Diffstat (limited to 'static/netbsd/man9/userret.9')
-rw-r--r--static/netbsd/man9/userret.981
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