]> git.proxmox.com Git - mirror_edk2.git/blob - Tools/Source/TianoTools/Common/PeiLib/Ipf/efijump.h
Add <FrameworkModules> in EdkModulePkg-All-Archs.fpd and MdePkg-All-Archs.fpd file...
[mirror_edk2.git] / Tools / Source / TianoTools / Common / PeiLib / Ipf / efijump.h
1 /*++
2
3 Copyright (c) 2004, Intel Corporation
4 All rights reserved. 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 EfiJump.h
15
16 Abstract:
17
18 This is the Setjump/Longjump pair for an IA32 processor.
19
20 --*/
21
22 #ifndef _EFI_JUMP_H_
23 #define _EFI_JUMP_H_
24
25 #include EFI_GUID_DEFINITION (PeiTransferControl)
26
27 //
28 // NOTE:Set/LongJump needs to have this buffer start
29 // at 16 byte boundary. Either fix the structure
30 // which call this buffer or fix inside SetJump/LongJump
31 // Choosing 1K buffer storage for now
32 //
33 typedef struct {
34 CHAR8 Buffer[1024];
35 } EFI_JUMP_BUFFER;
36
37 EFI_STATUS
38 SetJump (
39 IN EFI_PEI_TRANSFER_CONTROL_PROTOCOL *This,
40 IN EFI_JUMP_BUFFER *Jump
41 )
42 /*++
43
44 Routine Description:
45
46 SetJump stores the current register set in the area pointed to
47 by "save". It returns zero. Subsequent calls to "LongJump" will
48 restore the registers and return non-zero to the same location.
49 On entry, r32 contains the pointer to the jmp_buffer
50
51 Arguments:
52
53 This - Calling context
54 Jump - Jump buffer
55
56 Returns:
57
58 Status code
59
60 --*/
61 ;
62
63 EFI_STATUS
64 LongJump (
65 IN EFI_PEI_TRANSFER_CONTROL_PROTOCOL *This,
66 IN EFI_JUMP_BUFFER *Jump
67 )
68 /*++
69
70 Routine Description:
71
72 LongJump initializes the register set to the values saved by a
73 previous 'SetJump' and jumps to the return location saved by that
74 'SetJump'. This has the effect of unwinding the stack and returning
75 for a second time to the 'SetJump'.
76
77 Arguments:
78
79 This - Calling context
80 Jump - Jump buffer
81
82 Returns:
83
84 Status code
85
86 --*/
87 ;
88
89 VOID
90 RtPioICacheFlush (
91 IN VOID *StartAddress,
92 IN UINTN SizeInBytes
93 )
94 /*++
95
96 Routine Description:
97
98 Flushing the CPU instruction cache.
99
100 Arguments:
101
102 StartAddress - Start address to flush
103 SizeInBytes - Length in bytes to flush
104
105 Returns:
106
107 None
108
109 --*/
110 ;
111
112 #endif