uipc_domain.c (2b14f991e64ebe31ca31a1a41237061c22a753d0) | uipc_domain.c (4590fd3a2a5539b8a1ce2ad488707123c8b7c8c8) |
---|---|
1/* 2 * Copyright (c) 1982, 1986, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 17 unchanged lines hidden (view full) --- 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 * 33 * @(#)uipc_domain.c 8.2 (Berkeley) 10/18/93 | 1/* 2 * Copyright (c) 1982, 1986, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 17 unchanged lines hidden (view full) --- 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 * 33 * @(#)uipc_domain.c 8.2 (Berkeley) 10/18/93 |
34 * $Id: uipc_domain.c,v 1.7 1995/08/16 16:13:21 bde Exp $ | 34 * $Id: uipc_domain.c,v 1.8 1995/08/28 09:18:51 julian Exp $ |
35 */ 36 37#include <sys/param.h> 38#include <sys/socket.h> 39#include <sys/protosw.h> 40#include <sys/domain.h> 41#include <sys/mbuf.h> 42#include <sys/time.h> --- 6 unchanged lines hidden (view full) --- 49/* 50 * System initialization 51 * 52 * Note: domain initialization wants to take place on a per domain basis 53 * as a result of traversing a linker set. Most likely, each domain 54 * want to call a registration function rather than being handled here 55 * in domaininit(). Probably this will look like: 56 * | 35 */ 36 37#include <sys/param.h> 38#include <sys/socket.h> 39#include <sys/protosw.h> 40#include <sys/domain.h> 41#include <sys/mbuf.h> 42#include <sys/time.h> --- 6 unchanged lines hidden (view full) --- 49/* 50 * System initialization 51 * 52 * Note: domain initialization wants to take place on a per domain basis 53 * as a result of traversing a linker set. Most likely, each domain 54 * want to call a registration function rather than being handled here 55 * in domaininit(). Probably this will look like: 56 * |
57 * SYSINIT(unique, SI_SUB_PROTO_DOMAI, SI_ORDER_ANY, domain_add, (caddr_t)xxx) | 57 * SYSINIT(unique, SI_SUB_PROTO_DOMAI, SI_ORDER_ANY, domain_add, xxx) |
58 * 59 * Where 'xxx' is replaced by the address of a parameter struct to be 60 * passed to the doamin_add() function. 61 */ 62 63static int x_save_spl; /* used by kludge*/ | 58 * 59 * Where 'xxx' is replaced by the address of a parameter struct to be 60 * passed to the doamin_add() function. 61 */ 62 63static int x_save_spl; /* used by kludge*/ |
64static void kludge_splimp __P((caddr_t)); 65static void kludge_splx __P((caddr_t)); 66static void domaininit __P((caddr_t)); 67SYSINIT(splimp, SI_SUB_PROTO_BEGIN, SI_ORDER_FIRST, kludge_splimp, (caddr_t)&x_save_spl) | 64static void kludge_splimp __P((void *)); 65static void kludge_splx __P((void *)); 66static void domaininit __P((void *)); 67SYSINIT(splimp, SI_SUB_PROTO_BEGIN, SI_ORDER_FIRST, kludge_splimp, &x_save_spl) |
68SYSINIT(domain, SI_SUB_PROTO_DOMAIN, SI_ORDER_FIRST, domaininit, NULL) | 68SYSINIT(domain, SI_SUB_PROTO_DOMAIN, SI_ORDER_FIRST, domaininit, NULL) |
69SYSINIT(splx, SI_SUB_PROTO_END, SI_ORDER_FIRST, kludge_splx, (caddr_t)&x_save_spl) | 69SYSINIT(splx, SI_SUB_PROTO_END, SI_ORDER_FIRST, kludge_splx, &x_save_spl) |
70 71 72void pffasttimo __P((void *)); 73void pfslowtimo __P((void *)); 74 75struct domain *domains; 76 77#define ADDDOMAIN(x) { \ 78 __CONCAT(x,domain.dom_next) = domains; \ 79 domains = &__CONCAT(x,domain); \ 80} 81 82extern struct linker_set domain_set; 83 84/* ARGSUSED*/ 85static void | 70 71 72void pffasttimo __P((void *)); 73void pfslowtimo __P((void *)); 74 75struct domain *domains; 76 77#define ADDDOMAIN(x) { \ 78 __CONCAT(x,domain.dom_next) = domains; \ 79 domains = &__CONCAT(x,domain); \ 80} 81 82extern struct linker_set domain_set; 83 84/* ARGSUSED*/ 85static void |
86domaininit( udata) 87caddr_t udata; /* not used*/ | 86domaininit(udata) 87 void *udata; /* not used*/ |
88{ 89 register struct domain *dp, **dpp; 90 register struct protosw *pr; 91 92 /* 93 * NB - local domain is always present. 94 */ 95 ADDDOMAIN(local); --- 30 unchanged lines hidden (view full) --- 126 * The following two operations are kludge code. Most likely, they should 127 * be done as a "domainpreinit()" for the first function and then rolled 128 * in as the last act of "domaininit()" for the second. 129 * 130 * In point of fact, it is questionable why other initialization prior 131 * to this does not also take place at splimp by default. 132 */ 133static void | 88{ 89 register struct domain *dp, **dpp; 90 register struct protosw *pr; 91 92 /* 93 * NB - local domain is always present. 94 */ 95 ADDDOMAIN(local); --- 30 unchanged lines hidden (view full) --- 126 * The following two operations are kludge code. Most likely, they should 127 * be done as a "domainpreinit()" for the first function and then rolled 128 * in as the last act of "domaininit()" for the second. 129 * 130 * In point of fact, it is questionable why other initialization prior 131 * to this does not also take place at splimp by default. 132 */ 133static void |
134kludge_splimp( udata) 135caddr_t udata; | 134kludge_splimp(udata) 135 void *udata; |
136{ 137 int *savesplp = (int *)udata; 138 139 *savesplp = splimp(); 140} 141 142static void | 136{ 137 int *savesplp = (int *)udata; 138 139 *savesplp = splimp(); 140} 141 142static void |
143kludge_splx( udata) 144caddr_t udata; | 143kludge_splx(udata) 144 void *udata; |
145{ 146 int *savesplp = (int *)udata; 147 148 splx( *savesplp); 149} 150 151 152 --- 123 unchanged lines hidden --- | 145{ 146 int *savesplp = (int *)udata; 147 148 splx( *savesplp); 149} 150 151 152 --- 123 unchanged lines hidden --- |