[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: slimp()



On Sat, 1 May 2004 00:58:19 +0100
Peter Bristow <jesta_(_at_)_home_(_dot_)_uberwald_(_dot_)_co_(_dot_)_uk> wrote:

> Hi, I've been reading some code and seen the use of splimp(), not knowing 
> quite what this did I ran to the man pages and found spl (9) though it 
> does not appear on this page. Some searches on marc found that it was a 
> priority just above splvm, but noone detailed quite what it did. I was 
> hoping someone could clarify quite what it did. 

Design and Implementation of 4.4BSD says splimp() can be used to
"[block] all network interface input handling."  A quick grep through
the tree reveals quite a lot:

% grep -r splimp sys | grep def
sys/altq/altq_rmclass_debug.h:#define	LOCK_TRACE()	splimp()
sys/arch/alpha/include/intr.h:#define splimp()                _splraise(ALPHA_PSL_IPL_IO)
sys/arch/amd64/include/intr.h:#define splimp()	splraise(IPL_IMP)
sys/arch/arm/footbridge/footbridge_intr.h:#define	splimp()	_splraise(IPL_VM)
sys/arch/hp300/include/intr.h:#define	splimp()		_splraise(hp300_impipl)
sys/arch/hp300/include/intr.h:#define	splvm()			splimp()
sys/arch/hppa/include/intr.h:#define	splimp()	splvm()
sys/arch/i386/include/intr.h:#define splimp()	splvm()
sys/arch/mac68k/include/intr.h:#define	splimp()		_splraise(mac68k_impipl)
sys/arch/mvme68k/include/intr.h:#define	splimp()		_splraise(PSL_S|PSL_IPL3)
sys/arch/mvme68k/include/intr.h:#define	splvm()			splimp()
sys/arch/mvme88k/include/intr.h:#define splimp()		raiseipl(IPL_IMP)
sys/arch/powerpc/include/intr.h:#define splimp()	splraise(imask[IPL_IMP])
sys/arch/sparc/include/psl.h:#define splimp splvm
sys/arch/sparc64/include/psl.h:#define	splimp splvm
sys/arch/vax/include/param.h:#define splimp()	_splraise(0x17)	/* IPL17 */
sys/dev/pci/if_devar.h:#define	TULIP_RAISESPL()		splimp()
sys/dev/pci/if_lmcvar.h:#define	LMC_RAISESPL()		splimp()

% grep -r IPL_IMP sys | grep def
sys/arch/amd64/include/intr.h:#define splimp()	splraise(IPL_IMP)
sys/arch/amd64/include/intr.h:#define	splvm()		splraise(IPL_IMP)
sys/arch/amd64/include/intrdefs.h:#define IPL_IMP		IPL_VM
sys/arch/i386/include/intr.h:#define IPL_IMP		IPL_VM		/* XXX - should not be here. */
sys/arch/mvme88k/include/intr.h:#define IPL_IMP		3
sys/arch/mvme88k/include/intr.h:#define splimp()		raiseipl(IPL_IMP)
sys/arch/powerpc/include/intr.h:#define	IPL_IMP		4
sys/arch/powerpc/include/intr.h:#define splimp()	splraise(imask[IPL_IMP])
sys/arch/powerpc/include/intr.h:#define splvm()		splraise(imask[IPL_IMP])
sys/arch/vax/include/intr.h:#define IPL_IMP		3	/* memory allocation */
sys/dev/pci/pccbb.c:#ifdef IPL_IMP



Visit your host, monkey.org