Index Index for
Section 9r
Index Alphabetical
listing for S
Bottom of page Bottom of
page

spl(9r)

NAME

spl - General: Sets the processor priority to mask different levels of interrupts

SYNOPSIS

#include <machine/cpu.h> int getspl( void ); int splbio( void ); int splclock( void ); int spldevhigh( void ); int splextreme( void ); int splhigh( void ); int splimp( void ); int splnet( void ); int splnone( void ); int splsched( void ); int splsoftclock( void ); int spltty( void ); int splvm( void ); int splx( int x );

ARGUMENTS

x Specifies a CPU priority level. This level must be a value returned by a previous call to one of the spl routines.

DESCRIPTION

The operating system supports the naming of spl routines to indicate the associated device types. Named spl routines make it easier to determine which routine you should use to set the priority level for a given device type. The following table summarizes the uses for the different spl routines: getspl Obtains the spl value. splbio Masks all disk and tape controller interrupts. splclock Masks all hardware clock interrupts. spldevhigh Masks all device and software interrupts. splextreme Blocks against all but halt interrupts. splhigh Masks all interrupts except for realtime devices, machine checks, and halt interrupts. splimp Masks all LAN hardware interrupts. splnet Masks all network software interrupts. splnone Unmasks (enables) all interrupts. splsched Masks all scheduling interrupts (usually the hardware clock). splsoftclock Masks all software clock interrupts. spltty Masks all tty (terminal device) interrupts. splvm Masks all virtual memory clock interrupts. splx Resets the CPU priority to the level specified by the argument.

NOTES

The binding of any spl routine with a specific CPU priority level is highly machine dependent. With the exceptions of the splhigh and splnone routines, knowledge of the explicit bindings is not required to create new device drivers. You always use splhigh to mask (disable) all interrupts and splnone to unmask (enable) all interrupts.

RETURN VALUES

Upon successful completion, each spl routine returns an integer value that represents the CPU priority level that existed before it was changed by a call to the specified spl routine.

EXAMPLE

The following code fragment shows the use of spl routines as part of a disk strategy routine: int s; . . . s = splbio(); /* Mask (disable) all disk interrupts */ . . . [Code to deal with data that can be modified by the disk interrupt code] . . . splx(s); /* Restore CPU priority to what it was */

Index Index for
Section 9r
Index Alphabetical
listing for S
Top of page Top of
page