PUBLIC void udp_init() { udp_fd_t *udp_fd; udp_port_t *udp_port; int i, result; assert (BUF_S >= sizeof(struct nwio_ipopt)); assert (BUF_S >= sizeof(struct nwio_ipconf)); assert (BUF_S >= sizeof(struct nwio_udpopt)); assert (BUF_S >= sizeof(struct udp_io_hdr)); assert (UDP_HDR_SIZE == sizeof(udp_hdr_t)); assert (UDP_IO_HDR_SIZE == sizeof(udp_io_hdr_t)); for (i= 0, udp_fd= udp_fd_table; i<UDP_FD_NR; i++, udp_fd++) { udp_fd->uf_flags= UFF_EMPTY; udp_fd->uf_rdbuf_head= NULL; } #ifndef BUF_CONSISTENCY_CHECK bf_logon(udp_buffree); #else bf_logon(udp_buffree, udp_bufcheck); #endif for (i= 0, udp_port= udp_port_table; i<UDP_PORT_NR; i++, udp_port++) { if (i == udp_conf_nr) { printf("udp_init: more ports than configurations\n"); break; } udp_port->up_minor= udp_conf[i].uc_minor; udp_port->up_ipdev= udp_conf[i].uc_port; udp_port->up_flags= UPF_EMPTY; udp_port->up_state= UPS_EMPTY; udp_port->up_next_fd= udp_fd_table; udp_port->up_write_fd= NULL; result= sr_add_minor (udp_port->up_minor, udp_port-udp_port_table, udp_open, udp_close, udp_read, udp_write, udp_ioctl, udp_cancel); assert (result >= 0); udp_main(udp_port); } }
void udp_init() { udp_fd_t *udp_fd; udp_port_t *udp_port; int i, j, ifno; assert (BUF_S >= sizeof(struct nwio_ipopt)); assert (BUF_S >= sizeof(struct nwio_ipconf)); assert (BUF_S >= sizeof(struct nwio_udpopt)); assert (BUF_S >= sizeof(struct udp_io_hdr)); assert (UDP_HDR_SIZE == sizeof(udp_hdr_t)); assert (UDP_IO_HDR_SIZE == sizeof(udp_io_hdr_t)); for (i= 0, udp_fd= udp_fd_table; i<UDP_FD_NR; i++, udp_fd++) { udp_fd->uf_flags= UFF_EMPTY; udp_fd->uf_rdbuf_head= NULL; } #ifndef BUF_CONSISTENCY_CHECK bf_logon(udp_buffree); #else bf_logon(udp_buffree, udp_bufcheck); #endif for (i= 0, udp_port= udp_port_table; i<udp_conf_nr; i++, udp_port++) { udp_port->up_ipdev= udp_conf[i].uc_port; udp_port->up_flags= UPF_EMPTY; udp_port->up_state= UPS_EMPTY; udp_port->up_next_fd= udp_fd_table; udp_port->up_write_fd= NULL; udp_port->up_wr_pack= NULL; udp_port->up_port_any= NULL; for (j= 0; j<UDP_PORT_HASH_NR; j++) udp_port->up_port_hash[j]= NULL; ifno= ip_conf[udp_port->up_ipdev].ic_ifno; sr_add_minor(if2minor(ifno, UDP_DEV_OFF), i, udp_open, udp_close, udp_read, udp_write, udp_ioctl, udp_cancel, udp_select); udp_main(udp_port); } }
PUBLIC void udp_init() { udp_fd_t *udp_fd; udp_port_t *udp_port; int i, result; assert (BUF_S >= sizeof(struct nwio_ipopt)); assert (BUF_S >= sizeof(struct nwio_ipconf)); assert (BUF_S >= sizeof(struct nwio_udpopt)); assert (BUF_S >= sizeof(struct udp_io_hdr)); assert (UDP_HDR_SIZE == sizeof(udp_hdr_t)); assert (UDP_IO_HDR_SIZE == sizeof(udp_io_hdr_t)); udp_port_table[0].up_minor= UDP_DEV0; udp_port_table[0].up_ipdev= IP0; for (i= 0, udp_fd= udp_fd_table; i<UDP_FD_NR; i++, udp_fd++) { udp_fd->uf_flags= UFF_EMPTY; } bf_logon(udp_buffree); for (i= 0, udp_port= udp_port_table; i<UDP_PORT_NR; i++, udp_port++) { udp_port->up_flags= UPF_EMPTY; udp_port->up_state= UPS_EMPTY; udp_port->up_next_fd= udp_fd_table; udp_port->up_write_fd= NULL; result= sr_add_minor (udp_port->up_minor, udp_port-udp_port_table, udp_open, udp_close, udp_read, udp_write, udp_ioctl, udp_cancel); assert (result >= 0); udp_main(udp_port); } }