80 DBGC ( intelxl,
"ICE %p firmware v%d/%d.%d.%d API v%d/%d.%d.%d\n",
88 DBGC ( intelxl,
"ICE %p unsupported API v%d\n", intelxl,
api );
124 DBGC ( intelxl,
"ICE %p has no MAC address\n", intelxl );
129 for ( i = 0 ; i <
read->count ; i++ ) {
138 DBGC ( intelxl,
"ICE %p has invalid MAC address " 144 DBGC ( intelxl,
"ICE %p has MAC address %s\n",
152 DBGC ( intelxl,
"ICE %p has no LAN MAC address\n",
204 sw = &
cmd->params.sw;
214 DBGC2 ( intelxl,
"ICE %p SEID %#04x:\n", intelxl, seid );
216 sizeof ( buf->
sw.
cfg[0] ) );
222 DBGC ( intelxl,
"ICE %p VSI %#04x uplink %#04x func " 223 "%#04x\n", intelxl, intelxl->
vsi,
228 }
while ( (
next =
sw->next ) );
231 if ( ! intelxl->
vsi ) {
232 DBGC ( intelxl,
"ICE %p has no VSI\n", intelxl );
292 for ( i = 0 ; i <
count ; i++ ) {
293 child = &branch->
node[i];
329 if ( !
sched->branches ) {
330 DBGC ( intelxl,
"ICE %p topology has no branches\n", intelxl );
340 DBGC2 ( intelxl,
"ICE %p TEID %#08x type %d\n",
341 intelxl, intelxl->
teid,
node->config.type );
345 if ( ! intelxl->
teid ) {
346 DBGC ( intelxl,
"ICE %p found no leaf TEID\n", intelxl );
367 autoneg = &
cmd->params.autoneg;
403 DBGC ( intelxl,
"ICE %p speed %#02x status %#02x\n",
432 DBGC ( intelxl,
"INTELXL %p unrecognised event opcode " 463 add_txq = &
cmd->params.add_txq;
485 DBGC ( intelxl,
"ICE %p added TEID %#04x\n",
563 for ( i = 0 ; i < (
sizeof (
ctx ) /
sizeof (
ctx[0] ) ) ; i++ ) {
569 DBGC2 ( intelxl,
"ICE %p TX context:\n", intelxl );
588 for ( i = 0 ; i < (
sizeof (
ctx ) /
sizeof (
ctx[0] ) ) ; i++ ) {
594 DBGC2 ( intelxl,
"ICE %p RX context:\n", intelxl );
672 for ( i = 0 ; i < (
sizeof (
ctx ) /
sizeof (
ctx.raw[0] ) ) ; i++ ) {
788 memset ( intelxl, 0,
sizeof ( *intelxl ) );
806 if ( ! intelxl->
regs ) {
818 if ( ! intelxl->
exp ) {
819 DBGC ( intelxl,
"ICE %p missing PCIe capability\n",
833 DBGC ( intelxl,
"ICE %p PF %d using port %d\n",
834 intelxl, intelxl->
pf, intelxl->
port );
847 goto err_admin_version;
851 goto err_admin_clear_pxe;
855 goto err_admin_switch;
859 goto err_admin_rules_broadcast;
863 goto err_admin_rules_magic;
867 goto err_admin_schedule;
871 goto err_admin_mac_read;
894 goto err_register_netdev;
905 err_admin_rules_magic:
906 err_admin_rules_broadcast:
953 PCI_ROM ( 0x8086, 0x124c,
"e823l-bp",
"E823-L backplane", 0 ),
954 PCI_ROM ( 0x8086, 0x124d,
"e823l-sfp",
"E823-L SFP", 0 ),
955 PCI_ROM ( 0x8086, 0x124e,
"e823l-10gt",
"E823-L 10GBASE-T", 0 ),
956 PCI_ROM ( 0x8086, 0x124f,
"e823l-1g",
"E823-L 1GbE", 0 ),
957 PCI_ROM ( 0x8086, 0x151d,
"e823l-qsfp",
"E823-L QSFP", 0 ),
958 PCI_ROM ( 0x8086, 0x1591,
"e810c-bp",
"E810-C backplane", 0 ),
959 PCI_ROM ( 0x8086, 0x1592,
"e810c-qsfp",
"E810-C QSFP", 0 ),
960 PCI_ROM ( 0x8086, 0x1593,
"e810c-sfp",
"E810-C SFP", 0 ),
961 PCI_ROM ( 0x8086, 0x1599,
"e810-xxv-bp",
"E810-XXV backplane", 0 ),
962 PCI_ROM ( 0x8086, 0x159a,
"e810-xxv-qsfp",
"E810-XXV QSFP", 0 ),
963 PCI_ROM ( 0x8086, 0x159b,
"e810-xxv-sfp",
"E810-XXV SFP", 0 ),
964 PCI_ROM ( 0x8086, 0x188a,
"e823c-bp",
"E823-C backplane", 0 ),
965 PCI_ROM ( 0x8086, 0x188b,
"e823c-qsfp",
"E823-C QSFP", 0 ),
966 PCI_ROM ( 0x8086, 0x188c,
"e823c-sfp",
"E823-C SFP", 0 ),
967 PCI_ROM ( 0x8086, 0x188d,
"e823c-10gt",
"E823-C 10GBASE-T", 0 ),
968 PCI_ROM ( 0x8086, 0x188e,
"e823c-1g",
"E823-C 1GbE", 0 ),
969 PCI_ROM ( 0x8086, 0x1890,
"e822c-bp",
"E822-C backplane", 0 ),
970 PCI_ROM ( 0x8086, 0x1891,
"e822c-qsfp",
"E822-C QSFP", 0 ),
971 PCI_ROM ( 0x8086, 0x1892,
"e822c-sfp",
"E822-C SFP", 0 ),
972 PCI_ROM ( 0x8086, 0x1893,
"e822c-10gt",
"E822-C 10GBASE-T", 0 ),
973 PCI_ROM ( 0x8086, 0x1894,
"e822c-1g",
"E822-C 1GbE", 0 ),
974 PCI_ROM ( 0x8086, 0x1897,
"e822l-bp",
"E822-L backplane", 0 ),
975 PCI_ROM ( 0x8086, 0x1898,
"e822l-sfp",
"E822-L SFP", 0 ),
976 PCI_ROM ( 0x8086, 0x1899,
"e822l-10gt",
"E822-L 10GBASE-T", 0 ),
977 PCI_ROM ( 0x8086, 0x189a,
"e822l-1g",
"E822-L 1GbE", 0 ),
uint16_t h_protocol
Protocol ID.
int intelxl_transmit(struct net_device *netdev, struct io_buffer *iobuf)
Transmit packet.
#define ICE_SCHEDULE_EXCESS
Transmit scheduler configuration excess bandwidth section is valid.
#define EINVAL
Invalid argument.
uint16_t len
Header length.
struct option_descriptor read[1]
#define INTELXL_ADMIN_AUTONEG_FL_RESTART
Restart autonegotiation.
unsigned long membase
Memory base.
struct dma_device * dma
DMA device.
Admin queue Get Version command parameters.
struct arbelprm_rc_send_wqe rc
#define INTELXL_CTX_RX_LEN(len)
Receive queue data buffer length.
struct dma_device dma
DMA device.
struct ice_schedule_tx sched
Scheduler configuration.
#define ICE_QINT_TQCTL_CAUSE_ENA
Enable.
void intelxl_destroy_ring(struct intelxl_nic *intelxl, struct intelxl_ring *ring)
Destroy descriptor ring.
#define ICE_ADMIN_DISABLE_TXQ
Admin queue Disable Transmit Queues command.
#define ICE_TXQ_FL_FLUSH
Disable queue and flush pipe.
#define ICE_TXQ_PF_TYPE(pf)
Transmit queue PF number.
#define INTELXL_ADMIN_EVT
PF Admin Event Queue register block.
Intel 100 Gigabit Ethernet network card driver.
#define INTELXL_ADMIN_LINK
Admin queue Get Link Status command.
#define le32_to_cpu(value)
int(* open)(struct net_device *netdev)
Open network device.
uint32_t next
Next descriptor address.
uint8_t count
Number of queues.
static int ice_admin_link(struct net_device *netdev)
Get link status.
#define INTELXL_ADMIN_SWITCH
Admin queue Get Switch Configuration command.
#define INTELXL_ADMIN_AUTONEG
Admin queue Restart Autonegotiation command.
void(* handle)(struct net_device *netdev, struct intelxl_admin_descriptor *evt, union intelxl_admin_buffer *buf)
Handle admin event.
uint16_t count
Number of nodes.
#define INTELXL_ADMIN_CMD
PF Admin Command Queue register block.
struct ice_admin_schedule_node node[0]
Nodes.
static void ice_close(struct net_device *netdev)
Close network device.
Admin queue register offsets.
struct pci_device_id * ids
PCI ID table.
uint64_t address
Base address.
uint32_t type
Operating system type.
union ice_admin_schedule_buffer sched
Query Default Scheduling Tree Topology data buffer.
union intelxl_ring::@66 desc
Descriptors.
size_t mtu
Maximum transmission unit length.
#define ICE_ADMIN_ADD_RULES
Admin queue Add Switch Rules command.
uint32_t parent
Parent TEID.
uint32_t readl(volatile uint32_t *io_addr)
Read 32-bit dword from memory-mapped device.
#define ICE_ADMIN_RULES_RECIPE_PROMISC
Switch rule promiscuous recipe ID.
uint8_t eth_broadcast[ETH_ALEN]
Ethernet broadcast MAC address.
Admin queue Add Transmit Queues command parameters.
uint16_t uplink
Uplink switching element ID.
static int ice_admin_rules(struct intelxl_nic *intelxl, uint8_t *mac)
Add switch rules.
int intelxl_admin_clear_pxe(struct intelxl_nic *intelxl)
Clear PXE mode.
struct intelxl_admin command
Admin command queue.
#define ENOENT
No such file or directory.
#define ICE_ADMIN_RULES_ACTION_VALID
Switch rule action valid.
static __always_inline void dma_set_mask_64bit(struct dma_device *dma)
Set 64-bit addressable space mask.
unsigned long long uint64_t
struct ice_admin_descriptor * ice_admin_command_descriptor(struct intelxl_nic *intelxl)
Get next admin command queue descriptor.
struct dma_device * dma
DMA device.
uint8_t sections
Valid sections.
#define cpu_to_le64(value)
#define ICE_QRX_FLXP_CNTXT_RXDID_PRIO_MAX
Maximum priority.
void netdev_link_down(struct net_device *netdev)
Mark network device as having link down.
uint16_t port
Source port.
#define ICE_ADMIN_SCHEDULE
Admin queue Query Default Scheduling Tree Topology command.
#define INTELXL_CTX_RX_MFS(mfs)
Receive queue maximum frame size.
static int ice_admin_mac_read(struct net_device *netdev)
Get MAC address.
static int ice_admin_add_txq(struct intelxl_nic *intelxl, struct intelxl_ring *ring)
Add transmit queue.
#define INTELXL_ALIGN
Alignment.
#define ICE_QRX_FLXP_CNTXT
Queue Context Flex Extension Register.
uint8_t mac[ETH_ALEN]
MAC address.
struct golan_eq_context ctx
Admin queue Query Default Scheduling Tree Topology node.
size_t mfs
Maximum frame size.
int intelxl_open_admin(struct intelxl_nic *intelxl)
Open admin queues.
static struct net_device_operations ice_operations
Network device operations.
union intelxl_tx_descriptor * tx
Transmit descriptors.
#define ICE_GLCOMM_QTX_CNTX_STAT
Transmit Comm Scheduler Queue Context Status Register.
void adjust_pci_device(struct pci_device *pci)
Enable PCI device.
static int ice_create_tx(struct intelxl_nic *intelxl, struct intelxl_ring *ring)
Create transmit queue.
#define INTELXL_CTX_RX_FL_DSIZE
Use 32-byte receive descriptors.
uint8_t status
Link status.
struct device dev
Generic device.
uint16_t func
PF/VF number.
static void ice_destroy_tx(struct intelxl_nic *intelxl, struct intelxl_ring *ring)
Destroy transmit queue.
unsigned int exp
PCI Express capability offset.
#define ENOTSUP
Operation not supported.
Admin queue Query Default Scheduling Tree Topology command parameters.
#define ICE_TXQ_BASE_PORT(addr, port)
Transmit queue base address and port number.
#define INTELXL_ADMIN_MAC_READ_VALID_LAN
LAN MAC address is valid.
#define ICE_QRX_FLXP_CNTXT_RXDID_IDX_LEGACY_32
32-byte legacy
static void netdev_init(struct net_device *netdev, struct net_device_operations *op)
Initialise a network device.
#define ICE_TXQ_FL_LEGACY
Transmit queue uses legacy mode.
Admin queue Add Switch Rules command parameters.
static void pci_set_drvdata(struct pci_device *pci, void *priv)
Set PCI driver-private data.
uint8_t h_dest[ETH_ALEN]
Destination MAC address.
#define ENOMEM
Not enough space.
uint8_t count
Number of queue groups.
void * memcpy(void *dest, const void *src, size_t len) __nonnull
#define ICE_SCHEDULE_GENERIC
Transmit scheduler configuration generic section is valid.
struct intelxl_ring rx
Receive descriptor ring.
static void intelxl_init_admin(struct intelxl_admin *admin, unsigned int base, const struct intelxl_admin_offsets *regs)
Initialise admin queue.
#define ICE_QTX_COMM_DBELL
Transmit Comm Scheduler Queue Doorbell Register.
u32 version
Driver version.
static int ice_admin_switch(struct intelxl_nic *intelxl)
Get switch configuration.
struct ice_admin_version api
API version.
#define ICE_QRX_CONTEXT(x)
Receive Queue Context Registers.
#define ICE_QINT_TQCTL
Transmit Queue Interrupt Cause Control Register.
struct ice_admin_mac_read_buffer mac_read
Manage MAC Address Read data buffer.
#define INTELXL_MAX_PKT_LEN
Maximum packet length (excluding CRC)
static void netdev_put(struct net_device *netdev)
Drop reference to network device.
#define container_of(ptr, type, field)
Get containing structure.
Admin queue version number.
unsigned int vsi
Virtual Station Interface switching element ID.
#define INTELXL_TX_NUM_DESC
Number of transmit descriptors.
void * priv
Driver private data.
uint16_t seid
Switching element ID and flags.
#define __unused
Declare a variable or data structure as unused.
static void ice_admin_event(struct net_device *netdev, struct intelxl_admin_descriptor *xlevt, union intelxl_admin_buffer *xlbuf __unused)
Handle admin event.
union ice_admin_rules_buffer::@47 hdr
Header data.
static void netdev_link_up(struct net_device *netdev)
Mark network device as having link up.
void writel(uint32_t data, volatile uint32_t *io_addr)
Write 32-bit dword to memory-mapped device.
#define ICE_SCHEDULE_WEIGHT
Transmit scheduler configuration default weight.
uint16_t excess_weight
Excess bandwidth weight.
Admin queue Get Switch Configuration command parameters.
static struct net_device * netdev
#define ICE_ADMIN_SWITCH_TYPE_MASK
Switching element ID type mask.
u32 link
Link to next descriptor.
#define INTELXL_RX_NUM_DESC
Number of receive descriptors.
uint16_t count
Number of entries.
Admin queue Manage MAC Address Read command parameters.
#define INTELXL_ADMIN_VERSION
Admin queue Get Version command.
int intelxl_create_ring(struct intelxl_nic *intelxl, struct intelxl_ring *ring)
Create descriptor ring.
void unregister_netdev(struct net_device *netdev)
Unregister network device.
#define INTELXL_ADMIN_API_MAJOR
Admin queue API major version.
#define ICE_ADMIN_RULES_ACTION_VSI(x)
Switch rule VSI number.
unsigned int reg
Register block.
#define ICE_QRX_CTRL
Global Receive Queue Control Register.
#define cpu_to_le32(value)
void intelxl_free_ring(struct intelxl_nic *intelxl __unused, struct intelxl_ring *ring)
Free descriptor ring.
struct pci_driver ice_driver __pci_driver
PCI driver.
#define INTELXL_ADMIN_MAC_READ
Admin queue Manage MAC Address Read command.
static void ice_dump_rx(struct intelxl_nic *intelxl)
Dump receive queue context (for debugging)
static struct ice_admin_schedule_node * ice_admin_schedule_is_parent(struct ice_admin_schedule_branch *branch, struct ice_admin_schedule_node *node)
Check if scheduler node is a parent (i.e.
union intelxl_rx_descriptor * rx
Receive descriptors.
#define ICE_GLCOMM_QTX_CNTX_CTL
Transmit Comm Scheduler Queue Context Control Register.
struct ice_admin_link_buffer link
Get Link Status data buffer.
Admin queue Query Default Scheduling Tree Topology branch.
#define ICE_GLINT_DYN_CTL
Global Interrupt Dynamic Control Register.
static void ice_dump_tx(struct intelxl_nic *intelxl)
Dump transmit queue context (for debugging)
static int ice_admin_autoneg(struct intelxl_nic *intelxl)
Restart autonegotiation.
#define ICE_QINT_RQCTL_CAUSE_ENA
Enable.
int register_netdev(struct net_device *netdev)
Register network device.
const char * eth_ntoa(const void *ll_addr)
Transcribe Ethernet address.
unsigned int intr
Interrupt control register.
Admin queue Manage MAC Address Write command parameters.
uint64_t base_count
Base address and queue count.
#define ENODEV
No such device.
static void netdev_nullify(struct net_device *netdev)
Stop using a network device.
#define INTELXL_ADMIN_MAC_WRITE
Admin queue Manage MAC Address Write command.
#define ICE_SCHEDULE_COMMIT
Transmit scheduler configuration committed bandwidth section is valid.
struct dma_mapping map
Descriptor ring DMA mapping.
#define INTELXL_ADMIN_FL_BUF
Admin descriptor uses data buffer.
void intelxl_msix_disable(struct intelxl_nic *intelxl, struct pci_device *pci, unsigned int vector)
Disable MSI-X dummy interrupt.
uint16_t speed
Link speed.
unsigned int port
Port number.
struct ice_admin_switch_config cfg[1]
Switch configuration.
static int ice_admin_schedule(struct intelxl_nic *intelxl)
Query default scheduling tree topology.
struct ice_context_tx ctx
Transmit queue context.
uint8_t h_source[ETH_ALEN]
Source MAC address.
An Intel 40 Gigabit network card.
struct ethhdr eth
Ethernet header.
A PCI device ID list entry.
Admin queue Get Link Status command parameters.
static int ice_admin_mac_write(struct net_device *netdev)
Set MAC address.
#define le16_to_cpu(value)
static void intelxl_init_ring(struct intelxl_ring *ring, unsigned int count, size_t len, int(*context)(struct intelxl_nic *intelxl, physaddr_t address))
Initialise descriptor ring.
uint32_t node
NUMA node register offset.
struct ice_admin_disable_txq_buffer disable_txq
Disable Transmit Queue data buffer.
static int is_valid_ether_addr(const void *addr)
Check if Ethernet address is valid.
struct intelxl_ring tx
Transmit descriptor ring.
static struct xen_remove_from_physmap * remove
#define PCI_CAP_ID_EXP
PCI Express.
uint32_t teid
Transmit element ID.
int intelxl_admin_command(struct intelxl_nic *intelxl)
Issue admin queue command.
Network device operations.
#define INTELXL_MSIX_VECTOR
MSI-X interrupt vector.
struct device * dev
Underlying hardware device.
static int ice_admin_disable_txq(struct intelxl_nic *intelxl)
Disable transmit queue.
#define INTELXL_CTX_RX_FL_CRCSTRIP
Strip CRC from received packets.
static union ice_admin_buffer * ice_admin_command_buffer(struct intelxl_nic *intelxl)
Get next admin command queue data buffer.
Network device management.
static void * pci_get_drvdata(struct pci_device *pci)
Get PCI driver-private data.
unsigned int pf
Physical function number.
void mdelay(unsigned long msecs)
Delay for a fixed number of milliseconds.
#define ENXIO
No such device or address.
static int ice_probe(struct pci_device *pci)
Probe PCI device.
static struct pci_device_id ice_nics[]
PCI device IDs.
#define ICE_QINT_RQCTL_ITR_INDX_NONE
No throttling.
#define ICE_QINT_RQCTL
Receive Queue Interrupt Cause Control Register.
static int ice_open(struct net_device *netdev)
Open network device.
#define ICE_ADMIN_MAC_READ_TYPE_LAN
LAN MAC address type.
struct ice_admin_rules_buffer rules
Add Switch Rules data buffer.
#define ICE_PFFUNC_RID
Function Requester ID Information Register.
Transmit scheduler configuration.
#define ICE_TXQ_FL_TSO
Transmit queue uses TSO.
int(* probe)(struct pci_device *pci)
Probe device.
#define ICE_GLCOMM_QTX_CNTX_BUSY
In progress.
#define INTELXL_ADMIN_LINK_UP
Link is up.
#define ICE_GLCOMM_QTX_CNTX_CTL_EXEC
Execute.
Admin queue Restart Autonegotiation command parameters.
#define ICE_TXQ_TIMEOUT
Disable queue timeout.
struct ice_admin_mac_read_address mac[4]
MAC addresses.
#define INTELXL_ADMIN_LINK_NOTIFY
Notify driver of link status changes.
struct ice_admin_schedule_branch branch[0]
Branches.
#define ICE_ADMIN_SWITCH_TYPE_VSI
Virtual Station Interface element type.
struct net_device * alloc_etherdev(size_t priv_size)
Allocate Ethernet device.
u8 rx[WPA_TKIP_MIC_KEY_LEN]
MIC key for packets from the AP.
static uint8_t ice_magic_mac[ETH_HLEN]
Magic MAC address.
#define cpu_to_le16(value)
static void ice_remove(struct pci_device *pci)
Remove PCI device.
#define ICE_GLCOMM_QTX_CNTX_DATA(x)
Transmit Comm Scheduler Queue Context Data Registers.
void iounmap(volatile const void *io_addr)
Unmap I/O address.
#define ICE_BAR_SIZE
BAR size.
unsigned int tail
Tail register.
#define ICE_QRX_TAIL
Receive Queue Tail Register.
struct intelxl_admin_descriptor xl
Original 40 Gigabit Ethernet descriptor.
#define INTELXL_ADMIN_AUTONEG_FL_ENABLE
Enable link.
#define ICE_PFFUNC_RID_FUNC_NUM(x)
Function number.
uint8_t ll_addr[MAX_LL_ADDR_LEN]
Link-layer address.
static int ice_context_rx(struct intelxl_nic *intelxl, physaddr_t address)
Program receive queue context.
size_t max_pkt_len
Maximum packet length.
void intelxl_close_admin(struct intelxl_nic *intelxl)
Close admin queues.
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
#define ICE_PFGEN_PORTNUM_PORT_NUM(x)
Port number.
static __always_inline physaddr_t dma(struct dma_mapping *map, void *addr)
Get DMA address from virtual address.
void * pci_ioremap(struct pci_device *pci, unsigned long bus_addr, size_t len)
Map PCI bus address as an I/O address.
uint16_t commit_weight
Committeed bandwidth weight.
struct ice_admin_add_txq_buffer add_txq
Add Transmit Queue data buffer.
#define INTELXL_CTX_MAX_WAIT_MS
Maximum time to wait for a context operation to complete.
#define INTELXL_ADMIN_FL_RD
Admin descriptor uses data buffer for command parameters.
static int ice_admin_version(struct intelxl_nic *intelxl)
Get firmware version.
#define INTELXL_CTX_RX_BASE_COUNT(base, count)
Receive queue base address and queue count.
uint8_t hw_addr[MAX_HW_ADDR_LEN]
Hardware address.
#define NULL
NULL pointer (VOID *)
#define ICE_PFGEN_PORTNUM
PF LAN Port Number Register.
struct intelxl_admin event
Admin event queue.
#define PCI_ROM(_vendor, _device, _name, _description, _data)
Admin queue Disable Transmit Queues command parameters.
uint32_t parent
Parent TEID.
#define ICE_ADMIN_ADD_TXQ
Admin queue Add Transmit Queues command.
void intelxl_empty_rx(struct intelxl_nic *intelxl)
Discard unused receive I/O buffers.
int intelxl_admin_mac_config(struct intelxl_nic *intelxl)
Set MAC configuration.
struct ice_admin_switch_buffer sw
Get Switch Configuration data buffer.
void intelxl_poll(struct net_device *netdev)
Poll for completed and received packets.
int intelxl_alloc_ring(struct intelxl_nic *intelxl, struct intelxl_ring *ring)
Allocate descriptor ring.
#define ICE_QINT_TQCTL_ITR_INDX_NONE
No throttling.
#define ICE_TXQ_LEN(count)
Transmit queue length.
#define ICE_GLCOMM_QTX_CNTX_CTL_CMD_READ
Read context.
uint16_t recipe
Receipt ID.
void * memset(void *dest, int character, size_t len) __nonnull
int intelxl_msix_enable(struct intelxl_nic *intelxl, struct pci_device *pci, unsigned int vector)
Enable MSI-X dummy interrupt.
uint32_t parent
Parent TEID.
uint8_t count
Number of queues.