 |
Index for Section 9r |
|
 |
Alphabetical listing for S |
|
 |
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 for Section 9r |
|
 |
Alphabetical listing for S |
|
 |
Top of page |
|