/** @file Copyright (c) 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _PCH_RESET_COMMON_LIB_H_ #define _PCH_RESET_COMMON_LIB_H_ #include #include /// /// Private data structure definitions for the driver /// #define PCH_RESET_SIGNATURE SIGNATURE_32 ('I', 'E', 'R', 'S') typedef struct { UINT32 Signature; EFI_HANDLE Handle; union { PCH_RESET_PPI PchResetPpi; PCH_RESET_PROTOCOL PchResetProtocol; }PchResetInterface; UINT32 PchPwrmBase; UINT16 PchAcpiBase; UINTN PchPmcBase; } PCH_RESET_INSTANCE; // // Function prototypes used by the Pch Reset ppi/protocol. // /** Initialize an Pch Reset ppi/protocol instance. @param[in] PchResetInstance Pointer to PchResetInstance to initialize @retval EFI_SUCCESS The protocol instance was properly initialized @exception EFI_UNSUPPORTED The PCH is not supported by this module **/ EFI_STATUS PchResetConstructor ( PCH_RESET_INSTANCE *PchResetInstance ); /** Execute Pch Reset from the host controller. @param[in] PchResetInstance Pointer to PchResetInstance to initialize @param[in] PchResetType Pch Reset Types which includes ColdReset, WarmReset, ShutdownReset, PowerCycleReset, GlobalReset, GlobalResetWithEc @retval EFI_SUCCESS Successfully completed. @retval EFI_INVALID_PARAMETER If ResetType is invalid. **/ EFI_STATUS PchReset ( IN PCH_RESET_INSTANCE *PchResetInstance, IN PCH_RESET_TYPE PchResetType ); #endif