FspCommonLib.h revision 6ca9135a654a658c9fbaa698cfa69a76c7719be1
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**/
26VOID
27EFIAPI
28SetFspGlobalDataPointer (
29  IN FSP_GLOBAL_DATA   *FspData
30  );
31
32/**
33  This function gets the FSP global data pointer.
34
35**/
36FSP_GLOBAL_DATA *
37EFIAPI
38GetFspGlobalDataPointer (
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**/
47UINT32
48EFIAPI
49GetFspApiParameter (
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**/
59VOID
60EFIAPI
61SetFspApiParameter (
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**/
71VOID
72EFIAPI
73SetFspContinuationFuncParameter (
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**/
84VOID
85EFIAPI
86SetFspApiReturnAddress (
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**/
96VOID
97EFIAPI
98SetFspApiReturnStatus (
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**/
108VOID
109EFIAPI
110SetFspCoreStackPointer (
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**/
120VOID
121EFIAPI
122SetFspPlatformDataPointer (
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**/
132VOID *
133EFIAPI
134GetFspPlatformDataPointer (
135  VOID
136  );
137
138/**
139  This function sets the UPD data pointer.
140
141  @param[in] UpdDataRgnPtr   UPD data pointer.
142**/
143VOID
144EFIAPI
145SetFspUpdDataPointer (
146  IN VOID    *UpdDataRgnPtr
147  );
148
149/**
150  This function gets the UPD data pointer.
151
152  @return UpdDataRgnPtr   UPD data pointer.
153**/
154VOID *
155EFIAPI
156GetFspUpdDataPointer (
157  VOID
158  );
159
160/**
161  Set FSP measurement point timestamp.
162
163  @param[in] Id       Measurement point ID.
164
165  @return performance timestamp.
166**/
167UINT64
168EFIAPI
169SetFspMeasurePoint (
170  IN UINT8  Id
171  );
172
173/**
174  This function gets the FSP info header pointer.
175
176  @retval FspInfoHeader   FSP info header pointer
177**/
178FSP_INFO_HEADER *
179EFIAPI
180GetFspInfoHeader (
181  VOID
182  );
183
184/**
185  This function gets FSP API calling mode.
186
187  @retval API calling mode
188**/
189UINT8
190EFIAPI
191GetFspApiCallingMode (
192  VOID
193  );
194
195/**
196  This function sets FSP API calling mode.
197
198  @param[in] Mode     API calling mode
199**/
200VOID
201EFIAPI
202SetFspApiCallingMode (
203  UINT8  Mode
204  );
205
206#endif
207