1*23159Smckusick /* 2*23159Smckusick * Copyright (c) 1980 Regents of the University of California. 3*23159Smckusick * All rights reserved. The Berkeley software License Agreement 4*23159Smckusick * specifies the terms and conditions for redistribution. 5*23159Smckusick * 6*23159Smckusick * @(#)netisr.h 6.2 (Berkeley) 06/08/85 7*23159Smckusick */ 88387Swnj 98387Swnj /* 108387Swnj * The networking code runs off software interrupts. 118387Swnj * 128387Swnj * You can switch into the network by doing splnet() and return by splx(). 138387Swnj * The software interrupt level for the network is higher than the software 148387Swnj * level for the clock (so you can enter the network in routines called 158387Swnj * at timeout time). 168387Swnj */ 1713803Ssam #ifdef vax 188387Swnj #define setsoftnet() mtpr(SIRR, 12) 198973Sroot #endif 208387Swnj 218387Swnj /* 228387Swnj * Each ``pup-level-1'' input queue has a bit in a ``netisr'' status 238387Swnj * word which is used to de-multiplex a single software 248387Swnj * interrupt used for scheduling the network code to calls 258387Swnj * on the lowest level routine of each protocol. 268387Swnj */ 278387Swnj #define NETISR_RAW 0 /* same as AF_UNSPEC */ 288387Swnj #define NETISR_IP 2 /* same as AF_INET */ 298387Swnj #define NETISR_NS 6 /* same as AF_NS */ 3010385Ssam #define NETISR_ND 7 /* network disk protocol */ 318387Swnj 328387Swnj #define schednetisr(anisr) { netisr |= 1<<(anisr); setsoftnet(); } 338387Swnj 348387Swnj #ifndef LOCORE 358387Swnj #ifdef KERNEL 368387Swnj int netisr; /* scheduling bits for network */ 378387Swnj #endif 388387Swnj #endif 39