diff options
Diffstat (limited to 'qemu/roms/ipxe/src/include/ipxe/efi/efi_snp.h')
-rw-r--r-- | qemu/roms/ipxe/src/include/ipxe/efi/efi_snp.h | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/qemu/roms/ipxe/src/include/ipxe/efi/efi_snp.h b/qemu/roms/ipxe/src/include/ipxe/efi/efi_snp.h index a18bced5f..1e5c66626 100644 --- a/qemu/roms/ipxe/src/include/ipxe/efi/efi_snp.h +++ b/qemu/roms/ipxe/src/include/ipxe/efi/efi_snp.h @@ -18,6 +18,9 @@ #include <ipxe/efi/Protocol/HiiDatabase.h> #include <ipxe/efi/Protocol/LoadFile.h> +/** SNP transmit completion ring size */ +#define EFI_SNP_NUM_TX 32 + /** An SNP device */ struct efi_snp_device { /** List of SNP devices */ @@ -34,20 +37,16 @@ struct efi_snp_device { EFI_SIMPLE_NETWORK_MODE mode; /** Started flag */ int started; - /** Outstanding TX packet count (via "interrupt status") - * - * Used in order to generate TX completions. - */ - unsigned int tx_count_interrupts; - /** Outstanding TX packet count (via "recycled tx buffers") - * - * Used in order to generate TX completions. - */ - unsigned int tx_count_txbufs; - /** Outstanding RX packet count (via "interrupt status") */ - unsigned int rx_count_interrupts; - /** Outstanding RX packet count (via WaitForPacket event) */ - unsigned int rx_count_events; + /** Pending interrupt status */ + unsigned int interrupts; + /** Transmit completion ring */ + VOID *tx[EFI_SNP_NUM_TX]; + /** Transmit completion ring producer counter */ + unsigned int tx_prod; + /** Transmit completion ring consumer counter */ + unsigned int tx_cons; + /** Receive queue */ + struct list_head rx; /** The network interface identifier */ EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL nii; /** Component name protocol */ |