📄 nicext.h
字号:
/**************************************************************************** * Copyright(c) 2000-2001 Broadcom Corporation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation. * * Name: nicext.h * * Description: Broadcom Network Interface Card Extension (NICE) is an * extension to Linux NET device kernel mode drivers. * NICE is designed to provide additional functionalities, * such as receive packet intercept. To support Broadcom NICE, * the network device driver can be modified by adding an * device ioctl handler and by indicating receiving packets * to the NICE receive handler. Broadcom NICE will only be * enabled by a NICE-aware intermediate driver, such as * Broadcom Advanced Server Program Driver (BASP). When NICE * is not enabled, the modified network device drivers * functions exactly as other non-NICE aware drivers. * * Author: Frankie Fan * * Created: September 17, 2000 * ****************************************************************************/#ifndef _nicext_h_#define _nicext_h_/* * ioctl for NICE */#define SIOCNICE SIOCDEVPRIVATE+7/* * SIOCNICE: * * The following structure needs to be less than IFNAMSIZ (16 bytes) because * we're overloading ifreq.ifr_ifru. * * If 16 bytes is not enough, we should consider relaxing this because * this is no field after ifr_ifru in the ifreq structure. But we may * run into future compatiability problem in case of changing struct ifreq. */struct nice_req{ __u32 cmd; union {#ifdef __KERNEL__ /* cmd = NICE_CMD_SET_RX or NICE_CMD_GET_RX */ struct { void (*nrqus1_rx)( struct sk_buff*, void* ); void* nrqus1_ctx; } nrqu_nrqus1; /* cmd = NICE_CMD_QUERY_SUPPORT */ struct { __u32 nrqus2_magic; __u32 nrqus2_support_rx:1; __u32 nrqus2_support_vlan:1; __u32 nrqus2_support_get_speed:1; } nrqu_nrqus2;#endif /* cmd = NICE_CMD_GET_SPEED */ struct { unsigned int nrqus3_speed; /* 0 if link is down, */ /* otherwise speed in Mbps */ } nrqu_nrqus3; /* cmd = NICE_CMD_BLINK_LED */ struct { unsigned int nrqus4_blink_time; /* blink duration in seconds */ } nrqu_nrqus4; } nrq_nrqu;};#define nrq_rx nrq_nrqu.nrqu_nrqus1.nrqus1_rx#define nrq_ctx nrq_nrqu.nrqu_nrqus1.nrqus1_ctx#define nrq_support_rx nrq_nrqu.nrqu_nrqus2.nrqus2_support_rx#define nrq_magic nrq_nrqu.nrqu_nrqus2.nrqus2_magic#define nrq_support_vlan nrq_nrqu.nrqu_nrqus2.nrqus2_support_vlan#define nrq_support_get_speed nrq_nrqu.nrqu_nrqus2.nrqus2_support_get_speed#define nrq_speed nrq_nrqu.nrqu_nrqus3.nrqus3_speed#define nrq_blink_time nrq_nrqu.nrqu_nrqus4.nrqus4_blink_time/* * magic constants */#define NICE_REQUESTOR_MAGIC 0x4543494E // NICE in ascii#define NICE_DEVICE_MAGIC 0x4E494345 // ECIN in ascii/* * command field */#define NICE_CMD_QUERY_SUPPORT 0x00000001#define NICE_CMD_SET_RX 0x00000002#define NICE_CMD_GET_RX 0x00000003#define NICE_CMD_GET_SPEED 0x00000004#define NICE_CMD_BLINK_LED 0x00000005#endif // _nicext_h_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -