iodesc
prom_put(struct iodesc *desc, void *pkt, size_t len)
prom_get(struct iodesc *desc, void *pkt, size_t len, time_t timeout)
prom_init(struct iodesc *desc, void *machdep_hint)
void prom_init(struct iodesc *, void *);
int prom_get(struct iodesc *, void *, size_t, time_t);
int prom_put(struct iodesc *, void *, size_t);
pxesendudp(struct iodesc *d, void *pkt, size_t len)
pxereadudp(struct iodesc *d, void *pkt, size_t len, time_t tleft)
static struct iodesc desc;
struct iodesc *
ssize_t pxesendudp(struct iodesc *, void *, size_t);
ssize_t pxereadudp(struct iodesc *, void *, size_t, time_t);
sendudp(struct iodesc *d, void *pkt, size_t len)
readudp(struct iodesc *d, void *pkt, size_t len, time_t tleft)
efinet_init(struct iodesc *desc, void *v)
efinet_get(struct iodesc *desc, void *pkt, size_t len, time_t tmo)
efinet_put(struct iodesc *desc, void *pkt, size_t len)
void efinet_init(struct iodesc *, void *);
int efinet_get(struct iodesc *, void *, size_t, time_t);
int efinet_put(struct iodesc *, void *, size_t);
efinet_init(struct iodesc *desc, void *v)
efinet_get(struct iodesc *desc, void *pkt, size_t len, time_t tmo)
efinet_put(struct iodesc *desc, void *pkt, size_t len)
void efinet_init(struct iodesc *, void *);
int efinet_get(struct iodesc *, void *, size_t, time_t);
int efinet_put(struct iodesc *, void *, size_t);
pxesendudp(struct iodesc *d, void *pkt, size_t len)
pxereadudp(struct iodesc *d, void *pkt, size_t len, time_t tleft)
static struct iodesc desc;
struct iodesc *
ssize_t pxesendudp(struct iodesc *, void *, size_t);
ssize_t pxereadudp(struct iodesc *, void *, size_t, time_t);
sendudp(struct iodesc *d, void *pkt, size_t len)
readudp(struct iodesc *d, void *pkt, size_t len, time_t tleft)
le_init(struct iodesc *desc, void *machdep_hint)
le_get(struct iodesc *desc, void *pkt, size_t maxlen, time_t timeout)
le_put(struct iodesc *desc, void *pkt, size_t len)
static void le_init(struct iodesc *, void *);
static int le_get(struct iodesc *, void *, size_t, time_t);
static int le_put(struct iodesc *, void *, size_t);
struct iodesc *io;
netif_put(struct iodesc *desc, void *pkt, size_t len)
netif_get(struct iodesc *desc, void *pkt, size_t maxlen, time_t timo)
struct iodesc sockets[SOPEN_MAX];
struct iodesc *
struct iodesc *io;
efinet_init(struct iodesc *desc, void *v)
efinet_get(struct iodesc *desc, void *pkt, size_t len, time_t tmo)
efinet_put(struct iodesc *desc, void *pkt, size_t len)
void efinet_init(struct iodesc *, void *);
int efinet_get(struct iodesc *, void *, size_t, time_t);
int efinet_put(struct iodesc *, void *, size_t);
struct iodesc *io;
netif_put(struct iodesc *desc, void *pkt, size_t len)
netif_get(struct iodesc *desc, void *pkt, size_t maxlen, time_t timo)
struct iodesc sockets[SOPEN_MAX];
struct iodesc *
struct iodesc *io;
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),
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), 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);
readudp(struct iodesc *d, void *pkt, size_t len, time_t tleft)
sendudp(struct iodesc *d, void *pkt, size_t len)
nfs_getrootfh(struct iodesc *d, const 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;
if (nfs_root_node.iodesc == NULL) {
newfd->iodesc = currfd->iodesc;
struct iodesc *iodesc;
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;
static int rpc_getport(struct iodesc *, u_int32_t, u_int32_t);
rpc_call(struct iodesc *d, u_int32_t prog, u_int32_t vers, u_int32_t proc, void *sdata,
recvrpc(struct iodesc *d, void *pkt, size_t len, time_t tleft)
rpc_getport(struct iodesc *d, u_int32_t prog, u_int32_t vers)
static ssize_t recvrpc(struct iodesc *, void *, size_t, time_t);
ssize_t rpc_call(struct iodesc *, u_int32_t, u_int32_t, u_int32_t,
recvtftp(struct iodesc *d, void *pkt, size_t 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,
(void) sendudp(h->iodesc, &wbuf.t, wtail - (char *) &wbuf.t);
struct iodesc *io;
tftpfile->iodesc = io = socktodesc(*(int *) (f->f_devdata));
struct iodesc *iodesc;
ssize_t recvtftp(struct iodesc *, void *, size_t, time_t);