Home | History | Annotate | Download | only in Protocol
      1 /**
      2 **/
      3 /**
      4 
      5 Copyright (c) 2011  - 2014, Intel Corporation. All rights reserved
      6 
      7   This program and the accompanying materials are licensed and made available under
      8   the terms and conditions of the BSD License that accompanies this distribution.
      9   The full text of the license may be found at
     10   http://opensource.org/licenses/bsd-license.php.
     11 
     12   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     13   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     14 
     15 
     16 
     17   @file
     18   PchReset.h
     19 
     20   @brief
     21   PCH Reset Protocol
     22 
     23 **/
     24 #ifndef _PCH_RESET_H_
     25 #define _PCH_RESET_H_
     26 
     27 
     28 //
     29 #define PCH_RESET_PROTOCOL_GUID \
     30   { \
     31     0xdb63592c, 0xb8cc, 0x44c8, 0x91, 0x8c, 0x51, 0xf5, 0x34, 0x59, 0x8a, 0x5a \
     32   }
     33 #define PCH_RESET_CALLBACK_PROTOCOL_GUID \
     34   { \
     35     0x3a3300ab, 0xc929, 0x487d, 0xab, 0x34, 0x15, 0x9b, 0xc1, 0x35, 0x62, 0xc0 \
     36   }
     37 extern EFI_GUID                             gPchResetProtocolGuid;
     38 extern EFI_GUID                             gPchResetCallbackProtocolGuid;
     39 
     40 ///
     41 /// Forward reference for ANSI C compatibility
     42 ///
     43 typedef struct _PCH_RESET_PROTOCOL          PCH_RESET_PROTOCOL;
     44 
     45 typedef struct _PCH_RESET_CALLBACK_PROTOCOL PCH_RESET_CALLBACK_PROTOCOL;
     46 
     47 ///
     48 /// Related Definitions
     49 ///
     50 ///
     51 /// PCH Reset Types
     52 ///
     53 typedef enum {
     54   ColdReset,
     55   WarmReset,
     56   ShutdownReset,
     57   PowerCycleReset,
     58   GlobalReset,
     59   GlobalResetWithEc
     60 } PCH_RESET_TYPE;
     61 
     62 ///
     63 /// Member functions
     64 ///
     65 typedef
     66 EFI_STATUS
     67 (EFIAPI *PCH_RESET) (
     68   IN     PCH_RESET_PROTOCOL       * This,
     69   IN     PCH_RESET_TYPE           PchResetType
     70   )
     71 /**
     72 
     73   @brief
     74   Execute Pch Reset from the host controller.
     75 
     76   @param[in] This                 Pointer to the PCH_RESET_PROTOCOL instance.
     77   @param[in] PchResetType         Pch Reset Types which includes ColdReset, WarmReset, ShutdownReset,
     78                                   PowerCycleReset, GlobalReset, GlobalResetWithEc
     79 
     80   @retval EFI_SUCCESS             Successfully completed.
     81   @retval EFI_INVALID_PARAMETER   If ResetType is invalid.
     82 
     83 **/
     84 ;
     85 
     86 typedef
     87 EFI_STATUS
     88 (EFIAPI *PCH_RESET_CALLBACK) (
     89   IN     PCH_RESET_TYPE           PchResetType
     90   )
     91 /**
     92 
     93   @brief
     94   Execute call back function for Pch Reset.
     95 
     96   @param[in] PchResetType         Pch Reset Types which includes PowerCycle, Globalreset.
     97 
     98   @retval EFI_SUCCESS             The callback function has been done successfully
     99   @retval EFI_NOT_FOUND           Failed to find Pch Reset Callback protocol. Or, none of
    100                                   callback protocol is installed.
    101   @retval Others                  Do not do any reset from PCH
    102 
    103 **/
    104 ;
    105 
    106 ///
    107 /// Interface structure for the Pch Reset Protocol
    108 ///
    109 struct _PCH_RESET_PROTOCOL {
    110   PCH_RESET Reset;
    111 };
    112 
    113 ///
    114 /// PCH_RESET_CALLBACK_PROTOCOL Structure Definition
    115 ///
    116 struct _PCH_RESET_CALLBACK_PROTOCOL {
    117   PCH_RESET_CALLBACK  ResetCallback;
    118 };
    119 
    120 #endif
    121