1 1.4 soda /* $NetBSD: intr.h,v 1.4 2000/04/03 11:44:21 soda Exp $ */ 2 1.1 soren 3 1.1 soren #include <mips/cpuregs.h> 4 1.3 soren #include <mips/intr.h> 5 1.1 soren 6 1.1 soren #define IPL_NONE 0 /* Disable only this interrupt. */ 7 1.1 soren #define IPL_BIO 1 /* Disable block I/O interrupts. */ 8 1.1 soren #define IPL_NET 2 /* Disable network interrupts. */ 9 1.1 soren #define IPL_TTY 3 /* Disable terminal interrupts. */ 10 1.3 soren #define IPL_IMP 4 /* Memory allocation */ 11 1.3 soren #define IPL_CLOCK 5 /* Disable clock interrupts. */ 12 1.3 soren #define IPL_STATCLOCK 6 /* Disable profiling interrupts. */ 13 1.3 soren #define IPL_HIGH 7 /* Disable all interrupts. */ 14 1.3 soren #define NIPL 8 15 1.1 soren 16 1.1 soren /* Interrupt sharing types. */ 17 1.1 soren #define IST_NONE 0 /* none */ 18 1.1 soren #define IST_PULSE 1 /* pulsed */ 19 1.1 soren #define IST_EDGE 2 /* edge-triggered */ 20 1.1 soren #define IST_LEVEL 3 /* level-triggered */ 21 1.1 soren 22 1.3 soren #ifdef _KERNEL 23 1.1 soren #ifndef _LOCORE 24 1.1 soren 25 1.1 soren extern int _splraise(int); 26 1.1 soren extern int _spllower(int); 27 1.1 soren extern int _splset(int); 28 1.1 soren extern int _splget(void); 29 1.1 soren extern void _splnone(void); 30 1.1 soren extern void _setsoftintr(int); 31 1.1 soren extern void _clrsoftintr(int); 32 1.1 soren 33 1.1 soren #define setsoftclock() _setsoftintr(MIPS_SOFT_INT_MASK_0) 34 1.1 soren #define setsoftnet() _setsoftintr(MIPS_SOFT_INT_MASK_1) 35 1.1 soren #define clearsoftclock() _clrsoftintr(MIPS_SOFT_INT_MASK_0) 36 1.1 soren #define clearsoftnet() _clrsoftintr(MIPS_SOFT_INT_MASK_1) 37 1.1 soren 38 1.1 soren #define splhigh() _splraise(MIPS_INT_MASK) 39 1.1 soren #define spl0() (void)_spllower(0) 40 1.1 soren #define splx(s) (void)_splset(s) 41 1.2 soren #define SPLSOFT MIPS_SOFT_INT_MASK_0 | MIPS_SOFT_INT_MASK_1 42 1.2 soren #define SPLBIO SPLSOFT | MIPS_INT_MASK_4 43 1.1 soren #define SPLNET SPLBIO | MIPS_INT_MASK_1 | MIPS_INT_MASK_2 44 1.1 soren #define SPLTTY SPLNET | MIPS_INT_MASK_3 45 1.1 soren #define SPLCLOCK SPLTTY | MIPS_INT_MASK_0 | MIPS_INT_MASK_5 46 1.1 soren #define splbio() _splraise(SPLBIO) 47 1.1 soren #define splnet() _splraise(SPLNET) 48 1.1 soren #define spltty() _splraise(SPLTTY) 49 1.1 soren #define splclock() _splraise(SPLCLOCK) 50 1.3 soren #define splimp() splclock() 51 1.1 soren #define splstatclock() splclock() 52 1.1 soren #define splsoftclock() _splraise(MIPS_SOFT_INT_MASK_0) 53 1.4 soda #define splsoftnet() _splraise(MIPS_SOFT_INT_MASK_0|MIPS_SOFT_INT_MASK_1) 54 1.3 soren #define spllowersoftclock() _spllower(MIPS_SOFT_INT_MASK_0) 55 1.1 soren 56 1.1 soren extern unsigned int intrcnt[]; 57 1.1 soren #define SOFTCLOCK_INTR 0 58 1.1 soren #define SOFTNET_INTR 1 59 1.1 soren 60 1.3 soren extern void * cpu_intr_establish(int, int, int (*)(void *), void *); 61 1.3 soren extern void * icu_intr_establish(int, int, int, int (*)(void *), void *); 62 1.1 soren 63 1.3 soren #endif /* !_LOCORE */ 64 1.1 soren #endif /* _LOCORE */ 65