4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** @file
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Definitions related to IPSEC_CONFIG_PROTOCOL implementations.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This program and the accompanying materials
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync are licensed and made available under the terms and conditions of the BSD License
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync which accompanies this distribution. The full text of the license may be found at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync http://opensource.org/licenses/bsd-license.php.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#ifndef _IPSEC_CONFIG_IMPL_H_
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define _IPSEC_CONFIG_IMPL_H_
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Protocol/IpSec.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Protocol/IpSecConfig.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Library/BaseLib.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Library/BaseMemoryLib.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Library/PrintLib.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Library/MemoryAllocationLib.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Library/UefiRuntimeServicesTableLib.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Library/UefiBootServicesTableLib.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Library/DebugLib.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include "IpSecImpl.h"
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_IPSEC_ANY_PROTOCOL 0xFFFF
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_IPSEC_ANY_PORT 0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define IPSEC_VAR_ITEM_HEADER_LOGO_BIT 0x80
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define IPSEC_VAR_ITEM_HEADER_CONTENT_BIT 0x7F
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define IPSECCONFIG_VARIABLE_NAME L"IpSecConfig"
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define IPSECCONFIG_STATUS_NAME L"IpSecStatus"
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define SIZE_OF_SPD_SELECTOR(x) (UINTN) (sizeof (EFI_IPSEC_SPD_SELECTOR) \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync + sizeof (EFI_IP_ADDRESS_INFO) * ((x)->LocalAddressCount + (x)->RemoteAddressCount))
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define FIX_REF_BUF_ADDR(addr, base) addr = (VOID *) ((UINTN) (addr) - (UINTN) (base))
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define UNFIX_REF_BUF_ADDR(addr, base) addr = (VOID *) ((UINTN) (addr) + (UINTN) (base))
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// The data structure used to store the genernall information of IPsec configuration.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 VariableCount; // the total number of the IPsecConfig variables.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 VariableSize; // The total size of all IpsecConfig variables.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 SingleVariableSize; // The max size of single variable
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} IP_SEC_VARIABLE_INFO;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_IPSEC_CONFIG_SELECTOR *Selector;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VOID *Data;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY List;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} IPSEC_COMMON_POLICY_ENTRY;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 *Ptr;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN Size;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN Capacity;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} IPSEC_VARIABLE_BUFFER;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#pragma pack(1)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Type;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Size;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} IPSEC_VAR_ITEM_HEADER;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#pragma pack()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The prototype of Copy Source Selector to the Destination Selector.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] DstSel Pointer of Destination Selector. It would be
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SPD Selector, or SAD Selector or PAD Selector.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] SrcSel Pointer of Source Selector. It would be
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SPD Selector, or SAD Selector or PAD Selector.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] Size The size of the Destination Selector. If it
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync is not NULL and its value is less than the size of
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Source Selector, the value of Source Selector's
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync size will be passed to the caller by this parameter.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER If the Destination or Source Selector is NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_BUFFER_TOO_SMALL If the input Size is less than size of Source Selector.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Copy Source Selector to the Destination
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Selector successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(*IPSEC_DUPLICATE_SELECTOR) (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT EFI_IPSEC_CONFIG_SELECTOR *DstSel,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *SrcSel,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT UINTN *Size
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync It is prototype of compare two Selectors. The Selector would be SPD Selector,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync or SAD Selector, or PAD selector.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector1 Pointer of the first Selector.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector2 Pointer of the second Selector.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval TRUE These two Selectors have the same value in certain fields.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval FALSE Not all fields have the same value in these two Selectors.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncBOOLEAN
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(*IPSEC_COMPARE_SELECTOR) (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *Selector1,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *Selector2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The prototype of a function to check if the Selector is Zero by its certain fields.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector Pointer of the Selector.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval TRUE If the Selector is Zero.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval FALSE If the Selector is not Zero.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncBOOLEAN
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(*IPSEC_IS_ZERO_SELECTOR) (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *Selector
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The prototype of a function to fix the value of particular members of the Selector.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector Pointer of Selector.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Data Pointer of Data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(*IPSEC_FIX_POLICY_ENTRY) (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *Selector,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN VOID *Data
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync It is prototype function to define a routine function by the caller of IpSecVisitConfigData().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Type A specified IPSEC_CONFIG_DATA_TYPE.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector Points to EFI_IPSEC_CONFIG_SELECTOR to be copied
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync to the buffer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Data Points to data to be copied to the buffer. The
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Data type is related to the Type.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] SelectorSize The size of the Selector.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] DataSize The size of the Data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] Buffer The buffer to store the Selector and Data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Copied the Selector and Data to a buffer successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCES The required system resource could not be allocated.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(*IPSEC_COPY_POLICY_ENTRY) (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_DATA_TYPE Type,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *Selector,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN VOID *Data,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN SelectorSize,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN DataSize,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT VOID *Context
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Set the security policy information for the EFI IPsec driver.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The IPsec configuration data has a unique selector/identifier separately to
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync identify a data entry.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector Pointer to an entry selector on operated
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync configuration data specified by DataType.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync A NULL Selector causes the entire specified-type
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync configuration information to be flushed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Data The data buffer to be set.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Context Pointer to one entry selector that describes
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the expected position the new data entry will
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync be added. If Context is NULL, the new entry will
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync be appended to the end of the database.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER Certain Parameters are not correct. The Parameter
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync requiring a check depends on the Selector type.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCED The required system resource could not be allocated.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The specified configuration data was obtained successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(*IPSEC_SET_POLICY_ENTRY) (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *Selector,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN VOID *Data,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN VOID *Context OPTIONAL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync A prototype function definition to lookup the data entry from IPsec. Return the configuration
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync value of the specified Entry.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector Pointer to an entry selector that is an identifier
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync of the entry.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] DataSize On output, the size of data returned in Data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[out] Data The buffer to return the contents of the IPsec
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync configuration data. The type of the data buffer
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync is associated with the DataType.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The specified configuration data was obtained successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER Data is NULL and *DataSize is not zero.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND The configuration data specified by Selector is not found.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_BUFFER_TOO_SMALL The DataSize is too small for the result. DataSize has been
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync updated with the size needed to complete the request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(*IPSEC_GET_POLICY_ENTRY) (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *Selector,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT UINTN *DataSize,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN VOID *Data
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Compare two SPD Selectors.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Compare two SPD Selector by the fields of LocalAddressCount/RemoteAddressCount/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync NextLayerProtocol/LocalPort/LocalPortRange/RemotePort/RemotePortRange and the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Local Addresses and remote Addresses.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector1 Pointer of the first SPD Selector.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector2 Pointer of the second SPD Selector.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval TRUE These two Selectors have the same value in above fields.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval FALSE Not all of the above fields have the same value in these two Selectors.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncBOOLEAN
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncCompareSpdSelector (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *Selector1,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *Selector2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Visit all IPsec Configurations of specified Type and call the caller defined
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync interface.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] DataType The specified IPsec Config Data Type.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Routine The function caller defined.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Context The data passed to the Routine.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCES The required system resource could not be allocated.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS This function complete successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIpSecVisitConfigData (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_DATA_TYPE DataType,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN IPSEC_COPY_POLICY_ENTRY Routine,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN VOID *Context
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function is the subfunction of the EFIIpSecConfigSetData.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function call IpSecSetVaraible to set the IPsec Configuration into the firmware.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCES The required system resource could not be allocated.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Saved the configration successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval Others Other errors were found while obtaining the variable.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIpSecConfigSave (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Initialize IPsecConfig protocol
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] Private Pointer to IPSEC_PRIVATE_DATA. After this function finish,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the pointer of IPsecConfig Protocol implementation will copy
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync into its IPsecConfig member.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Initialized the IPsecConfig Protocol successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval Others Initializing the IPsecConfig Protocol failed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIpSecConfigInitialize (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT IPSEC_PRIVATE_DATA *Private
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Calculate the entire size of EFI_IPSEC_SPD_DATA, which includes the buffer size pointed
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync by the pointer members.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] SpdData Pointer to a specified EFI_IPSEC_SPD_DATA.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return The entire size of the specified EFI_IPSEC_SPD_DATA.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINTN
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIpSecGetSizeOfEfiSpdData (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_SPD_DATA *SpdData
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Calculate the a entire size of IPSEC_SPD_DATA, which includes the buffer size pointed
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync by the pointer members and the buffer size used by Sa List.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] SpdData Pointer to the specified IPSEC_SPD_DATA.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return The entire size of IPSEC_SPD_DATA.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINTN
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIpSecGetSizeOfSpdData (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN IPSEC_SPD_DATA *SpdData
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Copy Source Process Policy to the Destination Process Policy.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Dst Pointer to the Source Process Policy.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Src Pointer to the Destination Process Policy.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIpSecDuplicateProcessPolicy (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_PROCESS_POLICY *Dst,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_PROCESS_POLICY *Src
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Find if the two SPD Selectors has subordinative.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Compare two SPD Selector by the fields of LocalAddressCount/RemoteAddressCount/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync NextLayerProtocol/LocalPort/LocalPortRange/RemotePort/RemotePortRange and the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Local Addresses and remote Addresses.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector1 Pointer of first SPD Selector.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector2 Pointer of second SPD Selector.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval TRUE The first SPD Selector is subordinate Selector of second SPD Selector.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval FALSE The first SPD Selector is not subordinate Selector of second
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SPD Selector.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncBOOLEAN
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIsSubSpdSelector (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *Selector1,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *Selector2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Compare two SA IDs.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector1 Pointer of the first SA ID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector2 Pointer of the second SA ID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval TRUE This two Selectors have the same SA ID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval FALSE This two Selecotrs don't have the same SA ID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncBOOLEAN
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncCompareSaId (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *Selector1,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *Selector2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Compare two PAD IDs.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector1 Pointer of the first PAD ID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector2 Pointer of the second PAD ID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval TRUE This two Selectors have the same PAD ID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval FALSE This two Selecotrs don't have the same PAD ID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncBOOLEAN
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncComparePadId (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *Selector1,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *Selector2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Check if the SPD Selector is Zero by its LocalAddressCount and RemoteAddressCount
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync fields.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector Pointer of the SPD Selector.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval TRUE If the SPD Selector is Zero.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval FALSE If the SPD Selector is not Zero.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncBOOLEAN
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIsZeroSpdSelector (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *Selector
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Check if the SA ID is Zero by its DestAddress.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector Pointer of the SA ID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval TRUE If the SA ID is Zero.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval FALSE If the SA ID is not Zero.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncBOOLEAN
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIsZeroSaId (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *Selector
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Check if the PAD ID is Zero.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector Pointer of the PAD ID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval TRUE If the PAD ID is Zero.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval FALSE If the PAD ID is not Zero.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncBOOLEAN
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIsZeroPadId (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *Selector
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Copy Source SPD Selector to the Destination SPD Selector.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] DstSel Pointer of Destination SPD Selector.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] SrcSel Pointer of Source SPD Selector.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] Size The size of the Destination SPD Selector. If
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync it is not NULL and its value is less than the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync size of Source SPD Selector, the value of
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Source SPD Selector's size will be passed to
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the caller by this parameter.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER If the Destination or Source SPD Selector is NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_BUFFER_TOO_SMALL If the input Size is less than size of Source SPD Selector.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Copy Source SPD Selector to the Destination SPD
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Selector successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncDuplicateSpdSelector (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT EFI_IPSEC_CONFIG_SELECTOR *DstSel,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *SrcSel,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT UINTN *Size
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Copy Source SA ID to the Destination SA ID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] DstSel Pointer of the Destination SA ID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] SrcSel Pointer of the Source SA ID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] Size The size of the Destination SA ID. If it
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync not NULL, and its value is less than the size of
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Source SA ID, the value of Source SA ID's size
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync will be passed to the caller by this parameter.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER If the Destination or Source SA ID is NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_BUFFER_TOO_SMALL If the input Size less than size of source SA ID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Copied Source SA ID to the Destination SA ID successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncDuplicateSaId (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT EFI_IPSEC_CONFIG_SELECTOR *DstSel,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *SrcSel,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT UINTN *Size
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Copy Source PAD ID to the Destination PAD ID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] DstSel Pointer of Destination PAD ID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] SrcSel Pointer of Source PAD ID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] Size The size of the Destination PAD ID. If it
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync not NULL, and its value less than the size of
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Source PAD ID, the value of Source PAD ID's size
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync will be passed to the caller by this parameter.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER If the Destination or Source PAD ID is NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_BUFFER_TOO_SMALL If the input Size less than size of source PAD ID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Copied Source PAD ID to the Destination PAD ID successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncDuplicatePadId (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT EFI_IPSEC_CONFIG_SELECTOR *DstSel,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *SrcSel,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT UINTN *Size
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Fix the value of some members of the SPD Selector.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function is called by IpSecCopyPolicyEntry(), which copies the Policy
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Entry into the Variable. Since some members in SPD Selector are pointers,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync a physical address to relative address conversion is required before copying
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync this SPD entry into the variable.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector Pointer of SPD Selector.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] Data Pointer of SPD Data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncFixSpdEntry (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_SPD_SELECTOR *Selector,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT EFI_IPSEC_SPD_DATA *Data
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Fix the value of some members of SA ID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function is called by IpSecCopyPolicyEntry(), which copies the Policy
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Entry into the Variable. Since some members in SA ID are pointers,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync a physical address to relative address conversion is required before copying
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync this SAD into the variable.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] SaId Pointer of SA ID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] Data Pointer of SA Data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncFixSadEntry (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_SA_ID *SaId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT EFI_IPSEC_SA_DATA2 *Data
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Fix the value of some members of PAD ID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function is called by IpSecCopyPolicyEntry(), which copy the Policy
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Entry into the Variable. Since some members in PAD ID are pointers,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync a physical address to relative address conversion is required before copying
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync this PAD into the variable.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] PadId Pointer of PAD ID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] Data Pointer of PAD Data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncFixPadEntry (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_PAD_ID *PadId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT EFI_IPSEC_PAD_DATA *Data
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Recover the value of some members of SPD Selector.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function is corresponding to FixSpdEntry(). It recovers the value of members
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync of SPD Selector which fix by the FixSpdEntry().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] Selector Pointer of SPD Selector.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] Data Pointer of SPD Data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUnfixSpdEntry (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT EFI_IPSEC_SPD_SELECTOR *Selector,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT EFI_IPSEC_SPD_DATA *Data
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Recover the value of some members of SA ID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function is corresponding to FixSadEntry(). It recovers the value of members
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync of SAD ID which fix by the FixSadEntry().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] SaId Pointer of SAD ID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] Data Pointer of SAD Data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUnfixSadEntry (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT EFI_IPSEC_SA_ID *SaId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT EFI_IPSEC_SA_DATA2 *Data
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Recover the value of some members of PAD ID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function is corresponding to FixPadEntry(). It recovers the value of members
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync of PAD ID which fix by the FixPadEntry().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] PadId Pointer of PAD ID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] Data Pointer of PAD Data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUnfixPadEntry (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_PAD_ID *PadId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT EFI_IPSEC_PAD_DATA *Data
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Set the security policy information for the EFI IPsec driver.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The IPsec configuration data has a unique selector/identifier separately to
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync identify a data entry.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector Pointer to an entry selector on operated
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync configuration data specified by DataType.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync A NULL Selector causes the entire specified-type
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync configuration information to be flushed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Data The data buffer to be set. The structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync of the data buffer should be EFI_IPSEC_SPD_DATA.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Context Pointer to one entry selector that describes
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the expected position the new data entry will
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync be added. If Context is NULL,the new entry will
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync be appended the end of database.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER One or more of the following are TRUE:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync - Selector is not NULL and its LocalAddress
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync is NULL or its RemoteAddress is NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync - Data is not NULL, its Action is Protected,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync and its policy is NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync - Data is not NULL and its Action is not protected
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync and its policy is not NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync - The Action of Data is Protected, its policy
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync mode is Tunnel, and its tunnel option is NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync - The Action of Data is protected, its policy
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync mode is not Tunnel, and it tunnel option is not NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCED The required system resource could not be allocated.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The specified configuration data was obtained successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncSetSpdEntry (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *Selector,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN VOID *Data,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN VOID *Context OPTIONAL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Set the security association information for the EFI IPsec driver.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The IPsec configuration data has a unique selector/identifier separately to
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync identify a data entry.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector Pointer to an entry selector on operated
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync configuration data specified by DataType.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync A NULL Selector causes the entire specified-type
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync configuration information to be flushed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Data The data buffer to be set. The structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync of the data buffer should be EFI_IPSEC_SA_DATA.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Context Pointer to one entry selector which describes
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the expected position the new data entry will
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync be added. If Context is NULL,the new entry will
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync be appended to the end of database.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCED The required system resource could not be allocated.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The specified configuration data was obtained successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncSetSadEntry (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *Selector,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN VOID *Data,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN VOID *Context OPTIONAL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Set the peer authorization configuration information for the EFI IPsec driver.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The IPsec configuration data has a unique selector/identifier separately to
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync identify a data entry.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector Pointer to an entry selector on operated
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync configuration data specified by DataType.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync A NULL Selector causes the entire specified-type
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync configuration information to be flushed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Data The data buffer to be set. The structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync of the data buffer should be EFI_IPSEC_PAD_DATA.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Context Pointer to one entry selector that describes
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the expected position where the new data entry will
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync be added. If Context is NULL, the new entry will
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync be appended the end of database.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCED The required system resource could not be allocated.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The specified configuration data was obtained successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncSetPadEntry (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *Selector,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN VOID *Data,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN VOID *Context OPTIONAL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function looks up the data entry from IPsec SPD, and returns the configuration
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync value of the specified SPD Entry.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector Pointer to an entry selector which is an identifier
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync of the SPD entry.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] DataSize On output the size of data returned in Data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[out] Data The buffer to return the contents of the IPsec
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync configuration data. The type of the data buffer
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync is associated with the DataType.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The specified configuration data was obtained successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER Data is NULL and *DataSize is not zero.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND The configuration data specified by Selector is not found.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_BUFFER_TOO_SMALL The DataSize is too small for the result. DataSize has been
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync updated with the size needed to complete the request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncGetSpdEntry (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *Selector,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT UINTN *DataSize,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT VOID *Data
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function looks up the data entry from IPsec SAD and returns the configuration
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync value of the specified SAD Entry.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector Pointer to an entry selector that is an identifier
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync of the SAD entry.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] DataSize On output, the size of data returned in Data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[out] Data The buffer to return the contents of the IPsec
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync configuration data. This type of the data buffer
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync is associated with the DataType.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The specified configuration data was obtained successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND The configuration data specified by Selector is not found.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_BUFFER_TOO_SMALL The DataSize is too small for the result. DataSize has been
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync updated with the size needed to complete the request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncGetSadEntry (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *Selector,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT UINTN *DataSize,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT VOID *Data
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function looks up the data entry from IPsec PADand returns the configuration
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync value of the specified PAD Entry.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector Pointer to an entry selector that is an identifier
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync of the PAD entry.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] DataSize On output the size of data returned in Data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[out] Data The buffer to return the contents of the IPsec
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync configuration data. This type of the data buffer
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync is associated with the DataType.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The specified configuration data was obtained successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND The configuration data specified by Selector is not found.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_BUFFER_TOO_SMALL The DataSize is too small for the result. DataSize has been
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync updated with the size needed to complete the request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncGetPadEntry (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *Selector,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT UINTN *DataSize,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT VOID *Data
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Return the configuration value for the EFI IPsec driver.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function lookup the data entry from IPsec database or IKEv2 configuration
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync information. The expected data type and unique identification are described in
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync DataType and Selector parameters.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] This Pointer to the EFI_IPSEC_CONFIG_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] DataType The type of data to retrieve.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector Pointer to an entry selector that is an identifier of the IPsec
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync configuration data entry.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] DataSize On output the size of data returned in Data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[out] Data The buffer to return the contents of the IPsec configuration data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The type of the data buffer is associated with the DataType.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The specified configuration data was obtained successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER One or more of the followings are TRUE:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync - This is NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync - Selector is NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync - DataSize is NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync - Data is NULL and *DataSize is not zero
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND The configuration data specified by Selector is not found.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_UNSUPPORTED The specified DataType is not supported.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_BUFFER_TOO_SMALL The DataSize is too small for the result. DataSize has been
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync updated with the size needed to complete the request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEfiIpSecConfigGetData (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_DATA_TYPE DataType,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *Selector,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT UINTN *DataSize,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT VOID *Data
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Set the security association, security policy and peer authorization configuration
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync information for the EFI IPsec driver.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function is used to set the IPsec configuration information of type DataType for
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the EFI IPsec driver.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The IPsec configuration data has a unique selector/identifier separately to identify
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync a data entry. The selector structure depends on DataType's definition.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Using SetData() with a Data of NULL causes the IPsec configuration data entry identified
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync by DataType and Selector to be deleted.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] This Pointer to the EFI_IPSEC_CONFIG_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] DataType The type of data to be set.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Selector Pointer to an entry selector on operated configuration data
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync specified by DataType. A NULL Selector causes the entire
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync specified-type configuration information to be flushed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Data The data buffer to be set. The structure of the data buffer is
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync associated with the DataType.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] InsertBefore Pointer to one entry selector which describes the expected
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync position the new data entry will be added. If InsertBefore is NULL,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the new entry will be appended the end of database.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The specified configuration entry data was set successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER One or more of the following are TRUE:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync - This is NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_UNSUPPORTED The specified DataType is not supported.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCED The required system resource could not be allocated.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEfiIpSecConfigSetData (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_DATA_TYPE DataType,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *Selector,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN VOID *Data,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_SELECTOR *InsertBefore OPTIONAL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Enumerates the current selector for IPsec configuration data entry.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function is called multiple times to retrieve the entry Selector in IPsec
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync configuration database. On each call to GetNextSelector(), the next entry
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Selector are retrieved into the output interface.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If the entire IPsec configuration database has been iterated, the error
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_NOT_FOUND is returned.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If the Selector buffer is too small for the next Selector copy, an
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_BUFFER_TOO_SMALL error is returned, and SelectorSize is updated to reflect
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the size of buffer needed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync On the initial call to GetNextSelector() to start the IPsec configuration database
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync search, a pointer to the buffer with all zero value is passed in Selector. Calls
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync to SetData() between calls to GetNextSelector may produce unpredictable results.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] This Pointer to the EFI_IPSEC_CONFIG_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] DataType The type of IPsec configuration data to retrieve.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] SelectorSize The size of the Selector buffer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] Selector On input, supplies the pointer to last Selector that was
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync returned by GetNextSelector().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync On output, returns one copy of the current entry Selector
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync of a given DataType.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The specified configuration data was obtained successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER One or more of the followings are TRUE:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync - This is NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync - SelectorSize is NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync - Selector is NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND The next configuration data entry was not found.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_UNSUPPORTED The specified DataType is not supported.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_BUFFER_TOO_SMALL The SelectorSize is too small for the result. This parameter
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync has been updated with the size needed to complete the search
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEfiIpSecConfigGetNextSelector (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_DATA_TYPE DataType,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT UINTN *SelectorSize,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT EFI_IPSEC_CONFIG_SELECTOR *Selector
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Register an event that is to be signaled whenever a configuration process on the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync specified IPsec configuration information is done.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The register function is not surpport now and always returns EFI_UNSUPPORTED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] This Pointer to the EFI_IPSEC_CONFIG_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] DataType The type of data to be registered the event for.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Event The event to be registered.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The event is registered successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER This is NULL, or Event is NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_ACCESS_DENIED The Event is already registered for the DataType.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_UNSUPPORTED The notify registration unsupported, or the specified
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync DataType is not supported.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEfiIpSecConfigRegisterNotify (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_DATA_TYPE DataType,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_EVENT Event
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Remove the specified event that was previously registered on the specified IPsec
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync configuration data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function is not supported now and always returns EFI_UNSUPPORTED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] This Pointer to the EFI_IPSEC_CONFIG_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] DataType The configuration data type to remove the registered event for.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Event The event to be unregistered.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The event was removed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND The Event specified by DataType could not be found in the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync database.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER This is NULL or Event is NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_UNSUPPORTED The notify registration unsupported or the specified
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync DataType is not supported.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEfiIpSecConfigUnregisterNotify (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IPSEC_CONFIG_DATA_TYPE DataType,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_EVENT Event
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern LIST_ENTRY mConfigData[IPsecConfigDataTypeMaximum];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#endif