--- /dev/null
+/*++\r
+Copyright (c) 2006, Intel Corporation \r
+All rights reserved. This program and the accompanying materials \r
+are licensed and made available under the terms and conditions of the BSD License \r
+which accompanies this distribution. The full text of the license may be found at \r
+http://opensource.org/licenses/bsd-license.php \r
+ \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
+\r
+Module name:\r
+ snp.h\r
+\r
+Abstract:\r
+\r
+Revision history:\r
+ 2000-Feb-03 M(f)J Genesis.\r
+--*/\r
+#ifndef _SNP_H\r
+#define _SNP_H\r
+\r
+\r
+#include "IndustryStandard/pci22.h"\r
+\r
+#define SNP_DEBUG 0\r
+#define FOUR_GIGABYTES (UINT64) 0x100000000ULL\r
+\r
+#if SNP_DEBUG\r
+#undef D_NET\r
+#define D_NET D_WARN\r
+#define SNP_PRINT(DebugInfo) Print (DebugInfo)\r
+#else\r
+#define SNP_PRINT(DebugInfo)\r
+#endif\r
+\r
+#define SNP_DRIVER_SIGNATURE EFI_SIGNATURE_32 ('s', 'n', 'd', 's')\r
+#define MAX_MAP_LENGTH 100\r
+\r
+#define PCI_BAR_IO_MASK 0x00000003\r
+#define PCI_BAR_IO_MODE 0x00000001\r
+\r
+#define PCI_BAR_MEM_MASK 0x0000000F\r
+#define PCI_BAR_MEM_MODE 0x00000000\r
+#define PCI_BAR_MEM_64BIT 0x00000004\r
+\r
+typedef struct {\r
+ UINT32 Signature;\r
+ EFI_LOCK lock;\r
+\r
+ EFI_SIMPLE_NETWORK_PROTOCOL snp;\r
+ EFI_SIMPLE_NETWORK_MODE mode;\r
+\r
+ EFI_HANDLE device_handle;\r
+ EFI_DEVICE_PATH_PROTOCOL *device_path;\r
+\r
+ //\r
+ // Local instance data needed by SNP driver\r
+ //\r
+ // Pointer to S/W UNDI API entry point\r
+ // This will be NULL for H/W UNDI\r
+ //\r
+ EFI_STATUS (*issue_undi32_command) (UINT64 cdb);\r
+\r
+ BOOLEAN is_swundi;\r
+\r
+ //\r
+ // undi interface number, if one undi manages more nics\r
+ //\r
+ PXE_IFNUM if_num;\r
+\r
+ //\r
+ // Allocated tx/rx buffer that was passed to UNDI Initialize.\r
+ //\r
+ UINT32 tx_rx_bufsize;\r
+ VOID *tx_rx_buffer;\r
+ //\r
+ // mappable buffers for receive and fill header for undi3.0\r
+ // these will be used if the user buffers are above 4GB limit (instead of\r
+ // mapping the user buffers)\r
+ //\r
+ UINT8 *receive_buf;\r
+ VOID *ReceiveBufUnmap;\r
+ UINT8 *fill_hdr_buf;\r
+ VOID *FillHdrBufUnmap;\r
+\r
+ EFI_PCI_IO_PROTOCOL *IoFncs;\r
+ UINT8 IoBarIndex;\r
+ UINT8 MemoryBarIndex;\r
+ BOOLEAN IsOldUndi; // true for EFI1.0 UNDI (3.0) drivers\r
+ //\r
+ // Buffers for command descriptor block, command parameter block\r
+ // and data block.\r
+ //\r
+ PXE_CDB cdb;\r
+ VOID *cpb;\r
+ VOID *CpbUnmap;\r
+ VOID *db;\r
+\r
+ //\r
+ // UNDI structure, we need to remember the init info for a long time!\r
+ //\r
+ PXE_DB_GET_INIT_INFO init_info;\r
+\r
+ VOID *SnpDriverUnmap;\r
+ //\r
+ // when ever we map an address, we must remember it's address and the un-map\r
+ // cookie so that we can unmap later\r
+ //\r
+ struct s_map_list {\r
+ EFI_PHYSICAL_ADDRESS virt;\r
+ VOID *map_cookie;\r
+ } map_list[MAX_MAP_LENGTH];\r
+}\r
+SNP_DRIVER;\r
+\r
+#define EFI_SIMPLE_NETWORK_DEV_FROM_THIS(a) CR (a, SNP_DRIVER, snp, SNP_DRIVER_SIGNATURE)\r
+\r
+//\r
+// Global Variables\r
+//\r
+extern EFI_COMPONENT_NAME_PROTOCOL gSimpleNetworkComponentName;\r
+extern EFI_DRIVER_BINDING_PROTOCOL gSimpleNetworkDriverBinding;\r
+\r
+//\r
+// Virtual to physical mapping for all UNDI 3.0s.\r
+//\r
+extern struct s_v2p {\r
+ struct s_v2p *next;\r
+ VOID *vaddr;\r
+ UINTN bsize;\r
+ EFI_PHYSICAL_ADDRESS paddr;\r
+ VOID *unmap;\r
+}\r
+*_v2p;\r
+\r
+EFI_STATUS\r
+add_v2p (\r
+ struct s_v2p **v2p,\r
+ EFI_PCI_IO_PROTOCOL_OPERATION type,\r
+ VOID *vaddr,\r
+ UINTN bsize\r
+ )\r
+;\r
+\r
+EFI_STATUS\r
+find_v2p (\r
+ struct s_v2p **v2p,\r
+ VOID *vaddr\r
+ )\r
+;\r
+\r
+EFI_STATUS\r
+del_v2p (\r
+ VOID *vaddr\r
+ )\r
+;\r
+\r
+extern\r
+VOID\r
+snp_undi32_callback_block_30 (\r
+ IN UINT32 Enable\r
+ )\r
+;\r
+\r
+extern\r
+VOID\r
+snp_undi32_callback_delay_30 (\r
+ IN UINT64 MicroSeconds\r
+ )\r
+;\r
+\r
+extern\r
+VOID\r
+snp_undi32_callback_memio_30 (\r
+ IN UINT8 ReadOrWrite,\r
+ IN UINT8 NumBytes,\r
+ IN UINT64 MemOrPortAddress,\r
+ IN OUT UINT64 BufferPtr\r
+ )\r
+;\r
+\r
+extern\r
+VOID\r
+snp_undi32_callback_v2p_30 (\r
+ IN UINT64 CpuAddr,\r
+ IN OUT UINT64 DeviceAddrPtr\r
+ )\r
+;\r
+\r
+extern\r
+VOID\r
+snp_undi32_callback_block (\r
+ IN UINT64 UniqueId,\r
+ IN UINT32 Enable\r
+ )\r
+;\r
+\r
+extern\r
+VOID\r
+snp_undi32_callback_delay (\r
+ IN UINT64 UniqueId,\r
+ IN UINT64 MicroSeconds\r
+ )\r
+;\r
+\r
+extern\r
+VOID\r
+snp_undi32_callback_memio (\r
+ IN UINT64 UniqueId,\r
+ IN UINT8 ReadOrWrite,\r
+ IN UINT8 NumBytes,\r
+ IN UINT64 MemOrPortAddr,\r
+ IN OUT UINT64 BufferPtr\r
+ )\r
+;\r
+\r
+extern\r
+VOID\r
+snp_undi32_callback_map (\r
+ IN UINT64 UniqueId,\r
+ IN UINT64 CpuAddr,\r
+ IN UINT32 NumBytes,\r
+ IN UINT32 Direction,\r
+ IN OUT UINT64 DeviceAddrPtr\r
+ )\r
+;\r
+\r
+extern\r
+VOID\r
+snp_undi32_callback_unmap (\r
+ IN UINT64 UniqueId,\r
+ IN UINT64 CpuAddr,\r
+ IN UINT32 NumBytes,\r
+ IN UINT32 Direction,\r
+ IN UINT64 DeviceAddr // not a pointer to device address\r
+ )\r
+;\r
+\r
+extern\r
+VOID\r
+snp_undi32_callback_sync (\r
+ IN UINT64 UniqueId,\r
+ IN UINT64 CpuAddr,\r
+ IN UINT32 NumBytes,\r
+ IN UINT32 Direction,\r
+ IN UINT64 DeviceAddr // not a pointer to device address\r
+ )\r
+;\r
+\r
+extern\r
+EFI_STATUS\r
+EFIAPI\r
+snp_undi32_start (\r
+ IN EFI_SIMPLE_NETWORK_PROTOCOL *this\r
+ )\r
+;\r
+\r
+extern\r
+EFI_STATUS\r
+EFIAPI\r
+snp_undi32_stop (\r
+ IN EFI_SIMPLE_NETWORK_PROTOCOL *this\r
+ )\r
+;\r
+\r
+extern\r
+EFI_STATUS\r
+EFIAPI\r
+snp_undi32_initialize (\r
+ IN EFI_SIMPLE_NETWORK_PROTOCOL *this,\r
+ IN UINTN extra_rx_buffer_size OPTIONAL,\r
+ IN UINTN extra_tx_buffer_size OPTIONAL\r
+ )\r
+;\r
+\r
+extern\r
+EFI_STATUS\r
+EFIAPI\r
+snp_undi32_reset (\r
+ IN EFI_SIMPLE_NETWORK_PROTOCOL *this,\r
+ IN BOOLEAN ExtendedVerification\r
+ )\r
+;\r
+\r
+extern\r
+EFI_STATUS\r
+EFIAPI\r
+snp_undi32_shutdown (\r
+ IN EFI_SIMPLE_NETWORK_PROTOCOL *this\r
+ )\r
+;\r
+\r
+extern\r
+EFI_STATUS\r
+EFIAPI\r
+snp_undi32_receive_filters (\r
+ IN EFI_SIMPLE_NETWORK_PROTOCOL * this,\r
+ IN UINT32 enable,\r
+ IN UINT32 disable,\r
+ IN BOOLEAN reset_mcast_filter,\r
+ IN UINTN mcast_filter_count OPTIONAL,\r
+ IN EFI_MAC_ADDRESS * mcast_filter OPTIONAL\r
+ )\r
+;\r
+\r
+extern\r
+EFI_STATUS\r
+EFIAPI\r
+snp_undi32_station_address (\r
+ IN EFI_SIMPLE_NETWORK_PROTOCOL * this,\r
+ IN BOOLEAN reset,\r
+ IN EFI_MAC_ADDRESS *new OPTIONAL\r
+ )\r
+;\r
+\r
+extern\r
+EFI_STATUS\r
+EFIAPI\r
+snp_undi32_statistics (\r
+ IN EFI_SIMPLE_NETWORK_PROTOCOL * this,\r
+ IN BOOLEAN reset,\r
+ IN OUT UINTN *statistics_size OPTIONAL,\r
+ IN OUT EFI_NETWORK_STATISTICS * statistics_table OPTIONAL\r
+ )\r
+;\r
+\r
+extern\r
+EFI_STATUS\r
+EFIAPI\r
+snp_undi32_mcast_ip_to_mac (\r
+ IN EFI_SIMPLE_NETWORK_PROTOCOL *this,\r
+ IN BOOLEAN IPv6,\r
+ IN EFI_IP_ADDRESS *IP,\r
+ OUT EFI_MAC_ADDRESS *MAC\r
+ )\r
+;\r
+\r
+extern\r
+EFI_STATUS\r
+EFIAPI\r
+snp_undi32_nvdata (\r
+ IN EFI_SIMPLE_NETWORK_PROTOCOL *this,\r
+ IN BOOLEAN read_write,\r
+ IN UINTN offset,\r
+ IN UINTN buffer_size,\r
+ IN OUT VOID *buffer\r
+ )\r
+;\r
+\r
+extern\r
+EFI_STATUS\r
+EFIAPI\r
+snp_undi32_get_status (\r
+ IN EFI_SIMPLE_NETWORK_PROTOCOL * this,\r
+ OUT UINT32 *interrupt_status OPTIONAL,\r
+ OUT VOID **tx_buffer OPTIONAL\r
+ )\r
+;\r
+\r
+extern\r
+EFI_STATUS\r
+EFIAPI\r
+snp_undi32_transmit (\r
+ IN EFI_SIMPLE_NETWORK_PROTOCOL * this,\r
+ IN UINTN header_size,\r
+ IN UINTN buffer_size,\r
+ IN VOID *buffer,\r
+ IN EFI_MAC_ADDRESS * src_addr OPTIONAL,\r
+ IN EFI_MAC_ADDRESS * dest_addr OPTIONAL,\r
+ IN UINT16 *protocol OPTIONAL\r
+ )\r
+;\r
+\r
+extern\r
+EFI_STATUS\r
+EFIAPI\r
+snp_undi32_receive (\r
+ IN EFI_SIMPLE_NETWORK_PROTOCOL * this,\r
+ OUT UINTN *header_size OPTIONAL,\r
+ IN OUT UINTN *buffer_size,\r
+ OUT VOID *buffer,\r
+ OUT EFI_MAC_ADDRESS * src_addr OPTIONAL,\r
+ OUT EFI_MAC_ADDRESS * dest_addr OPTIONAL,\r
+ OUT UINT16 *protocol OPTIONAL\r
+ )\r
+;\r
+\r
+typedef\r
+EFI_STATUS\r
+(*issue_undi32_command) (\r
+ UINT64 cdb\r
+ );\r
+typedef\r
+VOID\r
+(*ptr) (\r
+ VOID\r
+ );\r
+\r
+#define SNP_MEM_PAGES(x) (((x) - 1) / 4096 + 1)\r
+\r
+#if SNP_DEBUG\r
+extern\r
+VOID\r
+snp_wait_for_key (\r
+ VOID\r
+ )\r
+;\r
+#endif\r
+\r
+#endif /* _SNP_H */\r
+++ /dev/null
-/*++\r
-Copyright (c) 2006, Intel Corporation \r
-All rights reserved. This program and the accompanying materials \r
-are licensed and made available under the terms and conditions of the BSD License \r
-which accompanies this distribution. The full text of the license may be found at \r
-http://opensource.org/licenses/bsd-license.php \r
- \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
-Module name:\r
- snp.h\r
-\r
-Abstract:\r
-\r
-Revision history:\r
- 2000-Feb-03 M(f)J Genesis.\r
---*/\r
-#ifndef _SNP_H\r
-#define _SNP_H\r
-\r
-\r
-#include "IndustryStandard/pci22.h"\r
-\r
-#define SNP_DEBUG 0\r
-#define FOUR_GIGABYTES (UINT64) 0x100000000ULL\r
-\r
-#if SNP_DEBUG\r
-#undef D_NET\r
-#define D_NET D_WARN\r
-#define SNP_PRINT(DebugInfo) Print (DebugInfo)\r
-#else\r
-#define SNP_PRINT(DebugInfo)\r
-#endif\r
-\r
-#define SNP_DRIVER_SIGNATURE EFI_SIGNATURE_32 ('s', 'n', 'd', 's')\r
-#define MAX_MAP_LENGTH 100\r
-\r
-#define PCI_BAR_IO_MASK 0x00000003\r
-#define PCI_BAR_IO_MODE 0x00000001\r
-\r
-#define PCI_BAR_MEM_MASK 0x0000000F\r
-#define PCI_BAR_MEM_MODE 0x00000000\r
-#define PCI_BAR_MEM_64BIT 0x00000004\r
-\r
-typedef struct {\r
- UINT32 Signature;\r
- EFI_LOCK lock;\r
-\r
- EFI_SIMPLE_NETWORK_PROTOCOL snp;\r
- EFI_SIMPLE_NETWORK_MODE mode;\r
-\r
- EFI_HANDLE device_handle;\r
- EFI_DEVICE_PATH_PROTOCOL *device_path;\r
-\r
- //\r
- // Local instance data needed by SNP driver\r
- //\r
- // Pointer to S/W UNDI API entry point\r
- // This will be NULL for H/W UNDI\r
- //\r
- EFI_STATUS (*issue_undi32_command) (UINT64 cdb);\r
-\r
- BOOLEAN is_swundi;\r
-\r
- //\r
- // undi interface number, if one undi manages more nics\r
- //\r
- PXE_IFNUM if_num;\r
-\r
- //\r
- // Allocated tx/rx buffer that was passed to UNDI Initialize.\r
- //\r
- UINT32 tx_rx_bufsize;\r
- VOID *tx_rx_buffer;\r
- //\r
- // mappable buffers for receive and fill header for undi3.0\r
- // these will be used if the user buffers are above 4GB limit (instead of\r
- // mapping the user buffers)\r
- //\r
- UINT8 *receive_buf;\r
- VOID *ReceiveBufUnmap;\r
- UINT8 *fill_hdr_buf;\r
- VOID *FillHdrBufUnmap;\r
-\r
- EFI_PCI_IO_PROTOCOL *IoFncs;\r
- UINT8 IoBarIndex;\r
- UINT8 MemoryBarIndex;\r
- BOOLEAN IsOldUndi; // true for EFI1.0 UNDI (3.0) drivers\r
- //\r
- // Buffers for command descriptor block, command parameter block\r
- // and data block.\r
- //\r
- PXE_CDB cdb;\r
- VOID *cpb;\r
- VOID *CpbUnmap;\r
- VOID *db;\r
-\r
- //\r
- // UNDI structure, we need to remember the init info for a long time!\r
- //\r
- PXE_DB_GET_INIT_INFO init_info;\r
-\r
- VOID *SnpDriverUnmap;\r
- //\r
- // when ever we map an address, we must remember it's address and the un-map\r
- // cookie so that we can unmap later\r
- //\r
- struct s_map_list {\r
- EFI_PHYSICAL_ADDRESS virt;\r
- VOID *map_cookie;\r
- } map_list[MAX_MAP_LENGTH];\r
-}\r
-SNP_DRIVER;\r
-\r
-#define EFI_SIMPLE_NETWORK_DEV_FROM_THIS(a) CR (a, SNP_DRIVER, snp, SNP_DRIVER_SIGNATURE)\r
-\r
-//\r
-// Global Variables\r
-//\r
-extern EFI_COMPONENT_NAME_PROTOCOL gSimpleNetworkComponentName;\r
-extern EFI_DRIVER_BINDING_PROTOCOL gSimpleNetworkDriverBinding;\r
-\r
-//\r
-// Virtual to physical mapping for all UNDI 3.0s.\r
-//\r
-extern struct s_v2p {\r
- struct s_v2p *next;\r
- VOID *vaddr;\r
- UINTN bsize;\r
- EFI_PHYSICAL_ADDRESS paddr;\r
- VOID *unmap;\r
-}\r
-*_v2p;\r
-\r
-EFI_STATUS\r
-add_v2p (\r
- struct s_v2p **v2p,\r
- EFI_PCI_IO_PROTOCOL_OPERATION type,\r
- VOID *vaddr,\r
- UINTN bsize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-find_v2p (\r
- struct s_v2p **v2p,\r
- VOID *vaddr\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-del_v2p (\r
- VOID *vaddr\r
- )\r
-;\r
-\r
-extern\r
-VOID\r
-snp_undi32_callback_block_30 (\r
- IN UINT32 Enable\r
- )\r
-;\r
-\r
-extern\r
-VOID\r
-snp_undi32_callback_delay_30 (\r
- IN UINT64 MicroSeconds\r
- )\r
-;\r
-\r
-extern\r
-VOID\r
-snp_undi32_callback_memio_30 (\r
- IN UINT8 ReadOrWrite,\r
- IN UINT8 NumBytes,\r
- IN UINT64 MemOrPortAddress,\r
- IN OUT UINT64 BufferPtr\r
- )\r
-;\r
-\r
-extern\r
-VOID\r
-snp_undi32_callback_v2p_30 (\r
- IN UINT64 CpuAddr,\r
- IN OUT UINT64 DeviceAddrPtr\r
- )\r
-;\r
-\r
-extern\r
-VOID\r
-snp_undi32_callback_block (\r
- IN UINT64 UniqueId,\r
- IN UINT32 Enable\r
- )\r
-;\r
-\r
-extern\r
-VOID\r
-snp_undi32_callback_delay (\r
- IN UINT64 UniqueId,\r
- IN UINT64 MicroSeconds\r
- )\r
-;\r
-\r
-extern\r
-VOID\r
-snp_undi32_callback_memio (\r
- IN UINT64 UniqueId,\r
- IN UINT8 ReadOrWrite,\r
- IN UINT8 NumBytes,\r
- IN UINT64 MemOrPortAddr,\r
- IN OUT UINT64 BufferPtr\r
- )\r
-;\r
-\r
-extern\r
-VOID\r
-snp_undi32_callback_map (\r
- IN UINT64 UniqueId,\r
- IN UINT64 CpuAddr,\r
- IN UINT32 NumBytes,\r
- IN UINT32 Direction,\r
- IN OUT UINT64 DeviceAddrPtr\r
- )\r
-;\r
-\r
-extern\r
-VOID\r
-snp_undi32_callback_unmap (\r
- IN UINT64 UniqueId,\r
- IN UINT64 CpuAddr,\r
- IN UINT32 NumBytes,\r
- IN UINT32 Direction,\r
- IN UINT64 DeviceAddr // not a pointer to device address\r
- )\r
-;\r
-\r
-extern\r
-VOID\r
-snp_undi32_callback_sync (\r
- IN UINT64 UniqueId,\r
- IN UINT64 CpuAddr,\r
- IN UINT32 NumBytes,\r
- IN UINT32 Direction,\r
- IN UINT64 DeviceAddr // not a pointer to device address\r
- )\r
-;\r
-\r
-extern\r
-EFI_STATUS\r
-EFIAPI\r
-snp_undi32_start (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL *this\r
- )\r
-;\r
-\r
-extern\r
-EFI_STATUS\r
-EFIAPI\r
-snp_undi32_stop (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL *this\r
- )\r
-;\r
-\r
-extern\r
-EFI_STATUS\r
-EFIAPI\r
-snp_undi32_initialize (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL *this,\r
- IN UINTN extra_rx_buffer_size OPTIONAL,\r
- IN UINTN extra_tx_buffer_size OPTIONAL\r
- )\r
-;\r
-\r
-extern\r
-EFI_STATUS\r
-EFIAPI\r
-snp_undi32_reset (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL *this,\r
- IN BOOLEAN ExtendedVerification\r
- )\r
-;\r
-\r
-extern\r
-EFI_STATUS\r
-EFIAPI\r
-snp_undi32_shutdown (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL *this\r
- )\r
-;\r
-\r
-extern\r
-EFI_STATUS\r
-EFIAPI\r
-snp_undi32_receive_filters (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL * this,\r
- IN UINT32 enable,\r
- IN UINT32 disable,\r
- IN BOOLEAN reset_mcast_filter,\r
- IN UINTN mcast_filter_count OPTIONAL,\r
- IN EFI_MAC_ADDRESS * mcast_filter OPTIONAL\r
- )\r
-;\r
-\r
-extern\r
-EFI_STATUS\r
-EFIAPI\r
-snp_undi32_station_address (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL * this,\r
- IN BOOLEAN reset,\r
- IN EFI_MAC_ADDRESS *new OPTIONAL\r
- )\r
-;\r
-\r
-extern\r
-EFI_STATUS\r
-EFIAPI\r
-snp_undi32_statistics (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL * this,\r
- IN BOOLEAN reset,\r
- IN OUT UINTN *statistics_size OPTIONAL,\r
- IN OUT EFI_NETWORK_STATISTICS * statistics_table OPTIONAL\r
- )\r
-;\r
-\r
-extern\r
-EFI_STATUS\r
-EFIAPI\r
-snp_undi32_mcast_ip_to_mac (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL *this,\r
- IN BOOLEAN IPv6,\r
- IN EFI_IP_ADDRESS *IP,\r
- OUT EFI_MAC_ADDRESS *MAC\r
- )\r
-;\r
-\r
-extern\r
-EFI_STATUS\r
-EFIAPI\r
-snp_undi32_nvdata (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL *this,\r
- IN BOOLEAN read_write,\r
- IN UINTN offset,\r
- IN UINTN buffer_size,\r
- IN OUT VOID *buffer\r
- )\r
-;\r
-\r
-extern\r
-EFI_STATUS\r
-EFIAPI\r
-snp_undi32_get_status (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL * this,\r
- OUT UINT32 *interrupt_status OPTIONAL,\r
- OUT VOID **tx_buffer OPTIONAL\r
- )\r
-;\r
-\r
-extern\r
-EFI_STATUS\r
-EFIAPI\r
-snp_undi32_transmit (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL * this,\r
- IN UINTN header_size,\r
- IN UINTN buffer_size,\r
- IN VOID *buffer,\r
- IN EFI_MAC_ADDRESS * src_addr OPTIONAL,\r
- IN EFI_MAC_ADDRESS * dest_addr OPTIONAL,\r
- IN UINT16 *protocol OPTIONAL\r
- )\r
-;\r
-\r
-extern\r
-EFI_STATUS\r
-EFIAPI\r
-snp_undi32_receive (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL * this,\r
- OUT UINTN *header_size OPTIONAL,\r
- IN OUT UINTN *buffer_size,\r
- OUT VOID *buffer,\r
- OUT EFI_MAC_ADDRESS * src_addr OPTIONAL,\r
- OUT EFI_MAC_ADDRESS * dest_addr OPTIONAL,\r
- OUT UINT16 *protocol OPTIONAL\r
- )\r
-;\r
-\r
-typedef\r
-EFI_STATUS\r
-(*issue_undi32_command) (\r
- UINT64 cdb\r
- );\r
-typedef\r
-VOID\r
-(*ptr) (\r
- VOID\r
- );\r
-\r
-#define SNP_MEM_PAGES(x) (((x) - 1) / 4096 + 1)\r
-\r
-#if SNP_DEBUG\r
-extern\r
-VOID\r
-snp_wait_for_key (\r
- VOID\r
- )\r
-;\r
-#endif\r
-\r
-#endif /* _SNP_H */\r