diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 15:32:58 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 15:32:58 -0400 |
| commit | 5cb84ec742fd33f78c8022863fadaa8d0d93e176 (patch) | |
| tree | 1a81ca3665e6153923e40db7b0d988f8573ab59c /static/netbsd/man9/ras.9 | |
| parent | a59214f344567c037d5776879bcfc5fcc1d4d5f6 (diff) | |
feat: Added NetBSD man pages
Diffstat (limited to 'static/netbsd/man9/ras.9')
| -rw-r--r-- | static/netbsd/man9/ras.9 | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/static/netbsd/man9/ras.9 b/static/netbsd/man9/ras.9 new file mode 100644 index 00000000..f7c757d5 --- /dev/null +++ b/static/netbsd/man9/ras.9 @@ -0,0 +1,141 @@ +.\" $NetBSD: ras.9,v 1.16 2017/07/03 21:28:48 wiz 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 April 17, 2010 +.Dt RAS 9 +.Os +.Sh NAME +.Nm ras_lookup , +.Nm ras_fork , +.Nm ras_purgeall +.Nd restartable atomic sequences +.Sh SYNOPSIS +.In sys/types.h +.In sys/proc.h +.In sys/ras.h +.Ft void * +.Fn ras_lookup "struct proc *p" "void *addr" +.Ft int +.Fn ras_fork "struct proc *p1" "struct proc *p2" +.Ft int +.Fn ras_purgeall "struct proc *p" +.Sh DESCRIPTION +Restartable atomic sequences are user code sequences which are +guaranteed to execute without preemption. +This property is assured by checking the set of restartable atomic +sequences registered for a process during +.Xr cpu_switchto 9 . +If a process is found to have been preempted during a restartable +sequence, then its execution is rolled-back to the start of the +sequence by resetting its program counter saved in its process control block +.Pq Tn PCB . +.Pp +The +.Tn RAS +functionality is provided by a combination of the +machine-independent routines discussed in this page and +a machine-dependent component in +.Xr cpu_switchto 9 . +A port which supports restartable atomic sequences will define +.Dv __HAVE_RAS +in +.In machine/types.h +for machine-independent code to conditionally provide RAS support. +.Pp +A complicated side-effect of restartable atomic sequences is their +interaction with the machine-dependent +.Xr ptrace 2 +support. +Specifically, single-step traps and/or the emulation of single-stepping +must carefully consider the effect on restartable atomic sequences. +A general solution is to ignore these traps or disable them within +restartable atomic sequences. +.Sh FUNCTIONS +The functions which operate on restartable atomic sequences are: +.Pp +.Bl -tag -width compact +.It Fn ras_lookup "p" "addr" +This function searches the registered restartable atomic sequences for +process +.Fa p +which contain the user address +.Fa addr . +If the address +.Fa addr +is found within a +.Tn RAS , +then the restart address of the +.Tn RAS +is returned, otherwise \-1 is returned. +.It Fn ras_fork "p1" "p2" +This function is used to copy all registered restartable atomic +sequences for process +.Fa p1 +to process +.Fa p2 . +It is primarily called from +.Xr fork1 9 +when the sequences are inherited from the parent by the child. +.It Fn ras_purgeall "p" +This function is used to remove all registered restartable atomic +sequences for process +.Fa p . +It is primarily used to remove all registered restartable atomic +sequences for a process during +.Xr exec 3 +and by +.Xr rasctl 2 . +.El +.Sh CODE REFERENCES +The RAS framework itself is implemented within the file +.Pa sys/kern/kern_ras.c . +Data structures and function prototypes for the framework are located +in +.In sys/ras.h . +Machine-dependent portions are implemented within +.Xr cpu_switchto 9 +in the machine-dependent file +.Pa sys/arch/<arch>/<arch>/locore.S . +.Sh SEE ALSO +.Xr rasctl 2 , +.Xr cpu_switchto 9 , +.Xr fork1 9 +.Rs +.%A Gregory McGarry +.%T "An Implementation of User-level Restartable \ +Atomic Sequences on the NetBSD Operating System" +.%I USENIX Association +.%B Proceedings of the FREENIX Track: 2003 USENIX Annual Technical Conference +.%P 311-322 +.%D June 9-14, 2003 +.%U http://www.usenix.org/publications/library/proceedings/usenix03/tech/freenix03/full_papers/mcgarry/mcgarry.pdf +.Re +.Sh HISTORY +The RAS functionality first appeared in +.Nx 2.0 . |
