Annotation of sys/net/netisr.h, Revision 1.1.1.1
1.1 nbrk 1: /* $OpenBSD: netisr.h,v 1.27 2007/06/06 10:04:36 henning Exp $ */
2: /* $NetBSD: netisr.h,v 1.12 1995/08/12 23:59:24 mycroft Exp $ */
3:
4: /*
5: * Copyright (c) 1980, 1986, 1989, 1993
6: * The Regents of the University of California. All rights reserved.
7: *
8: * Redistribution and use in source and binary forms, with or without
9: * modification, are permitted provided that the following conditions
10: * are met:
11: * 1. Redistributions of source code must retain the above copyright
12: * notice, this list of conditions and the following disclaimer.
13: * 2. Redistributions in binary form must reproduce the above copyright
14: * notice, this list of conditions and the following disclaimer in the
15: * documentation and/or other materials provided with the distribution.
16: * 3. Neither the name of the University nor the names of its contributors
17: * may be used to endorse or promote products derived from this software
18: * without specific prior written permission.
19: *
20: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30: * SUCH DAMAGE.
31: *
32: * @(#)netisr.h 8.1 (Berkeley) 6/10/93
33: */
34:
35: #ifndef _NET_NETISR_H_
36: #define _NET_NETISR_H_
37: /*
38: * The networking code runs off software interrupts.
39: *
40: * You can switch into the network by doing splsoftnet() and return by splx().
41: * The software interrupt level for the network is higher than the software
42: * level for the clock (so you can enter the network in routines called
43: * at timeout time).
44: *
45: * The routine to request a network software interrupt, setsoftnet(),
46: * is defined in the machine-specific include files.
47: */
48:
49: /*
50: * Each ``pup-level-1'' input queue has a bit in a ``netisr'' status
51: * word which is used to de-multiplex a single software
52: * interrupt used for scheduling the network code to calls
53: * on the lowest level routine of each protocol.
54: */
55: #define NETISR_RND 1
56: #define NETISR_IP 2 /* same as AF_INET */
57: #define NETISR_ATALK 16 /* same as AF_APPLETALK */
58: #define NETISR_ARP 18 /* same as AF_LINK */
59: #define NETISR_IPV6 24 /* same as AF_INET6 */
60: #define NETISR_ISDN 26 /* same as AF_E164 */
61: #define NETISR_NATM 27 /* same as AF_ATM */
62: #define NETISR_PPP 28 /* for PPP processing */
63: #define NETISR_BRIDGE 29 /* for bridge processing */
64: #define NETISR_PPPOE 30 /* for pppoe processing */
65: #define NETISR_BT 31 /* same as AF_BLUETOOTH */
66:
67: #ifndef _LOCORE
68: #ifdef _KERNEL
69: extern int netisr; /* scheduling bits for network */
70:
71: void netrndintr(void);
72: void arpintr(void);
73: void ipintr(void);
74: void ip6intr(void);
75: void atintr(void);
76: void clnlintr(void);
77: void natmintr(void);
78: void pppintr(void);
79: void bridgeintr(void);
80: void pppoeintr(void);
81: void btintr(void);
82:
83: #include <machine/atomic.h>
84: #include <dev/rndvar.h>
85: #define schednetisr(anisr) \
86: do { \
87: atomic_setbits_int(&netisr, (1 << (anisr)) | NETISR_RND); \
88: setsoftnet(); \
89: } while (0)
90: #endif
91: #endif
92:
93: #endif /* _NET_NETISR_H_ */
CVSweb