projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
consistency with tty.c about value for "no pgrp"
[unix-history]
/
usr
/
src
/
sys
/
kern
/
uipc_domain.c
diff --git
a/usr/src/sys/kern/uipc_domain.c
b/usr/src/sys/kern/uipc_domain.c
index
21e2f1e
..
fa67b61
100644
(file)
--- a/
usr/src/sys/kern/uipc_domain.c
+++ b/
usr/src/sys/kern/uipc_domain.c
@@
-1,16
+1,25
@@
-/* uipc_domain.c 5.6 82/11/13 */
+/*
+ * Copyright (c) 1982, 1986 Regents of the University of California.
+ * All rights reserved.
+ *
+ * %sccs.include.redist.c%
+ *
+ * @(#)uipc_domain.c 7.9 (Berkeley) %G%
+ */
-#include "../h/param.h"
-#include "../h/socket.h"
-#include "../h/protosw.h"
-#include "../h/domain.h"
-#include <time.h>
-#include "../h/kernel.h"
+#include <sys/cdefs.h>
+#include "param.h"
+#include "socket.h"
+#include "protosw.h"
+#include "domain.h"
+#include "mbuf.h"
+#include "time.h"
+#include "kernel.h"
#define ADDDOMAIN(x) { \
#define ADDDOMAIN(x) { \
- extern struct domain
x/**/domain
; \
-
x/**/domain.dom_next
= domains; \
- domains = &
x/**/domain
; \
+ extern struct domain
__CONCAT(x,domain)
; \
+
__CONCAT(x,domain.dom_next)
= domains; \
+ domains = &
__CONCAT(x,domain)
; \
}
domaininit()
}
domaininit()
@@
-18,23
+27,43
@@
domaininit()
register struct domain *dp;
register struct protosw *pr;
register struct domain *dp;
register struct protosw *pr;
+#undef unix
#ifndef lint
ADDDOMAIN(unix);
#ifndef lint
ADDDOMAIN(unix);
+ ADDDOMAIN(route);
#ifdef INET
ADDDOMAIN(inet);
#endif
#ifdef INET
ADDDOMAIN(inet);
#endif
-#ifdef
PUP
- ADDDOMAIN(
pup
);
+#ifdef
NS
+ ADDDOMAIN(
ns
);
#endif
#endif
-#ifdef IMP
+#ifdef ISO
+ ADDDOMAIN(iso);
+#endif
+#ifdef RMP
+ ADDDOMAIN(rmp);
+#endif
+#ifdef CCITT
+ ADDDOMAIN(ccitt);
+#endif
+#include "imp.h"
+#if NIMP > 0
ADDDOMAIN(imp);
#endif
#endif
ADDDOMAIN(imp);
#endif
#endif
- for (dp = domains; dp; dp = dp->dom_next)
+ for (dp = domains; dp; dp = dp->dom_next) {
+ if (dp->dom_init)
+ (*dp->dom_init)();
for (pr = dp->dom_protosw; pr < dp->dom_protoswNPROTOSW; pr++)
if (pr->pr_init)
(*pr->pr_init)();
for (pr = dp->dom_protosw; pr < dp->dom_protoswNPROTOSW; pr++)
if (pr->pr_init)
(*pr->pr_init)();
+ }
+
+if (max_linkhdr < 16) /* XXX */
+max_linkhdr = 16;
+ max_hdr = max_linkhdr + max_protohdr;
+ max_datalen = MHLEN - max_hdr;
pffasttimo();
pfslowtimo();
}
pffasttimo();
pfslowtimo();
}
@@
-52,17
+81,18
@@
pffindtype(family, type)
return (0);
found:
for (pr = dp->dom_protosw; pr < dp->dom_protoswNPROTOSW; pr++)
return (0);
found:
for (pr = dp->dom_protosw; pr < dp->dom_protoswNPROTOSW; pr++)
- if (pr->pr_type == type)
+ if (pr->pr_type
&& pr->pr_type
== type)
return (pr);
return (0);
}
struct protosw *
return (pr);
return (0);
}
struct protosw *
-pffindproto(family, protocol)
- int family, protocol;
+pffindproto(family, protocol
, type
)
+ int family, protocol
, type
;
{
register struct domain *dp;
register struct protosw *pr;
{
register struct domain *dp;
register struct protosw *pr;
+ struct protosw *maybe = 0;
if (family == 0)
return (0);
if (family == 0)
return (0);
@@
-71,15
+101,20
@@
pffindproto(family, protocol)
goto found;
return (0);
found:
goto found;
return (0);
found:
- for (pr = dp->dom_protosw; pr < dp->dom_protoswNPROTOSW; pr++)
- if (
pr->pr_protocol == protocol
)
+ for (pr = dp->dom_protosw; pr < dp->dom_protoswNPROTOSW; pr++)
{
+ if (
(pr->pr_protocol == protocol) && (pr->pr_type == type)
)
return (pr);
return (pr);
- return (0);
+
+ if (type == SOCK_RAW && pr->pr_type == SOCK_RAW &&
+ pr->pr_protocol == 0 && maybe == (struct protosw *)0)
+ maybe = pr;
+ }
+ return (maybe);
}
}
-pfctlinput(cmd,
arg
)
+pfctlinput(cmd,
sa
)
int cmd;
int cmd;
-
caddr_t arg
;
+
struct sockaddr *sa
;
{
register struct domain *dp;
register struct protosw *pr;
{
register struct domain *dp;
register struct protosw *pr;
@@
-87,7
+122,7
@@
pfctlinput(cmd, arg)
for (dp = domains; dp; dp = dp->dom_next)
for (pr = dp->dom_protosw; pr < dp->dom_protoswNPROTOSW; pr++)
if (pr->pr_ctlinput)
for (dp = domains; dp; dp = dp->dom_next)
for (pr = dp->dom_protosw; pr < dp->dom_protoswNPROTOSW; pr++)
if (pr->pr_ctlinput)
- (*pr->pr_ctlinput)(cmd,
arg
);
+ (*pr->pr_ctlinput)(cmd,
sa, (caddr_t) 0
);
}
pfslowtimo()
}
pfslowtimo()