1 /*++
2 
3 Copyright (c) 2004, 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 Module Name:
13 
14   PeiTransferControl.h
15 
16 Abstract:
17 
18   GUID for the SetJump()/LongJump() APIs shared between PEI and DXE
19 
20 --*/
21 
22 #ifndef _PEI_TRANSFER_CONTROL_H_
23 #define _PEI_TRANSFER_CONTROL_H_
24 
25 #define EFI_PEI_TRANSFER_CONTROL_GUID  \
26   { 0xd8117d02, 0x94a6, 0x11d4, {0x9a, 0x3a, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
27 
28 
29 EFI_FORWARD_DECLARATION (EFI_PEI_TRANSFER_CONTROL_PROTOCOL);
30 
31 typedef
32 EFI_STATUS
33 (EFIAPI *EFI_PEI_TRANSFER_CONTROL_SET_JUMP) (
34   IN EFI_PEI_TRANSFER_CONTROL_PROTOCOL  *This,
35   OUT VOID                                      *Context
36   );
37 
38 typedef
39 EFI_STATUS
40 (EFIAPI *EFI_PEI_TRANSFER_CONTROL_LONG_JUMP) (
41   IN EFI_PEI_TRANSFER_CONTROL_PROTOCOL  *This,
42   IN VOID                                       *Context
43   );
44 
45 struct _EFI_PEI_TRANSFER_CONTROL_PROTOCOL {
46   EFI_PEI_TRANSFER_CONTROL_SET_JUMP    SetJump;
47   EFI_PEI_TRANSFER_CONTROL_LONG_JUMP   LongJump;
48   UINT32                               JumpContextSize;
49 };
50 
51 extern EFI_GUID gEfiPeiTransferControlGuid;
52 
53 #endif
54