fa2f81c08886cf30e9dbb91e49e79e6bf830ae6b
[mirror_edk2.git] / IntelFspPkg / Include / Library / FspCommonLib.h
1 /** @file
2
3 Copyright (c) 2014 - 2015, 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 **/
13
14 #ifndef _FSP_COMMON_LIB_H_
15 #define _FSP_COMMON_LIB_H_
16
17 #include <FspGlobalData.h>
18 #include <FspMeasurePointId.h>
19
20 /**
21 This function sets the FSP global data pointer.
22
23 @param[in] FspData Fsp global data pointer.
24
25 **/
26 VOID
27 EFIAPI
28 SetFspGlobalDataPointer (
29 IN FSP_GLOBAL_DATA *FspData
30 );
31
32 /**
33 This function gets the FSP global data pointer.
34
35 **/
36 FSP_GLOBAL_DATA *
37 EFIAPI
38 GetFspGlobalDataPointer (
39 VOID
40 );
41
42 /**
43 This function gets back the FSP API paramter passed by the bootlaoder.
44
45 @retval ApiParameter FSP API paramter passed by the bootlaoder.
46 **/
47 UINT32
48 EFIAPI
49 GetFspApiParameter (
50 VOID
51 );
52
53 /**
54 This function sets the FSP API paramter in the stack.
55
56 @param[in] Value New parameter value.
57
58 **/
59 VOID
60 EFIAPI
61 SetFspApiParameter (
62 IN UINT32 Value
63 );
64
65 /**
66 This function sets the FSP continuation function parameters in the stack.
67
68 @param[in] Value New parameter value to set.
69 @param[in] Index Parameter index.
70 **/
71 VOID
72 EFIAPI
73 SetFspContinuationFuncParameter (
74 IN UINT32 Value,
75 IN UINT32 Index
76 );
77
78 /**
79 This function changes the BootLoader return address in stack.
80
81 @param[in] ReturnAddress Address to return.
82
83 **/
84 VOID
85 EFIAPI
86 SetFspApiReturnAddress (
87 IN UINT32 ReturnAddress
88 );
89
90 /**
91 This function set the API status code returned to the BootLoader.
92
93 @param[in] ReturnStatus Status code to return.
94
95 **/
96 VOID
97 EFIAPI
98 SetFspApiReturnStatus (
99 IN UINT32 ReturnStatus
100 );
101
102 /**
103 This function sets the context switching stack to a new stack frame.
104
105 @param[in] NewStackTop New core stack to be set.
106
107 **/
108 VOID
109 EFIAPI
110 SetFspCoreStackPointer (
111 IN VOID *NewStackTop
112 );
113
114 /**
115 This function sets the platform specific data pointer.
116
117 @param[in] PlatformData Fsp platform specific data pointer.
118
119 **/
120 VOID
121 EFIAPI
122 SetFspPlatformDataPointer (
123 IN VOID *PlatformData
124 );
125
126 /**
127 This function gets the platform specific data pointer.
128
129 @param[in] PlatformData Fsp platform specific data pointer.
130
131 **/
132 VOID *
133 EFIAPI
134 GetFspPlatformDataPointer (
135 VOID
136 );
137
138 /**
139 This function sets the UPD data pointer.
140
141 @param[in] UpdDataRgnPtr UPD data pointer.
142 **/
143 VOID
144 EFIAPI
145 SetFspUpdDataPointer (
146 IN VOID *UpdDataRgnPtr
147 );
148
149 /**
150 This function gets the UPD data pointer.
151
152 @return UpdDataRgnPtr UPD data pointer.
153 **/
154 VOID *
155 EFIAPI
156 GetFspUpdDataPointer (
157 VOID
158 );
159
160 /**
161 This function sets the memory init UPD data pointer.
162
163 @param[in] MemoryInitUpdPtr memory init UPD data pointer.
164 **/
165 VOID
166 EFIAPI
167 SetFspMemoryInitUpdDataPointer (
168 IN VOID *MemoryInitUpdPtr
169 );
170
171 /**
172 This function gets the memory init UPD data pointer.
173
174 @return memory init UPD data pointer.
175 **/
176 VOID *
177 EFIAPI
178 GetFspMemoryInitUpdDataPointer (
179 VOID
180 );
181
182 /**
183 This function sets the silicon init UPD data pointer.
184
185 @param[in] SiliconInitUpdPtr silicon init UPD data pointer.
186 **/
187 VOID
188 EFIAPI
189 SetFspSiliconInitUpdDataPointer (
190 IN VOID *SiliconInitUpdPtr
191 );
192
193 /**
194 This function gets the silicon init UPD data pointer.
195
196 @return silicon init UPD data pointer.
197 **/
198 VOID *
199 EFIAPI
200 GetFspSiliconInitUpdDataPointer (
201 VOID
202 );
203
204 /**
205 Set FSP measurement point timestamp.
206
207 @param[in] Id Measurement point ID.
208
209 @return performance timestamp.
210 **/
211 UINT64
212 EFIAPI
213 SetFspMeasurePoint (
214 IN UINT8 Id
215 );
216
217 /**
218 This function gets the FSP info header pointer.
219
220 @retval FspInfoHeader FSP info header pointer
221 **/
222 FSP_INFO_HEADER *
223 EFIAPI
224 GetFspInfoHeader (
225 VOID
226 );
227
228 /**
229 This function gets the FSP info header pointer from the API context.
230
231 @retval FspInfoHeader FSP info header pointer
232 **/
233 FSP_INFO_HEADER *
234 EFIAPI
235 GetFspInfoHeaderFromApiContext (
236 VOID
237 );
238
239 /**
240 This function gets the VPD data pointer.
241
242 @return VpdDataRgnPtr VPD data pointer.
243 **/
244 VOID *
245 EFIAPI
246 GetFspVpdDataPointer (
247 VOID
248 );
249
250 /**
251 This function gets FSP API calling mode.
252
253 @retval API calling mode
254 **/
255 UINT8
256 EFIAPI
257 GetFspApiCallingMode (
258 VOID
259 );
260
261 /**
262 This function sets FSP API calling mode.
263
264 @param[in] Mode API calling mode
265 **/
266 VOID
267 EFIAPI
268 SetFspApiCallingMode (
269 UINT8 Mode
270 );
271
272 #endif