+++ /dev/null
-/*
- * 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_