Home | History | Annotate | Download | only in DxeHstiLib
      1 /** @file
      2 
      3   Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
      4   This program and the accompanying materials
      5   are licensed and made available under the terms and conditions of the BSD License
      6   which accompanies this distribution.  The full text of the license may be found at
      7   http://opensource.org/licenses/bsd-license.php
      8 
      9   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     10   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     11 
     12 **/
     13 
     14 #ifndef _HSTI_DXE_H_
     15 #define _HSTI_DXE_H_
     16 
     17 #include <PiDxe.h>
     18 #include <Library/BaseLib.h>
     19 #include <Library/BaseMemoryLib.h>
     20 #include <Library/MemoryAllocationLib.h>
     21 #include <Library/UefiBootServicesTableLib.h>
     22 #include <Library/DebugLib.h>
     23 
     24 #include <IndustryStandard/Hsti.h>
     25 
     26 #include <Protocol/AdapterInformation.h>
     27 
     28 #define HSTI_AIP_PRIVATE_SIGNATURE  SIGNATURE_32('H', 'S', 'T', 'I')
     29 
     30 typedef struct {
     31   UINT32                            Signature;
     32   LIST_ENTRY                        Link;
     33   EFI_ADAPTER_INFORMATION_PROTOCOL  Aip;
     34   VOID                              *Hsti;
     35   UINTN                             HstiSize;
     36   UINTN                             HstiMaxSize;
     37 } HSTI_AIP_PRIVATE_DATA;
     38 
     39 #define HSTI_AIP_PRIVATE_DATA_FROM_THIS(a) \
     40   CR (a, \
     41       HSTI_AIP_PRIVATE_DATA, \
     42       Aip, \
     43       HSTI_AIP_PRIVATE_SIGNATURE \
     44       )
     45 
     46 #define HSTI_DEFAULT_ERROR_STRING_LEN  255
     47 
     48 extern EFI_ADAPTER_INFORMATION_PROTOCOL mAdapterInformationProtocol;
     49 
     50 /**
     51   Return if input HSTI data follows HSTI specification.
     52 
     53   @param HstiData  HSTI data
     54   @param HstiSize  HSTI size
     55 
     56   @retval TRUE  HSTI data follows HSTI specification.
     57   @retval FALSE HSTI data does not follow HSTI specification.
     58 **/
     59 BOOLEAN
     60 InternalHstiIsValidTable (
     61   IN VOID                     *HstiData,
     62   IN UINTN                    HstiSize
     63   );
     64 
     65 #endif