Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

buf_unlock(9r) [osf1 man page]

BUF_UNLOCK(9r)															    BUF_UNLOCK(9r)

NAME
BUF_UNLOCK - General: Unlocks the specified I/O buffer SYNOPSIS
void BUF_UNLOCK( struct buf *bp ); ARGUMENTS
Specifies a pointer to a buf structure. DESCRIPTION
The BUF_UNLOCK routine unlocks the specified I/O buffer that was locked in a previous call to BUF_LOCK. The routine masks all disk and tape controller interrupts (by calling the splbio routine). It resets the mutual exclusion buffer lock member, b_lock, of the specified buf structure pointer. The BUF_UNLOCK routine then resets the b_flags member of the specified buf structure pointer to indicate that this buffer is not being used. Finally, BUF_UNLOCK resets the CPU priority level (by calling the splx routine). NOTES
You must have locked the specified I/O buffer by calling BUF_LOCK prior to calling the BUF_UNLOCK routine. RETURN VALUES
None SEE ALSO
Routines: BUF_LOCK(9r) BUF_UNLOCK(9r)

Check Out this Related Man Page

spl(9r) 																   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
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: Obtains the spl value. Masks all disk and tape controller interrupts. Masks all hardware clock interrupts. Masks all device and software interrupts. Blocks against all but halt interrupts. Masks all interrupts except for realtime devices, machine checks, and halt interrupts. Masks all LAN hardware interrupts. Masks all network software interrupts. Unmasks (enables) all interrupts. Masks all scheduling interrupts (usually the hardware clock). Masks all software clock interrupts. Masks all tty (terminal device) inter- rupts. Masks all virtual memory clock interrupts. 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 */ spl(9r)
Man Page

We Also Found This Discussion For You

1. What is on Your Mind?

Throw my Toys out of the Pram!

Hi Folks, Today hasn't been the best one of my career in IT. I've been a contractor for a major utility company for a number of years, on a number of seperate IT contracts mostly Unix. The company had 10 different flavours of unix and multiple different varsions of most of them. At the... (3 Replies)
Discussion started by: gull04
3 Replies