/** @file This provides a versatile abstraction for the SiliconPolicyInitLib library interface. This defines the typedef necessary for PPI and protocol use. This defines structs for PPI and protocol production and consumption. There is a single GUID defining both PPI and protocol. Copyright (c) 2017 - 2021, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _SILICON_POLICY_INIT_LIB_INTERFACE_H_ #define _SILICON_POLICY_INIT_LIB_INTERFACE_H_ #include // // All interface declarations should refer to the SiliconPolicyInitLib for description of functionality // typedef VOID * (EFIAPI *PEI_SILICON_POLICY_INIT_PRE_MEM) ( IN OUT VOID *Policy OPTIONAL ); typedef RETURN_STATUS (EFIAPI *PEI_SILICON_POLICY_DONE_PRE_MEM) ( IN VOID *Policy ); typedef VOID * (EFIAPI *PEI_SILICON_POLICY_INIT_POST_MEM) ( IN OUT VOID *Policy OPTIONAL ); typedef RETURN_STATUS (EFIAPI *PEI_SILICON_POLICY_DONE_POST_MEM) ( IN VOID *Policy ); typedef VOID * (EFIAPI *PEI_SILICON_POLICY_INIT_LATE) ( IN OUT VOID *Policy OPTIONAL ); typedef RETURN_STATUS (EFIAPI *PEI_SILICON_POLICY_DONE_LATE) ( IN VOID *Policy ); // // PPI structure declaration // typedef struct { PEI_SILICON_POLICY_INIT_PRE_MEM SiliconPolicyInitPreMem; PEI_SILICON_POLICY_DONE_PRE_MEM SiliconPolicyDonePreMem; PEI_SILICON_POLICY_INIT_POST_MEM SiliconPolicyInitPostMem; PEI_SILICON_POLICY_DONE_POST_MEM SiliconPolicyDonePostMem; } SILICON_POLICY_INIT_LIB_PPI; // // Protocol structure declaration // typedef struct { PEI_SILICON_POLICY_INIT_LATE SiliconPolicyInitLate; PEI_SILICON_POLICY_DONE_LATE SiliconPolicyDoneLate; } SILICON_POLICY_INIT_LIB_PROTOCOL; extern EFI_GUID gSiliconPolicyInitLibInterfaceGuid; #endif // _SILICON_POLICY_INIT_LIB_INTERFACE_H_