ras_purgeall man page on NetBSD

Man page or keyword search:  
man Server   9087 pages
apropos Keyword Search (all sections)
Output format
NetBSD logo
[printable version]

RAS(9)			 BSD Kernel Developer's Manual			RAS(9)

NAME
     ras_lookup, ras_fork, ras_purgeall — restartable atomic sequences

SYNOPSIS
     #include <sys/types.h>
     #include <sys/proc.h>
     #include <sys/ras.h>

     void *
     ras_lookup(struct proc *p, void *addr);

     int
     ras_fork(struct proc *p1, struct proc *p2);

     int
     ras_purgeall(struct proc *p);

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
     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 con‐
     trol block (PCB).

     The RAS functionality is provided by a combination of the machine-inde‐
     pendent routines discussed in this page and a machine-dependent component
     in cpu_switchto(9).  A port which supports restartable atomic sequences
     will define __HAVE_RAS in <machine/types.h> for machine-independent code
     to conditionally provide RAS support.

     A complicated side-effect of restartable atomic sequences is their inter‐
     action with the machine-dependent ptrace(2) support.  Specifically, sin‐
     gle-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.

FUNCTIONS
     The functions which operate on restartable atomic sequences are:

     ras_lookup(p, addr)
	      This function searches the registered restartable atomic
	      sequences for process p which contain the user address addr.  If
	      the address addr is found within a RAS, then the restart address
	      of the RAS is returned, otherwise -1 is returned.

     ras_fork(p1, p2)
	      This function is used to copy all registered restartable atomic
	      sequences for process p1 to process p2.  It is primarily called
	      from fork1(9) when the sequences are inherited from the parent
	      by the child.

     ras_purgeall(p)
	      This function is used to remove all registered restartable
	      atomic sequences for process p.  It is primarily used to remove
	      all registered restartable atomic sequences for a process during
	      exec(3) and by rasctl(2).

CODE REFERENCES
     The RAS framework itself is implemented within the file
     sys/kern/kern_ras.c.  Data structures and function prototypes for the
     framework are located in <sys/ras.h>.  Machine-dependent portions are
     implemented within cpu_switchto(9) in the machine-dependent file
     sys/arch/<arch>/<arch>/locore.S.

SEE ALSO
     rasctl(2), cpu_switchto(9), fork1(9)

     Gregory McGarry, "An Implementation of User-level Restartable Atomic
     Sequences on the NetBSD Operating System", Proceedings of the FREENIX
     Track: 2003 USENIX Annual Technical Conference, USENIX Association,
     http://www.usenix.org/publications/library/proceedings/usenix03/tech/freenix03/full_papers/mcgarry/mcgarry.pdf,
     311-322, June 9-14, 2003.

HISTORY
     The RAS functionality first appeared in NetBSD 2.0.

BSD				April 17, 2010				   BSD
[top]
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server NetBSD

List of man pages available for NetBSD

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net