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 + -
显示快捷键?