#ifndef _NICX722_KERNEL_MODULE_H_ #define _NICX722_KERNEL_MODULE_H_ #include #include #define DEVICE_NAME NICX722_DEVICE_NAME #define NICX722_DEVICE_NAME "nicX722mod" #define NICX722_FIXUP_MAJOR 252 #define NICX722_DYNAMIC_MAJOR 0 /* Dynamic major by default if set "0" */ #define NICX722_MODULE_IOC_MAXNUM 11 #define NICX722_MODULE_IOC_MAGIC 'G' #define IOCTL_NICX722_LOOPBACK _IO(NICX722_MODULE_IOC_MAGIC, 1) #define IOCTL_NICX722_IGBLINKTEST _IO(NICX722_MODULE_IOC_MAGIC, 2) #define IOCTL_NICX722_IGBREGTEST _IO(NICX722_MODULE_IOC_MAGIC, 3) #define IOCTL_NICX722_IGBEEPROMTEST _IO(NICX722_MODULE_IOC_MAGIC, 4) #define IOCTL_NICX722_IGBINTRTEST _IO(NICX722_MODULE_IOC_MAGIC, 5) #define IOCTL_NICX722_IGBMDITEST _IO(NICX722_MODULE_IOC_MAGIC, 6) #define IOCTL_NICX722_IGBGETSTATTEST _IO(NICX722_MODULE_IOC_MAGIC, 7) #define IOCTL_NICX722_DMAPCITEST _IO(NICX722_MODULE_IOC_MAGIC, 8) #define IOCTL_NICX722_IGBIEEETEST _IO(NICX722_MODULE_IOC_MAGIC, 9) #define IOCTL_NICX722_IGBMDIORead _IO(NICX722_MODULE_IOC_MAGIC, 10) #define IOCTL_NICX722_IGBMDIOWrite _IO(NICX722_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; } nicX722_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[20]; uint8_t phyPage; uint16_t phyRegister; uint16_t phyData; }; /* struct block_cus{ unsigned int blocks; int numOfBlocks; unsigned int pattern; }; */ #endif