qeth.h

来自「linux-2.4.29操作系统的源码」· C头文件 代码 · 共 1,284 行 · 第 1/3 页

H
1,284
字号
#endif	char dev_name[DEV_NAME_LEN];		/* pointed to by dev->name */	char dev_basename[DEV_NAME_LEN];	struct net_device *dev;	struct net_device_stats *stats;	int no_queues;#ifdef QETH_PERFORMANCE_STATS	qeth_perf_stats_t perf_stats;#endif /* QETH_PERFORMANCE_STATS */	/* our state */	atomic_t is_registered;		/* card registered as netdev? */	atomic_t is_hardsetup;		/* card has gone through hardsetup */	atomic_t is_softsetup;		/* card is setup by softsetup */	atomic_t is_open;		/* card is in use */	atomic_t is_gone;               /* after a msck */	int has_irq;			/* once a request_irq was successful */	/* prevents deadlocks :-O */	spinlock_t softsetup_lock;	spinlock_t hardsetup_lock;	struct semaphore ioctl_sem;	atomic_t softsetup_thread_is_running;	struct semaphore softsetup_thread_sem;	struct tq_struct tqueue_sst;	atomic_t escape_softsetup;	/* active, when recovery has to					   wait for softsetup */	struct semaphore reinit_thread_sem;	atomic_t in_recovery;	atomic_t reinit_counter;	/* problem management */	atomic_t break_out;	atomic_t problem;	struct tq_struct tqueue;	struct {		__u32 trans_hdr;		__u32 pdu_hdr;		__u32 pdu_hdr_ack;		__u32 ipa;	} seqno;	struct {		__u32 issuer_rm_w;		__u32 issuer_rm_r;		__u32 cm_filter_w;		__u32 cm_filter_r;		__u32 cm_connection_w;		__u32 cm_connection_r;		__u32 ulp_filter_w;		__u32 ulp_filter_r;		__u32 ulp_connection_w;		__u32 ulp_connection_r;	} token;	/* this is card-related */	int type;	__u16 func_level;	int initial_mtu;	int max_mtu;	int inbound_buffer_size;	int is_multicast_different; /* if multicast traffic is to be sent				       on a different queue, this is the				       queue+no_queues */	int can_do_async_iqd; /* 1 only on IQD that provides async		      		 unicast sigas */	__u32 ipa_supported;	__u32 ipa_enabled;	__u32 ipa6_supported;	__u32 ipa6_enabled;	__u32 adp_supported;	__u32 csum_enable_mask;	atomic_t startlan_attempts;	atomic_t enable_routing_attempts4;	atomic_t rt4fld;#ifdef QETH_IPV6	atomic_t enable_routing_attempts6;	atomic_t rt6fld;#endif /* QETH_IPV6 */	int unique_id;	/* device and I/O data */	int devno0;	int devno1;	int devno2;	int irq0;	int irq1;	int irq2;	unsigned short unit_addr2;	unsigned short cula;	unsigned short dev_type;	unsigned char dev_model;	unsigned short chpid;	devstat_t *devstat0;	devstat_t *devstat1;	devstat_t *devstat2;	unsigned char ipa_buf[QETH_BUFSIZE];	unsigned char send_buf[QETH_BUFSIZE];/* IOCTL Stuff */	unsigned char *ioctl_data_buffer;	unsigned char *ioctl_buffer_pointer;	int ioctl_returncode;	int ioctl_buffersize;	int number_of_entries;	atomic_t ioctl_data_has_arrived;	wait_queue_head_t ioctl_wait_q;	atomic_t ioctl_wait_q_active;	spinlock_t ioctl_wait_q_lock;/* stuff under 2 gb */	qeth_dma_stuff_t *dma_stuff;	unsigned int ipa_timeout;	atomic_t write_busy;	int read_state; /* only modified and read in the int handler */	/* vipa stuff */	rwlock_t vipa_list_lock;	qeth_vipa_entry_t *vipa_list;	/* state information when doing I/O */	atomic_t shutdown_phase;	volatile int save_state_flag;	atomic_t data_has_arrived;	wait_queue_head_t wait_q;	atomic_t wait_q_active;	spinlock_t wait_q_lock; /* for wait_q_active and wait_q */	atomic_t final_status0;	atomic_t final_status1;	atomic_t final_status2;	atomic_t clear_succeeded0;	atomic_t clear_succeeded1;	atomic_t clear_succeeded2;	/* bookkeeping of IP and multicast addresses */	ip_state_t ip_current_state;	ip_state_t ip_new_state;	#ifdef CONFIG_IP_MULTICAST	ip_mc_state_t ip_mc_current_state;	ip_mc_state_t ip_mc_new_state;#endif /* CONFIG_IF_MULTICAST */	int broadcast_capable;	int portname_required;	int realloc_message;	char level[QETH_MCL_LENGTH+1];	volatile int saved_dev_flags;	/* for our linked list */	struct qeth_card_t *next;} qeth_card_t;typedef struct mydevreg_t {	devreg_t devreg;	struct mydevreg_t *next;	struct mydevreg_t *prev;} mydevreg_t;/*user process notification stuff */spinlock_t notify_lock;struct list_head notify_list;struct qeth_notify_list {	struct list_head list;	struct task_struct *task;	int signum;};inline static int qeth_get_arphrd_type(int cardtype,int linktype){	switch (cardtype) {	case QETH_CARD_TYPE_OSAE: switch (linktype) {				  case QETH_MPC_LINK_TYPE_LANE_TR:					  /* fallthrough */				  case QETH_MPC_LINK_TYPE_HSTR:					  return ARPHRD_IEEE802_TR;				  default: return ARPHRD_ETHER;				  }	case QETH_CARD_TYPE_IQD: return ARPHRD_ETHER;	default: return ARPHRD_ETHER;	}}inline static int qeth_determine_easy_copy_cap(int cardtype){	switch (cardtype) {	case QETH_CARD_TYPE_UNKNOWN: return 0; /* better be cautious */	case QETH_CARD_TYPE_OSAE: return 1;	case QETH_CARD_TYPE_IQD: return 0;	default: return 0; /* ?? */	}}inline static __u8 qeth_get_adapter_type_for_ipa(int link_type){	switch (link_type) {	case QETH_MPC_LINK_TYPE_HSTR: return 2;	default: return 1;	}}inline static const char *qeth_get_cardname(int cardtype,int is_guest_lan){	if (is_guest_lan) {		switch (cardtype) {		case QETH_CARD_TYPE_UNKNOWN: return "n unknown";		case QETH_CARD_TYPE_OSAE: return " Guest LAN QDIO";		case QETH_CARD_TYPE_IQD: return " Guest LAN Hiper";		default: return " strange";		}	} else {		switch (cardtype) {		case QETH_CARD_TYPE_UNKNOWN: return "n unknown";		case QETH_CARD_TYPE_OSAE: return "n OSD Express";		case QETH_CARD_TYPE_IQD: return " HiperSockets";		default: return " strange";		}	}}/* max length to be returned: 14 */inline static const char *qeth_get_cardname_short(int cardtype,__u8 link_type,int is_guest_lan){	switch (cardtype) {	case QETH_CARD_TYPE_UNKNOWN: return "unknown";	case QETH_CARD_TYPE_OSAE: if (is_guest_lan)					  return "GuestLAN QDIO";				  switch (link_type) {			      	  case QETH_MPC_LINK_TYPE_FAST_ETHERNET:		     			  return "OSD_100";			      	  case QETH_MPC_LINK_TYPE_HSTR:		     			  return "HSTR";	     			  case QETH_MPC_LINK_TYPE_GIGABIT_ETHERNET:     					  return "OSD_1000";				  case QETH_MPC_LINK_TYPE_LANE_ETH100:     					  return "OSD_FE_LANE";				  case QETH_MPC_LINK_TYPE_LANE_TR:     					  return "OSD_TR_LANE";				  case QETH_MPC_LINK_TYPE_LANE_ETH1000:     					  return "OSD_GbE_LANE";				  case QETH_MPC_LINK_TYPE_LANE:     					  return "OSD_ATM_LANE";				  default: return "OSD_Express";				  }	case QETH_CARD_TYPE_IQD: return (is_guest_lan)?"GuestLAN Hiper":"HiperSockets";	default: return " strange";	}}inline static int qeth_mtu_is_valid(qeth_card_t *card,int mtu){	switch (card->type) {	case QETH_CARD_TYPE_UNKNOWN: return 1;	case QETH_CARD_TYPE_OSAE: return ( (mtu>=576) && (mtu<=61440) );	case QETH_CARD_TYPE_IQD: return ( (mtu>=576) &&					    (mtu<=card->max_mtu+4096-32) );	default: return 1;	}}inline static int qeth_get_initial_mtu_for_card(qeth_card_t *card){	switch (card->type) {	case QETH_CARD_TYPE_UNKNOWN: return 1500;	case QETH_CARD_TYPE_IQD: return card->max_mtu;	case QETH_CARD_TYPE_OSAE:		switch (card->link_type) {		case QETH_MPC_LINK_TYPE_HSTR:		case QETH_MPC_LINK_TYPE_LANE_TR:			return 2000;		default:			return 1492;		}	default: return 1500;	}}inline static int qeth_get_max_mtu_for_card(int cardtype){	switch (cardtype) {	case QETH_CARD_TYPE_UNKNOWN: return 61440;	case QETH_CARD_TYPE_OSAE: return 61440;	case QETH_CARD_TYPE_IQD: return 57344;	default: return 1500;	}}inline static int qeth_get_mtu_out_of_mpc(int cardtype){	switch (cardtype) {	case QETH_CARD_TYPE_IQD: return 1;	default: return 0;	}}inline static int qeth_get_mtu_outof_framesize(int framesize){	switch (framesize) {	case 0x4000: return 8192;	case 0x6000: return 16384;	case 0xa000: return 32768;	case 0xffff: return 57344;	default: return 0;	}}inline static int qeth_get_buffersize_for_card(int cardtype){	switch (cardtype) {	case QETH_CARD_TYPE_UNKNOWN: return 65536;	case QETH_CARD_TYPE_OSAE: return 65536;	case QETH_CARD_TYPE_IQD: return 16384;	default: return 65536;	}}inline static int qeth_get_min_number_of_buffers(int cardtype){	switch (cardtype) {	case QETH_CARD_TYPE_UNKNOWN: return 32;	case QETH_CARD_TYPE_OSAE: return 32;	case QETH_CARD_TYPE_IQD: return 64;	default: return 64;	}}inline static int qeth_get_q_format(int cardtype){	switch (cardtype) {	case QETH_CARD_TYPE_IQD: return 2;	default: return 0;	}}inline static int qeth_get_device_tx_q_len(int cardtype){	return 100;}inline static int qeth_get_max_number_of_buffers(int cardtype){	return 127;}/******************** OUTPUT FACILITIES **************************/#ifdef PRINT_INFO#undef PRINTK_HEADER#undef PRINT_STUPID#undef PRINT_ALL#undef PRINT_INFO#undef PRINT_WARN#undef PRINT_ERR#undef PRINT_CRIT#undef PRINT_ALERT#undef PRINT_EMERG#endif /* PRINT_INFO */#define PRINTK_HEADER QETH_NAME ": "#if QETH_VERBOSE_LEVEL>8#define PRINT_STUPID(x...) printk( KERN_DEBUG PRINTK_HEADER x)#else#define PRINT_STUPID(x...)#endif#if QETH_VERBOSE_LEVEL>7#define PRINT_ALL(x...) printk( KERN_DEBUG PRINTK_HEADER x)#else#define PRINT_ALL(x...)#endif#if QETH_VERBOSE_LEVEL>6#define PRINT_INFO(x...) printk( KERN_INFO PRINTK_HEADER x)#else#define PRINT_INFO(x...)#endif#if QETH_VERBOSE_LEVEL>5#define PRINT_WARN(x...) printk( KERN_WARNING PRINTK_HEADER x)#else#define PRINT_WARN(x...)#endif#if QETH_VERBOSE_LEVEL>4#define PRINT_ERR(x...) printk( KERN_ERR PRINTK_HEADER x)#else#define PRINT_ERR(x...)#endif#if QETH_VERBOSE_LEVEL>3#define PRINT_CRIT(x...) printk( KERN_CRIT PRINTK_HEADER x)#else#define PRINT_CRIT(x...)#endif#if QETH_VERBOSE_LEVEL>2#define PRINT_ALERT(x...) printk( KERN_ALERT PRINTK_HEADER x)#else#define PRINT_ALERT(x...)#endif#if QETH_VERBOSE_LEVEL>1#define PRINT_EMERG(x...) printk( KERN_EMERG PRINTK_HEADER x)#else#define PRINT_EMERG(x...)#endif#endif /* __QETH_H__ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?