minix/drivers/orinoco/orinoco.h
David van Moolenbroek 5152cfd8bd drivers: remove redundant PCI ID tables
- 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
2012-03-07 23:58:00 +01:00

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;