- remove PCI tables where system.conf suffices - remove drivers' ability to mess up NIC order - fix dp8390 PCI enumeration - convert ti1225 to instance model - add system.conf entry for ti1225
		
			
				
	
	
		
			100 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* 
 | 
						|
 * orinoco.h
 | 
						|
 *
 | 
						|
 * This file contains the most important structure for the driver: t_or
 | 
						|
 * and some configurable definitions
 | 
						|
 *
 | 
						|
 * Created by Stevens Le Blond <slblond@few.vu.nl> 
 | 
						|
 *	  and Michael Valkering <mjvalker@cs.vu.nl>
 | 
						|
 */
 | 
						|
 | 
						|
#include		<net/gen/ether.h>
 | 
						|
#include		<net/gen/eth_io.h>
 | 
						|
 | 
						|
#define 		NR_RX_BUFS 32
 | 
						|
 | 
						|
#define			LARGE_KEY_LENGTH 13
 | 
						|
#define                 IW_ESSID_MAX_SIZE 32
 | 
						|
#define			IOVEC_NR 16	
 | 
						|
#define			OR_NAME "orinoco#n"
 | 
						|
 | 
						|
#define			IEEE802_11_HLEN		30
 | 
						|
#define			IEEE802_11_DATA_LEN	(2304)
 | 
						|
#define			IEEE802_11_FRAME_LEN	(IEEE802_11_DATA_LEN + IEEE802_11_HLEN + 3) 
 | 
						|
 | 
						|
typedef struct s_or
 | 
						|
{
 | 
						|
	int or_irq;
 | 
						|
	int or_hook_id;
 | 
						|
	int or_mode;
 | 
						|
	int or_flags;
 | 
						|
	char *or_model;
 | 
						|
	int or_client;
 | 
						|
	int or_link_up;
 | 
						|
	int or_got_int;
 | 
						|
	int or_tx_alive;
 | 
						|
	int or_send_int;
 | 
						|
	int or_clear_rx;
 | 
						|
	u32_t or_base_port;
 | 
						|
	int or_need_reset;
 | 
						|
	int or_report_link;
 | 
						|
 | 
						|
	/* Events */
 | 
						|
	int or_ev_rx;
 | 
						|
	int or_ev_tx;
 | 
						|
	int or_ev_info;
 | 
						|
	int or_ev_txexc;
 | 
						|
	int or_ev_alloc;
 | 
						|
	int connected;
 | 
						|
	u16_t channel_mask;
 | 
						|
	u16_t channel;
 | 
						|
	u16_t ap_density;
 | 
						|
	u16_t rts_thresh;
 | 
						|
	int bitratemode;
 | 
						|
	int last_linkstatus;
 | 
						|
	int max_data_len;
 | 
						|
	int port_type;
 | 
						|
 | 
						|
	/* Rx */
 | 
						|
	phys_bytes or_rx_buf;
 | 
						|
	vir_bytes or_read_s;
 | 
						|
	u16_t rxfid[NR_RX_BUFS];
 | 
						|
	int rx_length[NR_RX_BUFS];
 | 
						|
	u8_t rx_buf[NR_RX_BUFS][IEEE802_11_FRAME_LEN];
 | 
						|
	u8_t rx_offset[NR_RX_BUFS];
 | 
						|
	int rx_first;
 | 
						|
	int rx_last;
 | 
						|
	int rx_current;
 | 
						|
 | 
						|
	/* Tx */
 | 
						|
	u16_t or_nicbuf_size;
 | 
						|
	vir_bytes or_transm_s;
 | 
						|
	int or_tx_head;
 | 
						|
	int or_tx_tail;
 | 
						|
 | 
						|
	struct
 | 
						|
	{
 | 
						|
		int ret_busy;
 | 
						|
		u16_t or_txfid;
 | 
						|
	} or_tx;
 | 
						|
	u32_t or_ertxth;	
 | 
						|
 | 
						|
	/* PCI related */
 | 
						|
	int or_seen;		
 | 
						|
	int devind;
 | 
						|
 | 
						|
	/* 'large' items */
 | 
						|
	irq_hook_t or_hook;
 | 
						|
	eth_stat_t or_stat;
 | 
						|
	message or_rx_mess;
 | 
						|
	message or_tx_mess;
 | 
						|
	ether_addr_t or_address;
 | 
						|
	iovec_t or_iovec[IOVEC_NR];
 | 
						|
	iovec_s_t or_iovec_s[IOVEC_NR];
 | 
						|
	char or_name[sizeof (OR_NAME)];
 | 
						|
	hermes_t hw;
 | 
						|
	char nick[IW_ESSID_MAX_SIZE + 1];
 | 
						|
 | 
						|
 | 
						|
} t_or;
 |