gno/include/net/netisr.h

68 lines
1.9 KiB
C

/*
* Mach Operating System
* Copyright (c) 1987 Carnegie-Mellon University
* All rights reserved. The CMU software License Agreement specifies
* the terms and conditions for use and redistribution.
*/
/*
**********************************************************************
* HISTORY
* 5-Nov-87 David Golub (dbg) at Carnegie-Mellon University
* Use kernel-thread for networking code.
*
**********************************************************************
*/
/*
* Copyright (c) 1980, 1986 Regents of the University of California.
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
* @(#)netisr.h 7.1 (Berkeley) 6/4/86
*/
#ifdef MACH
/*
* The networking code is a separate kernel task, currently
* bound to the master cpu.
*/
#if defined(KERNEL) && !defined(LOCORE)
int soft_net_wakeup;
#define setsoftnet() (wakeup((caddr_t)&soft_net_wakeup))
#endif /* defined(KERNEL) && !defined(LOCORE) */
#else /* MACH */
/*
* The networking code runs off software interrupts.
*
* You can switch into the network by doing splnet() and return by splx().
* The software interrupt level for the network is higher than the software
* level for the clock (so you can enter the network in routines called
* at timeout time).
*/
#ifdef vax
#define setsoftnet() mtpr(SIRR, 12)
#endif
#endif /* MACH */
/*
* Each ``pup-level-1'' input queue has a bit in a ``netisr'' status
* word which is used to de-multiplex a single software
* interrupt used for scheduling the network code to calls
* on the lowest level routine of each protocol.
*/
#define NETISR_RAW 0 /* same as AF_UNSPEC */
#define NETISR_IP 2 /* same as AF_INET */
#define NETISR_IMP 3 /* same as AF_IMPLINK */
#define NETISR_NS 6 /* same as AF_NS */
#define schednetisr(anisr) { netisr |= 1<<(anisr); setsoftnet(); }
#ifndef LOCORE
#ifdef KERNEL
int netisr; /* scheduling bits for network */
#endif
#endif