/* * interfacing to devip */ void espinit(Fs *fs) { Proto *esp; esp = smalloc(sizeof(Proto)); esp->priv = smalloc(sizeof(Esppriv)); esp->name = "esp"; esp->connect = espconnect; esp->announce = nil; esp->ctl = espctl; esp->state = espstate; esp->create = espcreate; esp->close = espclose; esp->rcv = espiput; esp->advise = espadvise; esp->stats = espstats; esp->local = esplocal; esp->remote = espremote; esp->ipproto = IP_ESPPROTO; esp->nc = Nchans; esp->ptclsize = sizeof(Espcb); Fsproto(fs, esp); }
void ipifcinit(Fs *f) { Proto *ipifc; ipifc = smalloc(sizeof(Proto)); ipifc->name = "ipifc"; ipifc->connect = ipifcconnect; ipifc->announce = nil; ipifc->bind = ipifcbind; ipifc->state = ipifcstate; ipifc->create = ipifccreate; ipifc->close = ipifcclose; ipifc->rcv = nil; ipifc->ctl = ipifcctl; ipifc->advise = nil; ipifc->stats = ipifcstats; ipifc->inuse = ipifcinuse; ipifc->local = ipifclocal; ipifc->ipproto = -1; ipifc->nc = Maxmedia; ipifc->ptclsize = sizeof(Ipifc); f->ipifc = ipifc; /* hack for ipifcremroute, findipifc, ... */ f->self = smalloc(sizeof(Ipselftab)); /* hack for ipforme */ Fsproto(f, ipifc); }
void ipifcinit(struct Fs *f) { struct Proto *ipifc; ipifc = kzmalloc(sizeof(struct Proto), 0); ipifc->name = "ipifc"; ipifc->connect = ipifcconnect; ipifc->announce = NULL; ipifc->bind = ipifcbind; ipifc->state = ipifcstate; ipifc->create = ipifccreate; ipifc->close = ipifcclose; ipifc->rcv = NULL; ipifc->ctl = ipifcctl; ipifc->advise = NULL; ipifc->stats = ipifcstats; ipifc->inuse = ipifcinuse; ipifc->local = ipifclocal; ipifc->ipproto = -1; ipifc->nc = Maxmedia; ipifc->ptclsize = sizeof(struct Ipifc); f->ipifc = ipifc; /* hack for ipifcremroute, findipifc, ... */ f->self = kzmalloc(sizeof(struct Ipselftab), 0); /* hack for ipforme */ qlock_init(&f->self->qlock); Fsproto(f, ipifc); }
static void newproto(char *name, int type, int maxconv) { Proto *p; p = smalloc(sizeof(*p)); p->name = name; p->stype = type; p->ipproto = type+1; /* temporary */ p->nc = maxconv; if(Fsproto(ipfs[0], p)) panic("can't newproto %s", name); }
void igmpinit(Fs *fs) { igmp.name = "igmp"; igmp.connect = nil; igmp.announce = nil; igmp.ctl = nil; igmp.state = nil; igmp.close = nil; igmp.rcv = igmpiput; igmp.stats = igmpstats; igmp.ipproto = IP_IGMPPROTO; igmp.nc = 0; igmp.ptclsize = 0; igmpreportfn = igmpsendreport; kproc("igmpproc", igmpproc, 0); Fsproto(fs, &igmp); }
void udpinit(struct Fs *fs) { struct Proto *udp; udp = kzmalloc(sizeof(struct Proto), 0); udp->priv = kzmalloc(sizeof(Udppriv), 0); udp->name = "udp"; udp->connect = udpconnect; udp->announce = udpannounce; udp->ctl = udpctl; udp->state = udpstate; udp->create = udpcreate; udp->close = udpclose; udp->rcv = udpiput; udp->advise = udpadvise; udp->stats = udpstats; udp->ipproto = IP_UDPPROTO; udp->nc = Nchans; udp->newconv = udpnewconv; udp->ptclsize = sizeof(Udpcb); Fsproto(fs, udp); }
void greinit(Fs *fs) { Proto *gre; gre = smalloc(sizeof(Proto)); gre->priv = smalloc(sizeof(GREpriv)); gre->name = "gre"; gre->connect = greconnect; gre->announce = greannounce; gre->state = grestate; gre->create = grecreate; gre->close = greclose; gre->rcv = greiput; gre->ctl = grectl; gre->advise = nil; gre->stats = grestats; gre->ipproto = IP_GREPROTO; gre->nc = 64; gre->ptclsize = 0; Fsproto(fs, gre); }
void rudpinit(Fs *fs) { Proto *rudp; rudp = smalloc(sizeof(Proto)); rudp->priv = smalloc(sizeof(Rudppriv)); rudp->name = "rudp"; rudp->connect = rudpconnect; rudp->announce = rudpannounce; rudp->ctl = rudpctl; rudp->state = rudpstate; rudp->create = rudpcreate; rudp->close = rudpclose; rudp->rcv = rudpiput; rudp->advise = rudpadvise; rudp->stats = rudpstats; rudp->ipproto = IP_UDPPROTO; rudp->nc = 32; rudp->ptclsize = sizeof(Rudpcb); Fsproto(fs, rudp); }