iodesc
struct iodesc *d;
efinet_put(struct iodesc *desc, void *pkt, size_t len)
efinet_get(struct iodesc *desc, void *pkt, size_t len, time_t timeout)
efinet_init(struct iodesc *desc, void *machdep_hint)
static int efinet_get(struct iodesc *, void *, size_t, time_t);
static void efinet_init(struct iodesc *, void *);
static int efinet_put(struct iodesc *, void *, size_t);
struct iodesc *iodesc;
pxe_netif_init(struct iodesc *desc, void *machdep_hint)
pxe_netif_get(struct iodesc *desc, void *pkt, size_t len, time_t timeout)
pxe_netif_put(struct iodesc *desc, void *pkt, size_t len)
sendudp(struct iodesc *h, void *pkt, size_t len)
readudp(struct iodesc *h, void *pkt, size_t len, time_t timeout)
static void pxe_netif_init(struct iodesc *desc, void *machdep_hint);
static int pxe_netif_get(struct iodesc *desc, void *pkt, size_t len,
static int pxe_netif_put(struct iodesc *desc, void *pkt, size_t len);
arpsend(struct iodesc *d, void *pkt, size_t len)
arprecv(struct iodesc *d, void *pkt, size_t len, time_t tleft)
arp_reply(struct iodesc *d, void *pkt)
static ssize_t arpsend(struct iodesc *, void *, size_t);
static ssize_t arprecv(struct iodesc *, void *, size_t, time_t);
arpwhohas(struct iodesc *d, struct in_addr addr)
bootpsend(struct iodesc *d, void *pkt, size_t len)
bootprecv(struct iodesc *d, void *pkt, size_t len, time_t tleft)
static ssize_t bootpsend(struct iodesc *, void *, size_t);
static ssize_t bootprecv(struct iodesc *, void *, size_t, time_t);
struct iodesc *d;
struct iodesc *d;
struct iodesc *d;
sendether(struct iodesc *d, void *pkt, size_t len, u_char *dea, int etype)
readether(struct iodesc *d, void *pkt, size_t len, time_t tleft,
sendrecv(struct iodesc *d, ssize_t (*sproc)(struct iodesc *, void *, size_t),
ssize_t (*rproc)(struct iodesc *, void *, size_t, time_t), void *rbuf,
ssize_t sendether(struct iodesc *d, void *pkt, size_t len,
ssize_t readether(struct iodesc *d, void *pkt, size_t len,
ssize_t sendudp(struct iodesc *, void *, size_t);
ssize_t readudp(struct iodesc *, void *, size_t, time_t);
ssize_t sendrecv(struct iodesc *,
ssize_t (*)(struct iodesc *, void *, size_t),
ssize_t (*)(struct iodesc *, void *, size_t, time_t),
extern struct iodesc sockets[SOPEN_MAX];
u_char *arpwhohas(struct iodesc *, struct in_addr);
void arp_reply(struct iodesc *, void *);
netif_attach(struct netif *nif, struct iodesc *desc, void *machdep_hint)
netif_get(struct iodesc *desc, void *pkt, size_t len, time_t timo)
netif_put(struct iodesc *desc, void *pkt, size_t len)
struct iodesc *
struct iodesc *s;
struct iodesc sockets[SOPEN_MAX];
void (*netif_init)(struct iodesc *, void *);
int (*netif_get)(struct iodesc *, void *, size_t, time_t);
int (*netif_put)(struct iodesc *, void *, size_t);
void netif_attach(struct netif *, struct iodesc *, void *);
ssize_t netif_get(struct iodesc *, void *, size_t, time_t);
ssize_t netif_put(struct iodesc *, void *, size_t);
struct iodesc *socktodesc(int);
struct iodesc *iodesc;
nfs_getrootfh(struct iodesc *d, char *path, u_char *fhp)
cc = rpc_call(d->iodesc, NFS_PROG, NFS_VER2, NFSPROC_LOOKUP,
cc = rpc_call(d->iodesc, NFS_PROG, NFS_VER2, NFSPROC_READLINK,
cc = rpc_call(d->iodesc, NFS_PROG, NFS_VER2, NFSPROC_READ,
struct iodesc *desc;
nfs_root_node.iodesc = desc;
newfd->iodesc = currfd->iodesc;
currfd->iodesc = desc;
cc = rpc_call(fp->iodesc, NFS_PROG, NFS_VER2, NFSPROC_READDIR,
rarpsend(struct iodesc *d, void *pkt, size_t len)
rarprecv(struct iodesc *d, void *pkt, size_t len, time_t tleft)
static ssize_t rarpsend(struct iodesc *, void *, size_t);
static ssize_t rarprecv(struct iodesc *, void *, size_t, time_t);
struct iodesc *d;
rpc_call(struct iodesc *d, n_long prog, n_long vers, n_long proc, void *sdata,
recvrpc(struct iodesc *d, void *pkt, size_t len, time_t tleft)
rpc_getport(struct iodesc *d, n_long prog, n_long vers)
static ssize_t recvrpc(struct iodesc *, void *, size_t, time_t);
static int rpc_getport(struct iodesc *, n_long, n_long);
ssize_t rpc_call(struct iodesc *, n_long, n_long, n_long,
recvtftp(struct iodesc *d, void *pkt, size_t max_len, time_t tleft)
h->iodesc->myport = htons(tftpport + (getsecs() & 0x3ff));
h->iodesc->destport = htons(IPPORT_TFTP);
h->iodesc->xid = 1; /* expected block */
res = sendrecv(h->iodesc, sendudp, &wbuf.t, wtail - (char *) &wbuf.t,
h->iodesc->xid = h->currblock + 1; /* expected block */
res = sendrecv(h->iodesc, sendudp, &wbuf.t, wtail - (char *) &wbuf.t,
struct iodesc *io;
tftpfile->iodesc = io = socktodesc(*(int *) (f->f_devdata));
struct iodesc *iodesc;
readudp(struct iodesc *d, void *pkt, size_t len, time_t tleft)
sendudp(struct iodesc *d, void *pkt, size_t len)