/**
**/
/**
Copyright (c) 2011 - 2014, Intel Corporation. All rights reserved
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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.
@file
PchReset.h
@brief
PCH Reset Protocol
**/
#ifndef _PCH_RESET_H_
#define _PCH_RESET_H_
//
#define PCH_RESET_PROTOCOL_GUID \
{ \
0xdb63592c, 0xb8cc, 0x44c8, 0x91, 0x8c, 0x51, 0xf5, 0x34, 0x59, 0x8a, 0x5a \
}
#define PCH_RESET_CALLBACK_PROTOCOL_GUID \
{ \
0x3a3300ab, 0xc929, 0x487d, 0xab, 0x34, 0x15, 0x9b, 0xc1, 0x35, 0x62, 0xc0 \
}
extern EFI_GUID gPchResetProtocolGuid;
extern EFI_GUID gPchResetCallbackProtocolGuid;
///
/// Forward reference for ANSI C compatibility
///
typedef struct _PCH_RESET_PROTOCOL PCH_RESET_PROTOCOL;
typedef struct _PCH_RESET_CALLBACK_PROTOCOL PCH_RESET_CALLBACK_PROTOCOL;
///
/// Related Definitions
///
///
/// PCH Reset Types
///
typedef enum {
ColdReset,
WarmReset,
ShutdownReset,
PowerCycleReset,
GlobalReset,
GlobalResetWithEc
} PCH_RESET_TYPE;
///
/// Member functions
///
typedef
EFI_STATUS
(EFIAPI *PCH_RESET) (
IN PCH_RESET_PROTOCOL * This,
IN PCH_RESET_TYPE PchResetType
)
/**
@brief
Execute Pch Reset from the host controller.
@param[in] This Pointer to the PCH_RESET_PROTOCOL instance.
@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.
**/
;
typedef
EFI_STATUS
(EFIAPI *PCH_RESET_CALLBACK) (
IN PCH_RESET_TYPE PchResetType
)
/**
@brief
Execute call back function for Pch Reset.
@param[in] PchResetType Pch Reset Types which includes PowerCycle, Globalreset.
@retval EFI_SUCCESS The callback function has been done successfully
@retval EFI_NOT_FOUND Failed to find Pch Reset Callback protocol. Or, none of
callback protocol is installed.
@retval Others Do not do any reset from PCH
**/
;
///
/// Interface structure for the Pch Reset Protocol
///
struct _PCH_RESET_PROTOCOL {
PCH_RESET Reset;
};
///
/// PCH_RESET_CALLBACK_PROTOCOL Structure Definition
///
struct _PCH_RESET_CALLBACK_PROTOCOL {
PCH_RESET_CALLBACK ResetCallback;
};
#endif