74 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
generic/udp_int.h
 | 
						|
 | 
						|
Created:	March 2001 by Philip Homburg <philip@f-mnx.phicoh.com>
 | 
						|
 | 
						|
Some internals of the UDP module
 | 
						|
*/
 | 
						|
 | 
						|
#define UDP_FD_NR		(4*IP_PORT_MAX)
 | 
						|
#define UDP_PORT_HASH_NR	16		/* Must be a power of 2 */
 | 
						|
 | 
						|
typedef struct udp_port
 | 
						|
{
 | 
						|
	int up_flags;
 | 
						|
	int up_state;
 | 
						|
	int up_ipfd;
 | 
						|
	int up_ipdev;
 | 
						|
	acc_t *up_wr_pack;
 | 
						|
	ipaddr_t up_ipaddr;
 | 
						|
	struct udp_fd *up_next_fd;
 | 
						|
	struct udp_fd *up_write_fd;
 | 
						|
	struct udp_fd *up_port_any;
 | 
						|
	struct udp_fd *up_port_hash[UDP_PORT_HASH_NR];
 | 
						|
} udp_port_t;
 | 
						|
 | 
						|
#define UPF_EMPTY	0x0
 | 
						|
#define UPF_WRITE_IP	0x1
 | 
						|
#define UPF_WRITE_SP	0x2
 | 
						|
#define UPF_READ_IP	0x4
 | 
						|
#define UPF_READ_SP	0x8
 | 
						|
#define UPF_SUSPEND	0x10
 | 
						|
#define UPF_MORE2WRITE	0x20
 | 
						|
 | 
						|
#define UPS_EMPTY	0
 | 
						|
#define UPS_SETPROTO	1
 | 
						|
#define UPS_GETCONF	2
 | 
						|
#define UPS_MAIN	3
 | 
						|
#define UPS_ERROR	4
 | 
						|
 | 
						|
typedef struct udp_fd
 | 
						|
{
 | 
						|
	int uf_flags;
 | 
						|
	udp_port_t *uf_port;
 | 
						|
	ioreq_t uf_ioreq;
 | 
						|
	int uf_srfd;
 | 
						|
	nwio_udpopt_t uf_udpopt;
 | 
						|
	get_userdata_t uf_get_userdata;
 | 
						|
	put_userdata_t uf_put_userdata;
 | 
						|
	select_res_t uf_select_res;
 | 
						|
	acc_t *uf_rdbuf_head;
 | 
						|
	acc_t *uf_rdbuf_tail;
 | 
						|
	size_t uf_rd_count;
 | 
						|
	size_t uf_wr_count;
 | 
						|
	clock_t uf_exp_tim;
 | 
						|
	struct udp_fd *uf_port_next;
 | 
						|
} udp_fd_t;
 | 
						|
 | 
						|
#define UFF_EMPTY	0x0
 | 
						|
#define UFF_INUSE	0x1
 | 
						|
#define UFF_IOCTL_IP	0x2
 | 
						|
#define UFF_READ_IP	0x4
 | 
						|
#define UFF_WRITE_IP	0x8
 | 
						|
#define UFF_OPTSET	0x10
 | 
						|
#define UFF_PEEK_IP	0x20
 | 
						|
#define UFF_SEL_READ	0x40
 | 
						|
#define UFF_SEL_WRITE	0x80
 | 
						|
 | 
						|
EXTERN udp_port_t *udp_port_table;
 | 
						|
EXTERN udp_fd_t udp_fd_table[UDP_FD_NR];
 | 
						|
 | 
						|
/*
 | 
						|
 * $PchId: udp_int.h,v 1.4 2004/08/03 11:12:01 philip Exp $
 | 
						|
 */
 |