/** @file Copyright (c) 2016 Socionext Inc. All rights reserved.
Copyright (c) 2017, Linaro, Ltd. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. **/ #ifndef __NETSEC_DXE_H_ #define __NETSEC_DXE_H_ #include #include #include #include #include #include #include #include #include #include #include "netsec_for_uefi/netsec_sdk/include/ogma_api.h" #include "netsec_for_uefi/pfdep.h" extern EFI_COMPONENT_NAME2_PROTOCOL gNetsecDriverComponentName2; /*--------------- Simple Network Driver entry point functions ----------------*/ // Refer to the Simple Network Protocol section (21.1) // in the UEFI 2.3.1 Specification for documentation. #define ReturnUnlock(s) do { Status = (s); goto ExitUnlock; } while (0) /*------------------------------------------------------------------------------ NETSEC Information Structure ------------------------------------------------------------------------------*/ #pragma pack(1) typedef struct { MAC_ADDR_DEVICE_PATH Netsec; EFI_DEVICE_PATH_PROTOCOL End; } NETSEC_DEVICE_PATH; #pragma pack() typedef struct { // Driver signature UINT32 Signature; EFI_HANDLE ControllerHandle; // EFI SNP protocol instances EFI_SIMPLE_NETWORK_PROTOCOL Snp; EFI_SIMPLE_NETWORK_MODE SnpMode; // EFI Snp statistics instance EFI_NETWORK_STATISTICS Stats; // ogma handle ogma_handle_t Handle; // List of submitted TX buffers LIST_ENTRY TxBufferList; EFI_EVENT ExitBootEvent; NON_DISCOVERABLE_DEVICE *Dev; NETSEC_DEVICE_PATH DevicePath; UINTN PhyAddress; } NETSEC_DRIVER; #define NETSEC_SIGNATURE SIGNATURE_32('n', 't', 's', 'c') #define INSTANCE_FROM_SNP_THIS(a) CR((a), NETSEC_DRIVER, Snp, NETSEC_SIGNATURE) /*------------------------------------------------------------------------------ ------------------------------------------------------------------------------*/ EFI_STATUS NetsecInit ( IN EFI_HANDLE DriverBindingHandle, IN EFI_HANDLE ControllerHandle ); EFI_STATUS NetsecRelease ( IN EFI_HANDLE DriverBindingHandle, IN EFI_HANDLE ControllerHandle ); #define MAC_ADDRESS 0x00 #define HM_ME_ADDRESS_H 0x08 #define HM_ME_ADDRESS_L 0x0C #define HM_ME_SIZE 0x10 #define MH_ME_ADDRESS_H 0x14 #define MH_ME_ADDRESS_L 0x18 #define MH_ME_SIZE 0x1C #define PACKET_ME_ADDRESS 0x20 #define PACKET_ME_SIZE 0x24 #define SCAT_NUM 1 #define RXINT_TMR_CNT_US 0 #define RXINT_PKTCNT 1 #endif