SCCS-vsn: sys/net/if.c 4.17
SCCS-vsn: sys/vax/if/if_acc.c 4.19
SCCS-vsn: sys/vax/if/if_dmc.c 4.17
SCCS-vsn: sys/vax/if/if_ec.c 4.19
SCCS-vsn: sys/vax/if/if_en.c 4.67
SCCS-vsn: sys/vax/if/if_il.c 4.8
SCCS-vsn: sys/deprecated/netimp/if_imp.c 4.37
SCCS-vsn: sys/deprecated/netimp/if_imphost.c 4.13
SCCS-vsn: sys/net/if_loop.c 4.13
SCCS-vsn: sys/vax/if/if_uba.c 4.12
SCCS-vsn: sys/vax/if/if_vv.c 4.5
SCCS-vsn: sys/netinet/in.c 4.3
SCCS-vsn: sys/vax/vax/in_cksum.c 1.12
SCCS-vsn: sys/netinet/in_pcb.c 4.28
SCCS-vsn: sys/netinet/in_systm.h 4.12
SCCS-vsn: sys/netinet/ip_icmp.c 4.17
SCCS-vsn: sys/netinet/ip_input.c 1.45
SCCS-vsn: sys/netinet/ip_output.c 1.35
SCCS-vsn: sys/deprecated/netpup/pup.c 4.2
SCCS-vsn: sys/net/raw_cb.c 4.9
SCCS-vsn: sys/deprecated/netimp/raw_imp.c 4.12
SCCS-vsn: sys/netinet/raw_ip.c 4.13
SCCS-vsn: sys/deprecated/netpup/raw_pup.c 4.12
SCCS-vsn: sys/net/raw_usrreq.c 4.17
SCCS-vsn: sys/net/route.c 4.11
SCCS-vsn: sys/netinet/tcp_input.c 1.68
SCCS-vsn: sys/netinet/tcp_output.c 4.42
SCCS-vsn: sys/netinet/tcp_subr.c 4.27
SCCS-vsn: sys/netinet/tcp_timer.c 4.23
SCCS-vsn: sys/netinet/tcp_usrreq.c 1.59
SCCS-vsn: sys/netinet/udp_usrreq.c 4.30
31 files changed:
-/* if_imp.c 4.36 82/06/15 */
+/* if_imp.c 4.37 82/06/20 */
#include "imp.h"
#if NIMP > 0
#include "imp.h"
#if NIMP > 0
register struct ifnet *ifp = &sc->imp_if;
struct sockaddr_in *sin;
register struct ifnet *ifp = &sc->imp_if;
struct sockaddr_in *sin;
/* UNIT COULD BE AMBIGUOUS */
ifp->if_unit = ui->ui_unit;
ifp->if_name = "imp";
/* UNIT COULD BE AMBIGUOUS */
ifp->if_unit = ui->ui_unit;
ifp->if_name = "imp";
int s = splimp();
register struct imp_softc *sc = &imp_softc[unit];
int s = splimp();
register struct imp_softc *sc = &imp_softc[unit];
if ((*sc->imp_cb.ic_init)(unit) == 0) {
sc->imp_state = IMPS_DOWN;
sc->imp_if.if_flags &= ~IFF_UP;
if ((*sc->imp_cb.ic_init)(unit) == 0) {
sc->imp_state = IMPS_DOWN;
sc->imp_if.if_flags &= ~IFF_UP;
struct mbuf *next;
struct sockaddr_in *sin;
struct mbuf *next;
struct sockaddr_in *sin;
/* verify leader length. */
if (m->m_len < sizeof(struct control_leader) &&
(m = m_pullup(m, sizeof(struct control_leader))) == 0)
/* verify leader length. */
if (m->m_len < sizeof(struct control_leader) &&
(m = m_pullup(m, sizeof(struct control_leader))) == 0)
sc->imp_state = IMPS_DOWN;
impmsg(sc, "marked down");
hostreset(sc->imp_if.if_net);
sc->imp_state = IMPS_DOWN;
impmsg(sc, "marked down");
hostreset(sc->imp_if.if_net);
printf("imp%d: ", sc->imp_if.if_unit);
printf(fmt, a1, a2);
printf("\n");
printf("imp%d: ", sc->imp_if.if_unit);
printf(fmt, a1, a2);
printf("\n");
#ifdef notdef
in.s_net = cp->dl_network;
#else
#ifdef notdef
in.s_net = cp->dl_network;
#else
int x, dhost, dimp, dlink, len, dnet;
int error = 0;
int x, dhost, dimp, dlink, len, dnet;
int error = 0;
/*
* Don't even try if the IMP is unavailable.
*/
/*
* Don't even try if the IMP is unavailable.
*/
struct impcb *icp;
int s, error;
struct impcb *icp;
int s, error;
ip = mtod(m, struct imp_leader *);
/*
ip = mtod(m, struct imp_leader *);
/*
register struct control_leader *cp;
int x;
register struct control_leader *cp;
int x;
sc->imp_dropcnt = IMP_DROPCNT;
for (i = 0; i < IMP_DROPCNT + 1; i++ ) {
if ((m = m_getclr(M_DONTWAIT)) == 0)
sc->imp_dropcnt = IMP_DROPCNT;
for (i = 0; i < IMP_DROPCNT + 1; i++ ) {
if ((m = m_getclr(M_DONTWAIT)) == 0)
-/* if_imphost.c 4.12 82/05/11 */
+/* if_imphost.c 4.13 82/06/20 */
#include "imp.h"
#if NIMP > 0
#include "imp.h"
#if NIMP > 0
register int hash = HOSTHASH(addr);
int s = splnet();
register int hash = HOSTHASH(addr);
int s = splnet();
for (m = hosts; m; m = m->m_next) {
hp = &mtod(m, struct hmbuf *)->hm_hosts[hash];
if (hp->h_addr.s_addr == addr.s_addr) {
for (m = hosts; m; m = m->m_next) {
hp = &mtod(m, struct hmbuf *)->hm_hosts[hash];
if (hp->h_addr.s_addr == addr.s_addr) {
register int hash = HOSTHASH(addr);
int s = splnet();
register int hash = HOSTHASH(addr);
int s = splnet();
mprev = &hosts;
while (m = *mprev) {
mprev = &m->m_next;
mprev = &hosts;
while (m = *mprev) {
mprev = &m->m_next;
hp->h_flags &= ~HF_INUSE;
hp->h_timer = HOSTTIMER;
hp->h_rfnm = 0;
hp->h_flags &= ~HF_INUSE;
hp->h_timer = HOSTTIMER;
hp->h_rfnm = 0;
struct hmbuf *hm;
int s = splnet();
struct hmbuf *hm;
int s = splnet();
for (m = hosts; m; m = m->m_next) {
hm = mtod(m, struct hmbuf *);
hp = hm->hm_hosts;
for (m = hosts; m; m = m->m_next) {
hm = mtod(m, struct hmbuf *);
hp = hm->hm_hosts;
{
register struct mbuf *m, **mprev, *mh = dtom(hp);
{
register struct mbuf *m, **mprev, *mh = dtom(hp);
/*
* Discard any packets left on the waiting q
*/
/*
* Discard any packets left on the waiting q
*/
struct hmbuf *hm;
int s = splnet();
struct hmbuf *hm;
int s = splnet();
for (m = hosts; m; m = m->m_next) {
hm = mtod(m, struct hmbuf *);
hp = hm->hm_hosts;
for (m = hosts; m; m = m->m_next) {
hm = mtod(m, struct hmbuf *);
hp = hm->hm_hosts;
-/* raw_imp.c 4.11 82/04/11 */
+/* raw_imp.c 4.12 82/06/20 */
#include "../h/param.h"
#include "../h/mbuf.h"
#include "../h/param.h"
#include "../h/mbuf.h"
struct ifnet *ifp;
struct control_leader *cp;
struct ifnet *ifp;
struct control_leader *cp;
/*
* Verify user has supplied necessary space
* for the leader and check parameters in it.
/*
* Verify user has supplied necessary space
* for the leader and check parameters in it.
-/* pup.c 4.1 82/06/13 */
+/* pup.c 4.2 82/06/20 */
#include "../h/param.h"
#include "../h/mbuf.h"
#include "../h/param.h"
#include "../h/mbuf.h"
struct sockaddr_pup *spup;
struct afhash *hp;
{
struct sockaddr_pup *spup;
struct afhash *hp;
{
hp->afh_nethash = spup->spup_addr.pp_net;
hp->afh_hosthash = spup->spup_addr.pp_host;
if (hp->afh_hosthash < 0)
hp->afh_nethash = spup->spup_addr.pp_net;
hp->afh_hosthash = spup->spup_addr.pp_host;
if (hp->afh_hosthash < 0)
pup_netmatch(spup1, spup2)
struct sockaddr_pup *spup1, *spup2;
{
pup_netmatch(spup1, spup2)
struct sockaddr_pup *spup1, *spup2;
{
return (spup1->spup_addr.pp_net == spup2->spup_addr.pp_net);
}
#endif
return (spup1->spup_addr.pp_net == spup2->spup_addr.pp_net);
}
#endif
-/* raw_pup.c 4.11 82/04/10 */
+/* raw_pup.c 4.12 82/06/20 */
#include "../h/param.h"
#include "../h/mbuf.h"
#include "../h/param.h"
#include "../h/mbuf.h"
struct sockaddr_pup *dst;
struct ifnet *ifp;
struct sockaddr_pup *dst;
struct ifnet *ifp;
/*
* Verify user has supplied necessary space
* for the header and check parameters in it.
/*
* Verify user has supplied necessary space
* for the header and check parameters in it.
-/* if.c 4.16 82/06/13 */
+/* if.c 4.17 82/06/20 */
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/param.h"
#include "../h/systm.h"
{
register struct ifnet **p = &ifnet;
{
register struct ifnet **p = &ifnet;
while (*p)
p = &((*p)->if_next);
*p = ifp;
while (*p)
p = &((*p)->if_next);
*p = ifp;
{
register struct ifnet *ifp;
{
register struct ifnet *ifp;
#define equal(a1, a2) \
(bcmp((caddr_t)((a1)->sa_data), (caddr_t)((a2)->sa_data), 14) == 0)
for (ifp = ifnet; ifp; ifp = ifp->if_next) {
#define equal(a1, a2) \
(bcmp((caddr_t)((a1)->sa_data), (caddr_t)((a2)->sa_data), 14) == 0)
for (ifp = ifnet; ifp; ifp = ifp->if_next) {
-/* if_loop.c 4.12 82/06/12 */
+/* if_loop.c 4.13 82/06/20 */
/*
* Loopback interface driver for protocol testing and timing.
/*
* Loopback interface driver for protocol testing and timing.
register struct ifnet *ifp = &loif;
register struct sockaddr_in *sin;
register struct ifnet *ifp = &loif;
register struct sockaddr_in *sin;
ifp->if_name = "lo";
ifp->if_mtu = LOMTU;
ifp->if_net = LONET;
ifp->if_name = "lo";
ifp->if_mtu = LOMTU;
ifp->if_net = LONET;
int s = splimp();
register struct ifqueue *ifq;
int s = splimp();
register struct ifqueue *ifq;
ifp->if_opackets++;
switch (dst->sa_family) {
ifp->if_opackets++;
switch (dst->sa_family) {
-/* raw_cb.c 4.8 82/04/11 */
+/* raw_cb.c 4.9 82/06/20 */
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/param.h"
#include "../h/systm.h"
struct mbuf *m;
register struct rawcb *rp;
struct mbuf *m;
register struct rawcb *rp;
if (ifnet == 0)
return (EADDRNOTAVAIL);
/*
if (ifnet == 0)
return (EADDRNOTAVAIL);
/*
{
struct socket *so = rp->rcb_socket;
{
struct socket *so = rp->rcb_socket;
so->so_pcb = 0;
sofree(so);
remque(rp);
so->so_pcb = 0;
sofree(so);
remque(rp);
raw_disconnect(rp)
struct rawcb *rp;
{
raw_disconnect(rp)
struct rawcb *rp;
{
rp->rcb_flags &= ~RAW_FADDR;
if (rp->rcb_socket->so_state & SS_USERGONE)
raw_detach(rp);
rp->rcb_flags &= ~RAW_FADDR;
if (rp->rcb_socket->so_state & SS_USERGONE)
raw_detach(rp);
struct rawcb *rp;
struct sockaddr *addr;
{
struct rawcb *rp;
struct sockaddr *addr;
{
bcopy((caddr_t)addr, (caddr_t)&rp->rcb_faddr, sizeof(*addr));
rp->rcb_flags |= RAW_FADDR;
}
bcopy((caddr_t)addr, (caddr_t)&rp->rcb_faddr, sizeof(*addr));
rp->rcb_flags |= RAW_FADDR;
}
-/* raw_usrreq.c 4.16 82/04/25 */
+/* raw_usrreq.c 4.17 82/06/20 */
#include "../h/param.h"
#include "../h/mbuf.h"
#include "../h/param.h"
#include "../h/mbuf.h"
rawcb.rcb_next = rawcb.rcb_prev = &rawcb;
rawintrq.ifq_maxlen = IFQ_MAXLEN;
}
rawcb.rcb_next = rawcb.rcb_prev = &rawcb;
rawintrq.ifq_maxlen = IFQ_MAXLEN;
}
struct raw_header *rh;
int s;
struct raw_header *rh;
int s;
/*
* Rip off an mbuf for a generic header.
*/
/*
* Rip off an mbuf for a generic header.
*/
register struct raw_header *rh;
struct socket *last;
register struct raw_header *rh;
struct socket *last;
next:
s = splimp();
IF_DEQUEUE(&rawintrq, m);
next:
s = splimp();
IF_DEQUEUE(&rawintrq, m);
if (cmd < 0 || cmd > PRC_NCMDS)
return;
if (cmd < 0 || cmd > PRC_NCMDS)
return;
register struct rawcb *rp = sotorawcb(so);
int error = 0;
register struct rawcb *rp = sotorawcb(so);
int error = 0;
if (rp == 0 && req != PRU_ATTACH)
return (EINVAL);
if (rp == 0 && req != PRU_ATTACH)
return (EINVAL);
-/* route.c 4.10 82/06/12 */
+/* route.c 4.11 82/06/20 */
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/param.h"
#include "../h/systm.h"
struct sockaddr *dst = &ro->ro_dst;
int af = dst->sa_family;
struct sockaddr *dst = &ro->ro_dst;
int af = dst->sa_family;
if (ro->ro_rt && ro->ro_rt->rt_ifp) /* XXX */
return;
if (af >= AF_MAX)
if (ro->ro_rt && ro->ro_rt->rt_ifp) /* XXX */
return;
if (af >= AF_MAX)
int af, s, error = 0, hash, (*match)();
struct ifnet *ifp;
int af, s, error = 0, hash, (*match)();
struct ifnet *ifp;
af = entry->rt_dst.sa_family;
if (af >= AF_MAX)
return (EAFNOSUPPORT);
af = entry->rt_dst.sa_family;
if (af >= AF_MAX)
return (EAFNOSUPPORT);
#include "../h/param.h"
#include "../h/mbuf.h"
#include "../h/param.h"
#include "../h/mbuf.h"
register struct sockaddr_in *sin;
struct afhash *hp;
{
register struct sockaddr_in *sin;
struct afhash *hp;
{
hp->afh_nethash = in_netof(sin->sin_addr);
hp->afh_hosthash = ntohl(sin->sin_addr.s_addr);
if (hp->afh_hosthash < 0)
hp->afh_nethash = in_netof(sin->sin_addr);
hp->afh_hosthash = ntohl(sin->sin_addr.s_addr);
if (hp->afh_hosthash < 0)
inet_netmatch(sin1, sin2)
struct sockaddr_in *sin1, *sin2;
{
inet_netmatch(sin1, sin2)
struct sockaddr_in *sin1, *sin2;
{
return (sin1->sin_addr.s_net == sin2->sin_addr.s_net);
}
return (sin1->sin_addr.s_net == sin2->sin_addr.s_net);
}
if (net < 128)
addr = (net << 24) | host;
else if (net < 65536)
if (net < 128)
addr = (net << 24) | host;
else if (net < 65536)
{
struct sockaddr_in sin;
{
struct sockaddr_in sin;
if (ifp->if_flags & IFF_ROUTE)
return;
bzero((caddr_t)&sin, sizeof (sin));
if (ifp->if_flags & IFF_ROUTE)
return;
bzero((caddr_t)&sin, sizeof (sin));
-/* in_pcb.c 4.27 82/06/13 */
+/* in_pcb.c 4.28 82/06/20 */
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/param.h"
#include "../h/systm.h"
register struct inpcb *inp;
u_short lport = 0;
register struct inpcb *inp;
u_short lport = 0;
if (ifnet == 0)
return (EADDRNOTAVAIL);
if (sin) {
if (ifnet == 0)
return (EADDRNOTAVAIL);
if (sin) {
struct ifnet *ifp;
struct sockaddr_in *ifaddr;
struct ifnet *ifp;
struct sockaddr_in *ifaddr;
if (sin->sin_family != AF_INET)
return (EAFNOSUPPORT);
if (sin->sin_addr.s_addr == 0 || sin->sin_port == 0)
if (sin->sin_family != AF_INET)
return (EAFNOSUPPORT);
if (sin->sin_addr.s_addr == 0 || sin->sin_port == 0)
-COUNT(IN_PCBDISCONNECT);
inp->inp_faddr.s_addr = 0;
inp->inp_fport = 0;
if (inp->inp_socket->so_state & SS_USERGONE)
inp->inp_faddr.s_addr = 0;
inp->inp_fport = 0;
if (inp->inp_socket->so_state & SS_USERGONE)
{
struct socket *so = inp->inp_socket;
{
struct socket *so = inp->inp_socket;
so->so_pcb = 0;
sofree(so);
if (inp->inp_route.ro_rt)
so->so_pcb = 0;
sofree(so);
if (inp->inp_route.ro_rt)
register struct sockaddr_in *sin;
register struct inpcb *inp;
{
register struct sockaddr_in *sin;
register struct inpcb *inp;
{
if (sin == 0 || inp == 0)
panic("setsockaddr_in");
bzero((caddr_t)sin, sizeof (*sin));
if (sin == 0 || inp == 0)
panic("setsockaddr_in");
bzero((caddr_t)sin, sizeof (*sin));
register struct inpcb *inp, *oinp;
int s = splimp();
register struct inpcb *inp, *oinp;
int s = splimp();
for (inp = head->inp_next; inp != head;) {
if (inp->inp_faddr.s_addr != dst->s_addr) {
next:
for (inp = head->inp_next; inp != head;) {
if (inp->inp_faddr.s_addr != dst->s_addr) {
next:
-/* in_systm.h 4.11 82/05/31 */
+/* in_systm.h 4.12 82/06/20 */
/*
* Miscellaneous internetwork
/*
* Miscellaneous internetwork
#ifndef LOCORE
#ifdef KERNEL
int netisr; /* scheduling bits for network */
#ifndef LOCORE
#ifdef KERNEL
int netisr; /* scheduling bits for network */
-#endif
-
-
-#ifdef KERNEL
-
-#ifdef KPROF
-#include "../inet/count.h"
-#define COUNT(i) nrcount[i]++
-int nrcount[NCOUNTERS+1];
-#else
-#define COUNT(i)
-#endif
-/* ip_icmp.c 4.16 82/05/02 */
+/* ip_icmp.c 4.17 82/06/20 */
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/param.h"
#include "../h/systm.h"
register struct icmp *icp;
struct mbuf *m;
struct ip *nip;
register struct icmp *icp;
struct mbuf *m;
struct ip *nip;
if (icmpprintfs)
printf("icmp_error(%x, %d, %d)\n", oip, type, code);
if (icmpprintfs)
printf("icmp_error(%x, %d, %d)\n", oip, type, code);
register struct ip *ip = mtod(m, struct ip *);
int icmplen = ip->ip_len, hlen = ip->ip_hl << 2, i, (*ctlfunc)();
extern u_char ip_protox[];
register struct ip *ip = mtod(m, struct ip *);
int icmplen = ip->ip_len, hlen = ip->ip_hl << 2, i, (*ctlfunc)();
extern u_char ip_protox[];
/*
* Locate icmp structure in mbuf, and check
/*
* Locate icmp structure in mbuf, and check
struct ip *ip;
{
struct in_addr t;
struct ip *ip;
{
struct in_addr t;
t = ip->ip_dst;
ip->ip_dst = ip->ip_src;
t = ip->ip_dst;
ip->ip_dst = ip->ip_src;
register struct icmp *icp;
register struct mbuf *m = dtom(ip);
register struct icmp *icp;
register struct mbuf *m = dtom(ip);
if (!generateicmpmsgs)
return;
icp = mtod(m, struct icmp *);
if (!generateicmpmsgs)
return;
icp = mtod(m, struct icmp *);
int s = spl6();
u_long t;
int s = spl6();
u_long t;
t = (time % SECDAY) * 1000 + lbolt * hz;
splx(s);
return (htonl(t));
t = (time % SECDAY) * 1000 + lbolt * hz;
splx(s);
return (htonl(t));
-/* ip_input.c 1.44 82/06/13 */
+/* ip_input.c 1.45 82/06/20 */
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/param.h"
#include "../h/systm.h"
register struct protosw *pr;
register int i;
register struct protosw *pr;
register int i;
pr = pffindproto(PF_INET, IPPROTO_RAW);
if (pr == 0)
panic("ip_init");
pr = pffindproto(PF_INET, IPPROTO_RAW);
if (pr == 0)
panic("ip_init");
register struct ipq *fp;
int hlen, s;
register struct ipq *fp;
int hlen, s;
next:
/*
* Get next datagram off input queue and get IP header
next:
/*
* Get next datagram off input queue and get IP header
struct mbuf *t;
int hlen = ip->ip_hl << 2;
int i, next;
struct mbuf *t;
int hlen = ip->ip_hl << 2;
int i, next;
/*
* Presence of header sizes in mbufs
/*
* Presence of header sizes in mbufs
{
register struct ipasfrag *q;
struct mbuf *m;
{
register struct ipasfrag *q;
struct mbuf *m;
for (q = fp->ipq_next; q != (struct ipasfrag *)fp; q = q->ipf_next)
m_freem(dtom(q));
for (q = fp->ipq_next; q != (struct ipasfrag *)fp; q = q->ipf_next)
m_freem(dtom(q));
register struct ipasfrag *p, *prev;
{
register struct ipasfrag *p, *prev;
{
p->ipf_prev = prev;
p->ipf_next = prev->ipf_next;
prev->ipf_next->ipf_prev = p;
p->ipf_prev = prev;
p->ipf_next = prev->ipf_next;
prev->ipf_next->ipf_prev = p;
register struct ipasfrag *p;
{
register struct ipasfrag *p;
{
p->ipf_prev->ipf_next = p->ipf_next;
p->ipf_next->ipf_prev = p->ipf_prev;
}
p->ipf_prev->ipf_next = p->ipf_next;
p->ipf_next->ipf_prev = p->ipf_prev;
}
register struct ipq *fp;
int s = splnet();
register struct ipq *fp;
int s = splnet();
fp = ipq.next;
if (fp == 0) {
splx(s);
fp = ipq.next;
if (fp == 0) {
splx(s);
while (ipq.next != &ipq)
(void) ip_freef(ipq.next);
}
while (ipq.next != &ipq)
(void) ip_freef(ipq.next);
}
register struct ifnet *ifp;
struct in_addr t;
register struct ifnet *ifp;
struct in_addr t;
cp = (u_char *)(ip + 1);
cnt = (ip->ip_hl << 2) - sizeof (struct ip);
for (; cnt > 0; cnt -= optlen, cp += optlen) {
cp = (u_char *)(ip + 1);
cnt = (ip->ip_hl << 2) - sizeof (struct ip);
for (; cnt > 0; cnt -= optlen, cp += optlen) {
register int i;
register struct mbuf *m;
int olen;
register int i;
register struct mbuf *m;
int olen;
olen = (ip->ip_hl<<2) - sizeof (struct ip);
m = dtom(ip);
olen = (ip->ip_hl<<2) - sizeof (struct ip);
m = dtom(ip);
-/* ip_output.c 1.34 82/06/13 */
+/* ip_output.c 1.35 82/06/20 */
#include "../h/param.h"
#include "../h/mbuf.h"
#include "../h/param.h"
#include "../h/mbuf.h"
struct route iproute;
struct sockaddr *dst;
struct route iproute;
struct sockaddr *dst;
if (opt) /* XXX */
(void) m_free(opt); /* XXX */
/*
if (opt) /* XXX */
(void) m_free(opt); /* XXX */
/*
register u_char *cp, *dp;
int opt, optlen, cnt;
register u_char *cp, *dp;
int opt, optlen, cnt;
cp = (u_char *)(ip + 1);
dp = (u_char *)(jp + 1);
cnt = (ip->ip_hl << 2) - sizeof (struct ip);
cp = (u_char *)(ip + 1);
dp = (u_char *)(jp + 1);
cnt = (ip->ip_hl << 2) - sizeof (struct ip);
-/* raw_ip.c 4.12 82/06/12 */
+/* raw_ip.c 4.13 82/06/20 */
#include "../h/param.h"
#include "../h/mbuf.h"
#include "../h/param.h"
#include "../h/mbuf.h"
{
register struct ip *ip = mtod(m, struct ip *);
{
register struct ip *ip = mtod(m, struct ip *);
ripproto.sp_protocol = ip->ip_p;
ripdst.sin_addr = ip->ip_dst;
ripsrc.sin_addr = ip->ip_src;
ripproto.sp_protocol = ip->ip_p;
ripdst.sin_addr = ip->ip_dst;
ripsrc.sin_addr = ip->ip_src;
struct ifnet *ifp;
struct sockaddr_in *sin;
struct ifnet *ifp;
struct sockaddr_in *sin;
/*
* Calculate data length and get an mbuf
* for IP header.
/*
* Calculate data length and get an mbuf
* for IP header.
-/* tcp_input.c 1.67 82/04/10 */
+/* tcp_input.c 1.68 82/06/20 */
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/param.h"
#include "../h/systm.h"
short ostate;
struct in_addr laddr;
short ostate;
struct in_addr laddr;
/*
* Get IP and TCP header together in first mbuf.
* Note: IP leaves IP header in first mbuf.
/*
* Get IP and TCP header together in first mbuf.
* Note: IP leaves IP header in first mbuf.
struct socket *so = tp->t_inpcb->inp_socket;
struct mbuf *m;
int flags;
struct socket *so = tp->t_inpcb->inp_socket;
struct mbuf *m;
int flags;
/*
* Call with ti==0 after become established to
/*
* Call with ti==0 after become established to
-/* tcp_output.c 4.41 82/06/12 */
+/* tcp_output.c 4.42 82/06/20 */
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/param.h"
#include "../h/systm.h"
unsigned optlen = 0;
int sendalot;
unsigned optlen = 0;
int sendalot;
/*
* Determine length of data that should be transmitted,
/*
* Determine length of data that should be transmitted,
-/* tcp_subr.c 4.26 82/04/30 */
+/* tcp_subr.c 4.27 82/06/20 */
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/param.h"
#include "../h/systm.h"
tcp_iss = 1; /* wrong */
tcb.inp_next = tcb.inp_prev = &tcb;
tcp_alpha = TCP_ALPHA;
tcp_iss = 1; /* wrong */
tcb.inp_next = tcb.inp_prev = &tcb;
tcp_alpha = TCP_ALPHA;
register struct mbuf *m;
register struct tcpiphdr *n;
register struct mbuf *m;
register struct tcpiphdr *n;
m = m_get(M_WAIT);
if (m == 0)
return (0);
m = m_get(M_WAIT);
if (m == 0)
return (0);
int win = 0, tlen;
struct route *ro = 0;
int win = 0, tlen;
struct route *ro = 0;
if (tp) {
win = sbspace(&tp->t_inpcb->inp_socket->so_rcv);
ro = &tp->t_inpcb->inp_route;
if (tp) {
win = sbspace(&tp->t_inpcb->inp_socket->so_rcv);
ro = &tp->t_inpcb->inp_route;
{
struct mbuf *m = m_getclr(M_DONTWAIT);
register struct tcpcb *tp;
{
struct mbuf *m = m_getclr(M_DONTWAIT);
register struct tcpcb *tp;
{
struct socket *so = tp->t_inpcb->inp_socket;
{
struct socket *so = tp->t_inpcb->inp_socket;
if (TCPS_HAVERCVDSYN(tp->t_state)) {
tp->t_state = TCPS_CLOSED;
tcp_output(tp);
if (TCPS_HAVERCVDSYN(tp->t_state)) {
tp->t_state = TCPS_CLOSED;
tcp_output(tp);
struct inpcb *inp = tp->t_inpcb;
struct socket *so = inp->inp_socket;
struct inpcb *inp = tp->t_inpcb;
struct socket *so = inp->inp_socket;
t = tp->seg_next;
for (; t != (struct tcpiphdr *)tp; t = (struct tcpiphdr *)t->ti_next)
m_freem(dtom(t));
t = tp->seg_next;
for (; t != (struct tcpiphdr *)tp; t = (struct tcpiphdr *)t->ti_next)
m_freem(dtom(t));
{
struct in_addr *sin;
extern u_char inetctlerrmap[];
{
struct in_addr *sin;
extern u_char inetctlerrmap[];
if (cmd < 0 || cmd > PRC_NCMDS)
return;
if (cmd < 0 || cmd > PRC_NCMDS)
return;
-/* tcp_timer.c 4.22 82/06/12 */
+/* tcp_timer.c 4.23 82/06/20 */
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/param.h"
#include "../h/systm.h"
register struct inpcb *inp;
register struct tcpcb *tp;
int s = splnet();
register struct inpcb *inp;
register struct tcpcb *tp;
int s = splnet();
inp = tcb.inp_next;
if (inp)
inp = tcb.inp_next;
if (inp)
register struct tcpcb *tp;
int s = splnet();
register int i;
register struct tcpcb *tp;
int s = splnet();
register int i;
/*
* Search through tcb's and update active timers.
/*
* Search through tcb's and update active timers.
-COUNT(TCP_CANCELTIMERS);
for (i = 0; i < TCPT_NTIMERS; i++)
tp->t_timer[i] = 0;
}
for (i = 0; i < TCPT_NTIMERS; i++)
tp->t_timer[i] = 0;
}
-/* tcp_usrreq.c 1.58 82/06/12 */
+/* tcp_usrreq.c 1.59 82/06/20 */
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/param.h"
#include "../h/systm.h"
int s = splnet();
int error = 0;
int ostate;
int s = splnet();
int error = 0;
int ostate;
/*
* When a TCP is attached to a socket, then there will be
/*
* When a TCP is attached to a socket, then there will be
-/* udp_usrreq.c 4.29 82/06/12 */
+/* udp_usrreq.c 4.30 82/06/20 */
#include "../h/param.h"
#include "../h/dir.h"
#include "../h/param.h"
#include "../h/dir.h"
udb.inp_next = udb.inp_prev = &udb;
}
udb.inp_next = udb.inp_prev = &udb;
}
register struct mbuf *m;
int len, ulen;
register struct mbuf *m;
int len, ulen;
/*
* Get IP and UDP header together in first mbuf.
*/
/*
* Get IP and UDP header together in first mbuf.
*/
{
struct in_addr *sin;
extern u_char inetctlerrmap[];
{
struct in_addr *sin;
extern u_char inetctlerrmap[];
if (cmd < 0 || cmd > PRC_NCMDS)
return;
if (cmd < 0 || cmd > PRC_NCMDS)
return;
register struct socket *so;
register int len = 0;
register struct socket *so;
register int len = 0;
/*
* Calculate data length and get a mbuf
* for UDP and IP headers.
/*
* Calculate data length and get a mbuf
* for UDP and IP headers.
struct inpcb *inp = sotoinpcb(so);
int error = 0;
struct inpcb *inp = sotoinpcb(so);
int error = 0;
if (inp == 0 && req != PRU_ATTACH)
return (EINVAL);
switch (req) {
if (inp == 0 && req != PRU_ATTACH)
return (EINVAL);
switch (req) {
-/* if_acc.c 4.18 82/06/15 */
+/* if_acc.c 4.19 82/06/20 */
#include "acc.h"
#ifdef NACC > 0
#include "acc.h"
#ifdef NACC > 0
register int br, cvec; /* r11, r10 value-result */
register struct accdevice *addr = (struct accdevice *)reg;
register int br, cvec; /* r11, r10 value-result */
register struct accdevice *addr = (struct accdevice *)reg;
#ifdef lint
br = 0; cvec = br; br = cvec;
accrint(0); accxint(0);
#ifdef lint
br = 0; cvec = br; br = cvec;
accrint(0); accxint(0);
struct impcb ifimp_impcb;
} *ifimp;
struct impcb ifimp_impcb;
} *ifimp;
if ((ifimp = (struct ifimpcb *)impattach(ui)) == 0)
panic("accattach");
sc->acc_if = &ifimp->ifimp_if;
if ((ifimp = (struct ifimpcb *)impattach(ui)) == 0)
panic("accattach");
sc->acc_if = &ifimp->ifimp_if;
register struct uba_device *ui;
struct acc_softc *sc;
register struct uba_device *ui;
struct acc_softc *sc;
if (unit >= NACC || (ui = accinfo[unit]) == 0 || ui->ui_alive == 0 ||
ui->ui_ubanum != uban)
return;
if (unit >= NACC || (ui = accinfo[unit]) == 0 || ui->ui_alive == 0 ||
ui->ui_ubanum != uban)
return;
register struct accdevice *addr;
int info, i;
register struct accdevice *addr;
int info, i;
if (unit >= NACC || (ui = accinfo[unit]) == 0 || ui->ui_alive == 0) {
printf("acc%d: not alive\n", unit);
return (0);
if (unit >= NACC || (ui = accinfo[unit]) == 0 || ui->ui_alive == 0) {
printf("acc%d: not alive\n", unit);
return (0);
struct mbuf *m;
u_short cmd;
struct mbuf *m;
u_short cmd;
if (sc->acc_ic->ic_oactive)
goto restart;
if (sc->acc_ic->ic_oactive)
goto restart;
register struct acc_softc *sc = &acc_softc[unit];
register struct accdevice *addr;
register struct acc_softc *sc = &acc_softc[unit];
register struct accdevice *addr;
addr = (struct accdevice *)accinfo[unit]->ui_addr;
if (sc->acc_ic->ic_oactive == 0) {
printf("acc%d: stray xmit interrupt, csr=%b\n", unit,
addr = (struct accdevice *)accinfo[unit]->ui_addr;
if (sc->acc_ic->ic_oactive == 0) {
printf("acc%d: stray xmit interrupt, csr=%b\n", unit,
struct mbuf *m;
int len, info;
struct mbuf *m;
int len, info;
addr = (struct accdevice *)accinfo[unit]->ui_addr;
sc->acc_if->if_ipackets++;
addr = (struct accdevice *)accinfo[unit]->ui_addr;
sc->acc_if->if_ipackets++;
-/* if_dmc.c 4.16 82/06/13 */
+/* if_dmc.c 4.17 82/06/20 */
#include "dmc.h"
#if NDMC > 0
#include "dmc.h"
#if NDMC > 0
register struct dmcdevice *addr = (struct dmcdevice *)reg;
register int i;
register struct dmcdevice *addr = (struct dmcdevice *)reg;
register int i;
#ifdef lint
br = 0; cvec = br; br = cvec;
dmcrint(0); dmcxint(0);
#ifdef lint
br = 0; cvec = br; br = cvec;
dmcrint(0); dmcxint(0);
register struct dmc_softc *sc = &dmc_softc[ui->ui_unit];
register struct sockaddr_in *sin;
register struct dmc_softc *sc = &dmc_softc[ui->ui_unit];
register struct sockaddr_in *sin;
sc->sc_if.if_unit = ui->ui_unit;
sc->sc_if.if_name = "dmc";
sc->sc_if.if_mtu = DMCMTU;
sc->sc_if.if_unit = ui->ui_unit;
sc->sc_if.if_name = "dmc";
sc->sc_if.if_mtu = DMCMTU;
{
register struct uba_device *ui;
{
register struct uba_device *ui;
if (unit >= NDMC || (ui = dmcinfo[unit]) == 0 || ui->ui_alive == 0 ||
ui->ui_ubanum != uban)
return;
if (unit >= NDMC || (ui = dmcinfo[unit]) == 0 || ui->ui_alive == 0 ||
ui->ui_ubanum != uban)
return;
register struct dmcdevice *addr;
int base;
register struct dmcdevice *addr;
int base;
printd("dmcinit\n");
if ((sc->sc_flag&DMCBMAPPED) == 0) {
sc->sc_ubinfo = uballoc(ui->ui_ubanum,
printd("dmcinit\n");
if ((sc->sc_flag&DMCBMAPPED) == 0) {
sc->sc_ubinfo = uballoc(ui->ui_ubanum,
int addr, len;
struct mbuf *m;
int addr, len;
struct mbuf *m;
printd("dmcstart\n");
/*
* Dequeue a request and map it to the UNIBUS.
printd("dmcstart\n");
/*
* Dequeue a request and map it to the UNIBUS.
register struct dmcdevice *addr;
register int unit, sps, n;
register struct dmcdevice *addr;
register int unit, sps, n;
printd("dmcload: 0x%x 0x%x 0x%x\n", type, w0, w1);
unit = sc - dmc_softc;
addr = (struct dmcdevice *)dmcinfo[unit]->ui_addr;
printd("dmcload: 0x%x 0x%x 0x%x\n", type, w0, w1);
unit = sc - dmc_softc;
addr = (struct dmcdevice *)dmcinfo[unit]->ui_addr;
register struct dmcdevice *addr;
register int n;
register struct dmcdevice *addr;
register int n;
addr = (struct dmcdevice *)dmcinfo[unit]->ui_addr;
sc = &dmc_softc[unit];
while (addr->bsel0&DMC_RDYI) {
addr = (struct dmcdevice *)dmcinfo[unit]->ui_addr;
sc = &dmc_softc[unit];
while (addr->bsel0&DMC_RDYI) {
register struct ifqueue *inq;
int arg, cmd, len;
register struct ifqueue *inq;
int arg, cmd, len;
addr = (struct dmcdevice *)ui->ui_addr;
arg = addr->sel6;
cmd = addr->bsel2&7;
addr = (struct dmcdevice *)ui->ui_addr;
arg = addr->sel6;
cmd = addr->bsel2&7;
struct uba_device *ui = dmcinfo[ifp->if_unit];
int s;
struct uba_device *ui = dmcinfo[ifp->if_unit];
int s;
printd("dmcoutput\n");
if (dst->sa_family != (ui->ui_flags & DMC_AF)) {
printf("dmc%d: af%d not supported\n", ifp->if_unit, pf);
printd("dmcoutput\n");
if (dst->sa_family != (ui->ui_flags & DMC_AF)) {
printf("dmc%d: af%d not supported\n", ifp->if_unit, pf);
-/* if_ec.c 4.18 82/06/17 */
+/* if_ec.c 4.19 82/06/20 */
register struct ecdevice *addr = (struct ecdevice *)reg;
register caddr_t ecbuf = (caddr_t) &umem[0][0600000];
register struct ecdevice *addr = (struct ecdevice *)reg;
register caddr_t ecbuf = (caddr_t) &umem[0][0600000];
#ifdef lint
br = 0; cvec = br; br = cvec;
ecrint(0); ecxint(0); eccollide(0);
#ifdef lint
br = 0; cvec = br; br = cvec;
ecrint(0); ecxint(0); eccollide(0);
struct sockaddr_in *sin;
int i, j;
u_char *cp;
struct sockaddr_in *sin;
int i, j;
u_char *cp;
ifp->if_unit = ui->ui_unit;
ifp->if_name = "ec";
ifp->if_unit = ui->ui_unit;
ifp->if_name = "ec";
int unit, uban;
{
register struct uba_device *ui;
int unit, uban;
{
register struct uba_device *ui;
if (unit >= NEC || (ui = ecinfo[unit]) == 0 || ui->ui_alive == 0 ||
ui->ui_ubanum != uban)
if (unit >= NEC || (ui = ecinfo[unit]) == 0 || ui->ui_alive == 0 ||
ui->ui_ubanum != uban)
struct ecdevice *addr;
struct mbuf *m;
caddr_t ecbuf;
struct ecdevice *addr;
struct mbuf *m;
caddr_t ecbuf;
if (es->es_oactive)
goto restart;
if (es->es_oactive)
goto restart;
register struct ec_softc *es = &ec_softc[unit];
register struct ecdevice *addr =
(struct ecdevice *)ecinfo[unit]->ui_addr;
register struct ec_softc *es = &ec_softc[unit];
register struct ecdevice *addr =
(struct ecdevice *)ecinfo[unit]->ui_addr;
if (es->es_oactive == 0)
return;
if (es->es_oactive == 0)
return;
int unit;
{
struct ec_softc *es = &ec_softc[unit];
int unit;
{
struct ec_softc *es = &ec_softc[unit];
printf("ec%d: collision\n", unit);
es->es_if.if_collisions++;
printf("ec%d: collision\n", unit);
es->es_if.if_collisions++;
int unit;
{
struct ecdevice *addr = (struct ecdevice *)ecinfo[unit]->ui_addr;
int unit;
{
struct ecdevice *addr = (struct ecdevice *)ecinfo[unit]->ui_addr;
while (addr->ec_rcr & EC_RDONE)
ecread(unit);
while (addr->ec_rcr & EC_RDONE)
ecread(unit);
int len, off, resid, ecoff, buf;
register struct ifqueue *inq;
caddr_t ecbuf;
int len, off, resid, ecoff, buf;
register struct ifqueue *inq;
caddr_t ecbuf;
es->es_if.if_ipackets++;
buf = addr->ec_rcr & EC_RBN;
es->es_if.if_ipackets++;
buf = addr->ec_rcr & EC_RBN;
register int off, i;
struct mbuf *mcopy = (struct mbuf *) 0; /* Null */
register int off, i;
struct mbuf *mcopy = (struct mbuf *) 0; /* Null */
switch (dst->sa_family) {
#ifdef INET
switch (dst->sa_family) {
#ifdef INET
register u_char *bp;
register int off;
register u_char *bp;
register int off;
for (off = 2048, mp = m; mp; mp = mp->m_next)
off -= mp->m_len;
*(u_short *)ecbuf = off;
for (off = 2048, mp = m; mp; mp = mp->m_next)
off -= mp->m_len;
*(u_short *)ecbuf = off;
register char *cp, *mcp;
register int i;
register char *cp, *mcp;
register int i;
top = 0;
mp = ⊤
cp = ecbuf + ECRDOFF + sizeof (struct ec_header);
top = 0;
mp = ⊤
cp = ecbuf + ECRDOFF + sizeof (struct ec_header);
-/* if_en.c 4.66 82/06/14 */
+/* if_en.c 4.67 82/06/20 */
register int br, cvec; /* r11, r10 value-result */
register struct endevice *addr = (struct endevice *)reg;
register int br, cvec; /* r11, r10 value-result */
register struct endevice *addr = (struct endevice *)reg;
#ifdef lint
br = 0; cvec = br; br = cvec;
enrint(0); enxint(0); encollide(0);
#ifdef lint
br = 0; cvec = br; br = cvec;
enrint(0); enxint(0); encollide(0);
{
register struct en_softc *es = &en_softc[ui->ui_unit];
register struct sockaddr_in *sin;
{
register struct en_softc *es = &en_softc[ui->ui_unit];
register struct sockaddr_in *sin;
es->es_if.if_unit = ui->ui_unit;
es->es_if.if_name = "en";
es->es_if.if_unit = ui->ui_unit;
es->es_if.if_name = "en";
int unit, uban;
{
register struct uba_device *ui;
int unit, uban;
{
register struct uba_device *ui;
if (unit >= NEN || (ui = eninfo[unit]) == 0 || ui->ui_alive == 0 ||
ui->ui_ubanum != uban)
if (unit >= NEN || (ui = eninfo[unit]) == 0 || ui->ui_alive == 0 ||
ui->ui_ubanum != uban)
register struct endevice *addr;
struct mbuf *m;
int dest;
register struct endevice *addr;
struct mbuf *m;
int dest;
if (es->es_oactive)
goto restart;
if (es->es_oactive)
goto restart;
register struct uba_device *ui = eninfo[unit];
register struct en_softc *es = &en_softc[unit];
register struct endevice *addr = (struct endevice *)ui->ui_addr;
register struct uba_device *ui = eninfo[unit];
register struct en_softc *es = &en_softc[unit];
register struct endevice *addr = (struct endevice *)ui->ui_addr;
if (es->es_oactive == 0)
return;
if (es->es_oactive == 0)
return;
int unit;
{
struct en_softc *es = &en_softc[unit];
int unit;
{
struct en_softc *es = &en_softc[unit];
es->es_if.if_collisions++;
if (es->es_oactive == 0)
es->es_if.if_collisions++;
if (es->es_oactive == 0)
int len, plen; short resid;
register struct ifqueue *inq;
int off;
int len, plen; short resid;
register struct ifqueue *inq;
int off;
register struct en_header *en;
register int off;
register struct en_header *en;
register int off;
switch (dst->sa_family) {
#ifdef INET
switch (dst->sa_family) {
#ifdef INET
-/* if_il.c 4.7 82/06/18 */
+/* if_il.c 4.8 82/06/20 */
register struct ildevice *addr = (struct ildevice *)reg;
register i;
register struct ildevice *addr = (struct ildevice *)reg;
register i;
#ifdef lint
br = 0; cvec = br; br = cvec;
ilrint(0); ilcint(0);
#ifdef lint
br = 0; cvec = br; br = cvec;
ilrint(0); ilcint(0);
register short csr;
struct sockaddr_in *sin;
int i, s, ubaddr;
register short csr;
struct sockaddr_in *sin;
int i, s, ubaddr;
ifp->if_unit = ui->ui_unit;
ifp->if_name = "il";
ifp->if_unit = ui->ui_unit;
ifp->if_name = "il";
int unit, uban;
{
register struct uba_device *ui;
int unit, uban;
{
register struct uba_device *ui;
if (unit >= NIL || (ui = ilinfo[unit]) == 0 || ui->ui_alive == 0 ||
ui->ui_ubanum != uban)
if (unit >= NIL || (ui = ilinfo[unit]) == 0 || ui->ui_alive == 0 ||
ui->ui_ubanum != uban)
register struct ildevice *addr;
struct mbuf *m;
short csr;
register struct ildevice *addr;
struct mbuf *m;
short csr;
IF_DEQUEUE(&is->is_if.if_snd, m);
if (m == 0)
IF_DEQUEUE(&is->is_if.if_snd, m);
if (m == 0)
struct uba_device *ui = ilinfo[unit];
register struct ildevice *addr = (struct ildevice *)ui->ui_addr;
short csr;
struct uba_device *ui = ilinfo[unit];
register struct ildevice *addr = (struct ildevice *)ui->ui_addr;
short csr;
csr = addr->il_csr;
if (is->is_oactive == 0) {
csr = addr->il_csr;
if (is->is_oactive == 0) {
register struct ifqueue *inq;
short csr;
register struct ifqueue *inq;
short csr;
is->is_if.if_ipackets++;
if (is->is_ifuba.ifu_flags & UBA_NEEDBDP)
UBAPURGE(is->is_ifuba.ifu_uba, is->is_ifuba.ifu_r.ifrw_bdp);
is->is_if.if_ipackets++;
if (is->is_ifuba.ifu_flags & UBA_NEEDBDP)
UBAPURGE(is->is_ifuba.ifu_uba, is->is_ifuba.ifu_r.ifrw_bdp);
register struct il_xheader *il;
register int off, i;
register struct il_xheader *il;
register int off, i;
switch (dst->sa_family) {
#ifdef INET
switch (dst->sa_family) {
#ifdef INET
-/* if_uba.c 4.11 82/05/19 */
+/* if_uba.c 4.12 82/06/20 */
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/param.h"
#include "../h/systm.h"
register caddr_t cp;
int i, ncl;
register caddr_t cp;
int i, ncl;
ncl = clrnd(nmr + CLSIZE) / CLSIZE;
if (ifu->ifu_r.ifrw_addr)
cp = ifu->ifu_r.ifrw_addr - (CLBYTES - hlen);
ncl = clrnd(nmr + CLSIZE) / CLSIZE;
if (ifu->ifu_r.ifrw_addr)
cp = ifu->ifu_r.ifrw_addr - (CLBYTES - hlen);
info =
uballoc(ifu->ifu_uban, ifrw->ifrw_addr, nmr*NBPG + ifu->ifu_hlen,
ifu->ifu_flags);
info =
uballoc(ifu->ifu_uban, ifrw->ifrw_addr, nmr*NBPG + ifu->ifu_hlen,
ifu->ifu_flags);
int off = off0, len;
register caddr_t cp = ifu->ifu_r.ifrw_addr + ifu->ifu_hlen;
int off = off0, len;
register caddr_t cp = ifu->ifu_r.ifrw_addr + ifu->ifu_hlen;
int xswapd = 0;
int x, cc;
int xswapd = 0;
int x, cc;
cp = ifu->ifu_w.ifrw_addr;
while (m) {
dp = mtod(m, char *);
cp = ifu->ifu_w.ifrw_addr;
while (m) {
dp = mtod(m, char *);
-/* if_vv.c 4.4 82/06/15 */
+/* if_vv.c 4.5 82/06/20 */
/*
* Proteon 10 Meg Ring Driver.
/*
* Proteon 10 Meg Ring Driver.
{
register struct vv_softc *vs = &vv_softc[ui->ui_unit];
register struct sockaddr_in *sin;
{
register struct vv_softc *vs = &vv_softc[ui->ui_unit];
register struct sockaddr_in *sin;
vs->vs_if.if_unit = ui->ui_unit;
vs->vs_if.if_name = "vv";
vs->vs_if.if_unit = ui->ui_unit;
vs->vs_if.if_name = "vv";
int unit, uban;
{
register struct uba_device *ui;
int unit, uban;
{
register struct uba_device *ui;
if (unit >= NVV || (ui = vvinfo[unit]) == 0 || ui->ui_alive == 0 ||
ui->ui_ubanum != uban)
if (unit >= NVV || (ui = vvinfo[unit]) == 0 || ui->ui_alive == 0 ||
ui->ui_ubanum != uban)
struct mbuf *m;
int ubainfo;
int dest;
struct mbuf *m;
int ubainfo;
int dest;
if (vs->vs_oactive)
goto restart;
if (vs->vs_oactive)
goto restart;
register struct vv_softc *vs = &vv_softc[unit];
register struct vvreg *addr;
register int oc;
register struct vv_softc *vs = &vv_softc[unit];
register struct vvreg *addr;
register int oc;
addr = (struct vvreg *)ui->ui_addr;
oc = 0xffff & (addr->vvocsr);
addr = (struct vvreg *)ui->ui_addr;
oc = 0xffff & (addr->vvocsr);
register struct ifqueue *inq;
struct mbuf *m;
int ubainfo, len, off;
register struct ifqueue *inq;
struct mbuf *m;
int ubainfo, len, off;
vs->vs_if.if_ipackets++;
/*
vs->vs_if.if_ipackets++;
/*
-/* in_cksum.c 1.11 81/11/26 */
+/* in_cksum.c 1.12 82/06/20 */
#include <sys/types.h>
#include "../h/mbuf.h"
#include <sys/types.h>
#include "../h/mbuf.h"
register u_short *w; /* known to be r9 */
register int sum = 0; /* known to be r8 */
register int mlen = 0;
register u_short *w; /* known to be r9 */
register int sum = 0; /* known to be r8 */
register int mlen = 0;