1*10385Ssam /* netisr.h 4.3 83/01/17 */ 28387Swnj 38387Swnj /* 48387Swnj * The networking code runs off software interrupts. 58387Swnj * 68387Swnj * You can switch into the network by doing splnet() and return by splx(). 78387Swnj * The software interrupt level for the network is higher than the software 88387Swnj * level for the clock (so you can enter the network in routines called 98387Swnj * at timeout time). 108387Swnj */ 118973Sroot #if sun 128973Sroot #include "../sun/sir.h" 138973Sroot #define setsoftnet() siron(SIR_NET) 148973Sroot #else 158973Sroot /* #include "../vax/mtpr.h" */ 168387Swnj #define setsoftnet() mtpr(SIRR, 12) 178973Sroot #endif 188387Swnj 198387Swnj /* 208387Swnj * Each ``pup-level-1'' input queue has a bit in a ``netisr'' status 218387Swnj * word which is used to de-multiplex a single software 228387Swnj * interrupt used for scheduling the network code to calls 238387Swnj * on the lowest level routine of each protocol. 248387Swnj */ 258387Swnj #define NETISR_RAW 0 /* same as AF_UNSPEC */ 268387Swnj #define NETISR_IP 2 /* same as AF_INET */ 278387Swnj #define NETISR_NS 6 /* same as AF_NS */ 28*10385Ssam #define NETISR_ND 7 /* network disk protocol */ 298387Swnj 308387Swnj #define schednetisr(anisr) { netisr |= 1<<(anisr); setsoftnet(); } 318387Swnj 328387Swnj #ifndef LOCORE 338387Swnj #ifdef KERNEL 348387Swnj int netisr; /* scheduling bits for network */ 358387Swnj #endif 368387Swnj #endif 37