⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spl.h

📁 unix and linux net driver
💻 H
字号:
/* *	File:	spl.h *	Author:	Avadis Tevanian, Jr. * *	Define inline macros for spl routines. *	 * HISTORY * * 14-May-90  Gregg Kellogg (gk) at NeXT *	Changed SPLCLOCK from 6 to 3, as much scheduling code expects *	splclock() == splsched().  Added splusclock(). * * 19-Jun-89  Mike DeMoney (mike) at NeXT *	Modified to allow spl assertions in spl_measured.h */#ifndef	_KERNSERV_M68K_SPL_H_#define	_KERNSERV_M68K_SPL_H_#ifdef	KERNEL_BUILD#import <iplmeas.h>#else	KERNEL_BUILD/* #import <mach/features.h> */#endif	KERNEL_BUILD#import <bsd/m68k/psl.h>#if	NIPLMEAS && !defined(NO_IPLMEAS)#import <machdep/m68k/spl_measured.h>#endif	NIPLMEAS && !defined(NO_IPLMEAS)#ifndef	SPLU_MACRO#ifdef	ASSEMBLER#define	SPLU_MACRO(ipl) \	movw	sr,d0; \	movw	\#((ipl)*256 + 0x2000),sr;#define	splx(nsr) \	movw	sr,d0; \	movw	nsr,sr;#else	ASSEMBLER#define SPLU_MACRO(x) \({ register short ret; \	asm volatile ("movw	sr,%0" : "=dm" (ret)); \	asm volatile ("movw	%1,sr" : "=m" (*(char *)0): "Jdm" ((short)(x)*256+0x2000)); \	ret; \})#define splx(x) \({ register short ret; \	asm volatile ("movw	sr,%0" : "=dm" (ret)); \	asm volatile ("movw	%1,sr" : "=m" (*(char *)0): "Jdm" ((short)x)); \	ret; \})#endif	ASSEMBLER#define	SPLD_MACRO(ipl)	SPLU_MACRO(ipl)#define	spln(x)		splx(x)#endif	SPLU_MACRO#define ipltospl(ipl)	(SR_SUPER | ((ipl) << 8))/* *	Define spls as the usual numbers (which should never be used *	directly. */#define spl0()	SPLD_MACRO(0)#define spl1()	SPLU_MACRO(1)#define spl2()	SPLU_MACRO(2)#define spl3()	SPLU_MACRO(3)#define spl4()	SPLU_MACRO(4)#define spl5()	SPLU_MACRO(5)#define spl6()	SPLU_MACRO(6)#define spl7()	SPLU_MACRO(7)/* *	Define spl mnemonics. */#define IPLHIGH		7#define IPLDMA		6#define IPLUSCLOCK	6#define IPLSCC		5#define IPLCLOCK	3#define IPLBIO		3#define IPLSCHED	3#define IPLIMP		3#define IPLVM		3#define IPLNET		2#define IPLTTY		1#define IPLSOFTCLOCK	1#define splhigh()	SPLU_MACRO(IPLHIGH)#define splusclock()	SPLU_MACRO(IPLUSCLOCK)#define spldma()	SPLU_MACRO(IPLDMA)#define splscc()	SPLU_MACRO(IPLSCC)#define splclock()	SPLU_MACRO(IPLCLOCK)#define splbio()	SPLU_MACRO(IPLBIO)#define splsched()	SPLU_MACRO(IPLSCHED)#define splimp()	SPLU_MACRO(IPLIMP)#define splvm()		SPLU_MACRO(IPLVM)#define splnet()	SPLU_MACRO(IPLNET)#define spltty()	SPLU_MACRO(IPLTTY)#define splsoftclock()	SPLU_MACRO(IPLSOFTCLOCK)#endif	_KERNSERV_M68K_SPL_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -