#ifndef _NICI210_KERNEL_MODULE_H_ #define _NICI210_KERNEL_MODULE_H_ #include #include //#include //#include "../../kernel/linux-3.10.5/drivers/net/ethernet/intel/igb/igb.h" #define DEVICE_NAME NICI210_DEVICE_NAME #define NICI210_DEVICE_NAME "nicI210mod" #define NICI210_FIXUP_MAJOR 252 #define NICI210_DYNAMIC_MAJOR 0 /* Dynamic major by default if set "0" */ #define NICI210_MODULE_IOC_MAXNUM 11 #define NICI210_MODULE_IOC_MAGIC 'E' #define IOCTL_NICI210_LOOPBACK _IO(NICI210_MODULE_IOC_MAGIC, 1) #define IOCTL_NICI210_IGBLINKTEST _IO(NICI210_MODULE_IOC_MAGIC, 2) #define IOCTL_NICI210_IGBREGTEST _IO(NICI210_MODULE_IOC_MAGIC, 3) #define IOCTL_NICI210_IGBEEPROMTEST _IO(NICI210_MODULE_IOC_MAGIC, 4) #define IOCTL_NICI210_IGBINTRTEST _IO(NICI210_MODULE_IOC_MAGIC, 5) #define IOCTL_NICI210_IGBMDITEST _IO(NICI210_MODULE_IOC_MAGIC, 6) #define IOCTL_NICI210_IGBGETSTATTEST _IO(NICI210_MODULE_IOC_MAGIC, 7) #define IOCTL_NICI210_DMAPCITEST _IO(NICI210_MODULE_IOC_MAGIC, 8) #define IOCTL_NICI210_IGBIEEETEST _IO(NICI210_MODULE_IOC_MAGIC, 9) #define IOCTL_NICI210_IGBMDIORead _IO(NICI210_MODULE_IOC_MAGIC, 10) #define IOCTL_NICI210_IGBMDIOWrite _IO(NICI210_MODULE_IOC_MAGIC, 11) typedef enum { MAC_LOOPBACK, PHY_LOOPBACK_10M, PHY_LOOPBACK_100M, PHY_LOOPBACK_1000M, PHY_LOOPBACK_10000M, EXTERNAL_LOOPBACK_10M, EXTERNAL_LOOPBACK_100M, EXTERNAL_LOOPBACK_1000M, EXTERNAL_LOOPBACK_10000M, CROSS_LOOPBACK_10M, CROSS_LOOPBACK_100M, CROSS_LOOPBACK_1000M, } LOOPBACK_TYPE; typedef struct { char eth_name; LOOPBACK_TYPE type; } nicI210_dcr; struct block_cus { unsigned int blocks; int numOfBlocks; unsigned int pattern; }; typedef struct _argu { char ethname[10]; LOOPBACK_TYPE type; struct block_cus blocks; } argu; struct phy_register_info{ char ethname[10]; uint8_t phyPage; uint8_t phyRegister; int phyData; }; /* struct block_cus{ unsigned int blocks; int numOfBlocks; unsigned int pattern; }; */ #endif