+++ /dev/null
-/** @file\r
-\r
- Copyright (c) 2010, Apple, Inc. All rights reserved.<BR>\r
-\r
- 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
-\r
- UnixSnp.h\r
-\r
-Abstract:\r
-\r
--**/\r
-\r
-#ifndef _UNIX_SNP_H_\r
-#define _UNIX_SNP_H_\r
-\r
-#include <Uefi.h>\r
-\r
-#include <Protocol/SimpleNetwork.h>\r
-#include <Protocol/DevicePath.h>\r
-#include <Protocol/UnixIo.h>\r
-\r
-\r
-#include <Library/BaseLib.h>\r
-#include <Library/DebugLib.h>\r
-#include <Library/BaseMemoryLib.h>\r
-#include <Library/UefiBootServicesTableLib.h>\r
-#include <Library/UefiLib.h>\r
-#include <Library/DevicePathLib.h>\r
-#include <Library/MemoryAllocationLib.h>\r
-#include <Library/NetLib.h>\r
-\r
-#define NET_ETHER_HEADER_SIZE 14\r
-\r
-//\r
-// Private data for driver.\r
-//\r
-#define UNIX_SNP_PRIVATE_DATA_SIGNATURE SIGNATURE_32( 'U', 'S', 'N', 'P' )\r
-\r
-typedef struct\r
-{\r
- UINT32 Signature;\r
-\r
- EFI_UNIX_THUNK_PROTOCOL* UnixThunk;\r
-\r
- EFI_HANDLE DeviceHandle;\r
- EFI_DEVICE_PATH_PROTOCOL* DevicePath;\r
-\r
- EFI_MAC_ADDRESS MacAddress;\r
-\r
- CHAR8* InterfaceName;\r
- INTN ReadBufferSize;\r
- VOID* ReadBuffer;\r
- //\r
- // Two walking pointers to manage the multiple packets that can be returned\r
- // in a single read.\r
- //\r
- VOID* CurrentReadPointer;\r
- VOID* EndReadPointer;\r
-\r
- INTN BpfFd;\r
-\r
- EFI_SIMPLE_NETWORK_PROTOCOL Snp;\r
- EFI_SIMPLE_NETWORK_MODE Mode;\r
-} UNIX_SNP_PRIVATE_DATA;\r
-\r
-#define UNIX_SNP_PRIVATE_DATA_FROM_SNP_THIS(a) \\r
- CR( a, UNIX_SNP_PRIVATE_DATA, Snp, UNIX_SNP_PRIVATE_DATA_SIGNATURE )\r
-\r
-extern EFI_DRIVER_BINDING_PROTOCOL gUnixSnpDriverBinding;\r
-extern EFI_COMPONENT_NAME_PROTOCOL gUnixSnpDriverComponentName;\r
-extern EFI_COMPONENT_NAME2_PROTOCOL gUnixSnpDriverComponentName2;\r
-\r
-/**\r
- Test to see if this driver supports ControllerHandle. This service\r
- is called by the EFI boot service ConnectController(). In\r
- order to make drivers as small as possible, there are a few calling\r
- restrictions for this service. ConnectController() must\r
- follow these calling restrictions. If any other agent wishes to call\r
- Supported() it must also follow these calling restrictions.\r
-\r
- @param This Protocol instance pointer.\r
- @param ControllerHandle Handle of device to test\r
- @param RemainingDevicePath Optional parameter use to pick a specific child\r
- device to start.\r
-\r
- @retval EFI_SUCCESS This driver supports this device\r
- @retval EFI_UNSUPPORTED This driver does not support this device\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-UnixSnpDriverBindingSupported (\r
- IN EFI_DRIVER_BINDING_PROTOCOL * This,\r
- IN EFI_HANDLE ControllerHandle,\r
- IN EFI_DEVICE_PATH_PROTOCOL * RemainingDevicePath OPTIONAL\r
- );\r
-\r
-/**\r
- Start this driver on ControllerHandle. This service is called by the\r
- EFI boot service ConnectController(). In order to make\r
- drivers as small as possible, there are a few calling restrictions for\r
- this service. ConnectController() must follow these\r
- calling restrictions. If any other agent wishes to call Start() it\r
- must also follow these calling restrictions.\r
-\r
- @param This Protocol instance pointer.\r
- @param ControllerHandle Handle of device to bind driver to\r
- @param RemainingDevicePath Optional parameter use to pick a specific child\r
- device to start.\r
-\r
- @retval EFI_SUCCESS Always succeeds.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-UnixSnpDriverBindingStart (\r
- IN EFI_DRIVER_BINDING_PROTOCOL * This,\r
- IN EFI_HANDLE ControllerHandle,\r
- IN EFI_DEVICE_PATH_PROTOCOL * RemainingDevicePath OPTIONAL\r
- );\r
-\r
-/**\r
- Stop this driver on ControllerHandle. This service is called by the\r
- EFI boot service DisconnectController(). In order to\r
- make drivers as small as possible, there are a few calling\r
- restrictions for this service. DisconnectController()\r
- must follow these calling restrictions. If any other agent wishes\r
- to call Stop() it must also follow these calling restrictions.\r
- \r
- @param This Protocol instance pointer.\r
- @param ControllerHandle Handle of device to stop driver on\r
- @param NumberOfChildren Number of Handles in ChildHandleBuffer. If number of\r
- children is zero stop the entire bus driver.\r
- @param ChildHandleBuffer List of Child Handles to Stop.\r
-\r
- @retval EFI_SUCCESS Always succeeds.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-UnixSnpDriverBindingStop (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE ControllerHandle,\r
- IN UINTN NumberOfChildren,\r
- IN EFI_HANDLE *ChildHandleBuffer\r
- );\r
-\r
-#endif // _UNIX_SNP_H_\r