- char kqn_init; /* what's been initialised */
- char kqn_shuttingdown; /* I'm trying to shut down */
- atomic_t kqn_nthreads; /* # threads not terminated */
- atomic_t kqn_nthreads_running;/* # threads still running */
-
- int kqn_optimized_gets; /* optimized GETs? */
- int kqn_copy_small_fwd; /* fwd small msgs from pre-allocated buffer? */
-
-#if CONFIG_SYSCTL
- struct ctl_table_header *kqn_sysctl; /* sysctl interface */
-#endif
- kqswnal_rx_t *kqn_rxds; /* all the receive descriptors */
- kqswnal_tx_t *kqn_txds; /* all the transmit descriptors */
-
- struct list_head kqn_idletxds; /* transmit descriptors free to use */
- struct list_head kqn_nblk_idletxds; /* reserved free transmit descriptors */
- struct list_head kqn_activetxds; /* transmit descriptors being used */
- spinlock_t kqn_idletxd_lock; /* serialise idle txd access */
- wait_queue_head_t kqn_idletxd_waitq; /* sender blocks here waiting for idle txd */
- struct list_head kqn_idletxd_fwdq; /* forwarded packets block here waiting for idle txd */
-
- spinlock_t kqn_sched_lock; /* serialise packet schedulers */
- wait_queue_head_t kqn_sched_waitq; /* scheduler blocks here */
-
- struct list_head kqn_readyrxds; /* rxds full of data */
- struct list_head kqn_delayedfwds; /* delayed forwards */
- struct list_head kqn_delayedtxds; /* delayed transmits */
-
- spinlock_t kqn_statelock; /* cb_cli/cb_sti */
- nal_cb_t *kqn_cb; /* -> kqswnal_lib */
-#if MULTIRAIL_EKC
- EP_SYS *kqn_ep; /* elan system */
- EP_NMH *kqn_ep_tx_nmh; /* elan reserved tx vaddrs */
- EP_NMH *kqn_ep_rx_nmh; /* elan reserved rx vaddrs */
-#else
- EP_DEV *kqn_ep; /* elan device */
- ELAN3_DMA_HANDLE *kqn_eptxdmahandle; /* elan reserved tx vaddrs */
- ELAN3_DMA_HANDLE *kqn_eprxdmahandle; /* elan reserved rx vaddrs */
+ int *kqn_tx_maxcontig; /* maximum payload to defrag */
+ int *kqn_ntxmsgs; /* # normal tx msgs */
+ int *kqn_credits; /* # concurrent sends */
+ int *kqn_peercredits; /* # concurrent sends to 1 peer */
+ int *kqn_nrxmsgs_large; /* # 'large' rx msgs */
+ int *kqn_ep_envelopes_large; /* # 'large' rx ep envelopes */
+ int *kqn_nrxmsgs_small; /* # 'small' rx msgs */
+ int *kqn_ep_envelopes_small; /* # 'small' rx ep envelopes */
+ int *kqn_optimized_puts; /* optimized PUTs? */
+ int *kqn_optimized_gets; /* optimized GETs? */
+#if KQSW_CKSUM
+ int *kqn_inject_csum_error; /* # csum errors to inject */
+#endif
+
+#if defined(CONFIG_SYSCTL) && !CFS_SYSFS_MODULE_PARM
+ struct ctl_table_header *kqn_sysctl; /* sysctl interface */