Coverage Report

Created: 2024-10-17 06:29

/src/hbfa-fl/HBFA/UefiHostTestPkg/Library/UefiBootServicesTableLibHost/UefiBootServicesTableLibHost.c
Line
Count
Source (jump to first uncovered line)
1
/** @file
2
3
Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
4
SPDX-License-Identifier: BSD-2-Clause-Patent
5
6
**/
7
8
#include <stdio.h>
9
#include <stdlib.h>
10
#include <string.h>
11
#include <assert.h>
12
13
#include <Uefi.h>
14
#include <Library/DebugLib.h>
15
#include <Library/BaseMemoryLib.h>
16
17
#include "DxeMain.h"
18
19
extern EFI_BOOT_SERVICES mBootServices;
20
extern EFI_SYSTEM_TABLE mEfiSystemTableTemplate;
21
22
EFI_SYSTEM_TABLE   *gST         = &mEfiSystemTableTemplate;
23
EFI_BOOT_SERVICES  *gBS         = &mBootServices;
24
EFI_HANDLE         gImageHandle = NULL;
25
26
EFI_HANDLE            gDxeCoreImageHandle = NULL;
27
EFI_SECURITY2_ARCH_PROTOCOL              *gSecurity2;
28
29
EFI_STATUS
30
EFIAPI
31
CoreAllocatePages (
32
  IN  EFI_ALLOCATE_TYPE     Type,
33
  IN  EFI_MEMORY_TYPE       MemoryType,
34
  IN  UINTN                 NumberOfPages,
35
  OUT EFI_PHYSICAL_ADDRESS  *Memory
36
  )
37
0
{
38
0
  VOID *Buffer;
39
40
0
  Buffer = malloc (EFI_PAGES_TO_SIZE(NumberOfPages));
41
0
  if (Buffer == NULL) {
42
0
    return EFI_OUT_OF_RESOURCES;
43
0
  }
44
0
  *Memory = (UINTN)Buffer;
45
0
  return EFI_SUCCESS;
46
0
}
47
48
EFI_STATUS
49
EFIAPI
50
CoreFreePages (
51
  IN EFI_PHYSICAL_ADDRESS  Memory,
52
  IN UINTN                 NumberOfPages
53
  )
54
0
{
55
0
  free ((VOID *)(UINTN)Memory);
56
0
  return EFI_SUCCESS;
57
0
}
58
59
EFI_STATUS
60
EFIAPI
61
CoreAllocatePool (
62
  IN EFI_MEMORY_TYPE  PoolType,
63
  IN UINTN            Size,
64
  OUT VOID            **Buffer
65
  )
66
0
{
67
0
  *Buffer = malloc (Size);
68
0
  if (*Buffer == NULL) {
69
0
    return EFI_OUT_OF_RESOURCES;
70
0
  }
71
0
  return EFI_SUCCESS;
72
0
}
73
74
EFI_STATUS
75
EFIAPI
76
CoreFreePool (
77
  IN VOID  *Buffer
78
  )
79
0
{
80
0
  free (Buffer);
81
0
  return EFI_SUCCESS;
82
0
}
83
84
EFI_STATUS
85
EFIAPI
86
CoreEfiNotAvailableYetArg0 (
87
  VOID
88
  )
89
0
{
90
0
  ASSERT(FALSE);
91
0
  return EFI_UNSUPPORTED;
92
0
}
93
94
EFI_STATUS
95
EFIAPI
96
CoreEfiNotAvailableYetArg1 (
97
  UINTN Arg1
98
  )
99
0
{
100
0
  ASSERT(FALSE);
101
0
  return EFI_UNSUPPORTED;
102
0
}
103
104
EFI_STATUS
105
EFIAPI
106
CoreEfiNotAvailableYetArg2 (
107
  UINTN Arg1,
108
  UINTN Arg2
109
  )
110
0
{
111
0
  ASSERT(FALSE);
112
0
  return EFI_UNSUPPORTED;
113
0
}
114
115
EFI_STATUS
116
EFIAPI
117
CoreEfiNotAvailableYetArg3 (
118
  UINTN Arg1,
119
  UINTN Arg2,
120
  UINTN Arg3
121
  )
122
0
{
123
0
  ASSERT(FALSE);
124
0
  return EFI_UNSUPPORTED;
125
0
}
126
127
EFI_STATUS
128
EFIAPI
129
CoreEfiNotAvailableYetArg4 (
130
  UINTN Arg1,
131
  UINTN Arg2,
132
  UINTN Arg3,
133
  UINTN Arg4
134
  )
135
0
{
136
0
  ASSERT(FALSE);
137
0
  return EFI_UNSUPPORTED;
138
0
}
139
140
EFI_STATUS
141
EFIAPI
142
CoreEfiNotAvailableYetArg5 (
143
  UINTN Arg1,
144
  UINTN Arg2,
145
  UINTN Arg3,
146
  UINTN Arg4,
147
  UINTN Arg5
148
  )
149
0
{
150
0
  ASSERT(FALSE);
151
0
  return EFI_UNSUPPORTED;
152
0
}
153
154
EFI_STATUS
155
EFIAPI
156
CoreEfiNotAvailableYetArg6 (
157
  UINTN Arg1,
158
  UINTN Arg2,
159
  UINTN Arg3,
160
  UINTN Arg4,
161
  UINTN Arg5,
162
  UINTN Arg6
163
  )
164
0
{
165
0
  ASSERT(FALSE);
166
0
  return EFI_UNSUPPORTED;
167
0
}
168
169
EFI_BOOT_SERVICES mBootServices = {
170
  {
171
    EFI_BOOT_SERVICES_SIGNATURE,                                                          // Signature
172
    EFI_BOOT_SERVICES_REVISION,                                                           // Revision
173
    sizeof (EFI_BOOT_SERVICES),                                                           // HeaderSize
174
    0,                                                                                    // CRC32
175
    0                                                                                     // Reserved
176
  },
177
  (EFI_RAISE_TPL)                               CoreRaiseTpl,                             // RaiseTPL
178
  (EFI_RESTORE_TPL)                             CoreRestoreTpl,                           // RestoreTPL
179
  (EFI_ALLOCATE_PAGES)                          CoreAllocatePages,                        // AllocatePages
180
  (EFI_FREE_PAGES)                              CoreFreePages,                            // FreePages
181
  (EFI_GET_MEMORY_MAP)                          CoreEfiNotAvailableYetArg5,               // GetMemoryMap
182
  (EFI_ALLOCATE_POOL)                           CoreAllocatePool,                         // AllocatePool
183
  (EFI_FREE_POOL)                               CoreFreePool,                             // FreePool
184
  (EFI_CREATE_EVENT)                            CoreEfiNotAvailableYetArg5,               // CreateEvent
185
  (EFI_SET_TIMER)                               CoreEfiNotAvailableYetArg3,               // SetTimer
186
  (EFI_WAIT_FOR_EVENT)                          CoreEfiNotAvailableYetArg3,               // WaitForEvent
187
  (EFI_SIGNAL_EVENT)                            CoreEfiNotAvailableYetArg1,               // SignalEvent
188
  (EFI_CLOSE_EVENT)                             CoreEfiNotAvailableYetArg1,               // CloseEvent
189
  (EFI_CHECK_EVENT)                             CoreEfiNotAvailableYetArg1,               // CheckEvent
190
  (EFI_INSTALL_PROTOCOL_INTERFACE)              CoreInstallProtocolInterface,             // InstallProtocolInterface
191
  (EFI_REINSTALL_PROTOCOL_INTERFACE)            CoreReinstallProtocolInterface,           // ReinstallProtocolInterface
192
  (EFI_UNINSTALL_PROTOCOL_INTERFACE)            CoreUninstallProtocolInterface,           // UninstallProtocolInterface
193
  (EFI_HANDLE_PROTOCOL)                         CoreHandleProtocol,                       // HandleProtocol
194
  (VOID *)                                      NULL,                                     // Reserved
195
  (EFI_REGISTER_PROTOCOL_NOTIFY)                CoreRegisterProtocolNotify,               // RegisterProtocolNotify
196
  (EFI_LOCATE_HANDLE)                           CoreLocateHandle,                         // LocateHandle
197
  (EFI_LOCATE_DEVICE_PATH)                      CoreLocateDevicePath,                     // LocateDevicePath
198
  (EFI_INSTALL_CONFIGURATION_TABLE)             CoreEfiNotAvailableYetArg2,               // InstallConfigurationTable
199
  (EFI_IMAGE_LOAD)                              CoreEfiNotAvailableYetArg6,               // LoadImage
200
  (EFI_IMAGE_START)                             CoreEfiNotAvailableYetArg3,               // StartImage
201
  (EFI_EXIT)                                    CoreEfiNotAvailableYetArg4,               // Exit
202
  (EFI_IMAGE_UNLOAD)                            CoreEfiNotAvailableYetArg1,               // UnloadImage
203
  (EFI_EXIT_BOOT_SERVICES)                      CoreEfiNotAvailableYetArg2,               // ExitBootServices
204
  (EFI_GET_NEXT_MONOTONIC_COUNT)                CoreEfiNotAvailableYetArg1,               // GetNextMonotonicCount
205
  (EFI_STALL)                                   CoreEfiNotAvailableYetArg1,               // Stall
206
  (EFI_SET_WATCHDOG_TIMER)                      CoreEfiNotAvailableYetArg4,               // SetWatchdogTimer
207
  (EFI_CONNECT_CONTROLLER)                      CoreEfiNotAvailableYetArg4,               // ConnectController
208
  (EFI_DISCONNECT_CONTROLLER)                   CoreEfiNotAvailableYetArg3,               // DisconnectController
209
  (EFI_OPEN_PROTOCOL)                           CoreOpenProtocol,                         // OpenProtocol
210
  (EFI_CLOSE_PROTOCOL)                          CoreCloseProtocol,                        // CloseProtocol
211
  (EFI_OPEN_PROTOCOL_INFORMATION)               CoreOpenProtocolInformation,              // OpenProtocolInformation
212
  (EFI_PROTOCOLS_PER_HANDLE)                    CoreProtocolsPerHandle,                   // ProtocolsPerHandle
213
  (EFI_LOCATE_HANDLE_BUFFER)                    CoreLocateHandleBuffer,                   // LocateHandleBuffer
214
  (EFI_LOCATE_PROTOCOL)                         CoreLocateProtocol,                       // LocateProtocol
215
  (EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES)    CoreInstallMultipleProtocolInterfaces,    // InstallMultipleProtocolInterfaces
216
  (EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES)  CoreUninstallMultipleProtocolInterfaces,  // UninstallMultipleProtocolInterfaces
217
  (EFI_CALCULATE_CRC32)                         CoreEfiNotAvailableYetArg3,               // CalculateCrc32
218
  (EFI_COPY_MEM)                                CopyMem,                                  // CopyMem
219
  (EFI_SET_MEM)                                 SetMem,                                   // SetMem
220
  (EFI_CREATE_EVENT_EX)                         CoreEfiNotAvailableYetArg6                // CreateEventEx
221
};
222
223
EFI_STATUS
224
EFIAPI
225
OutputString (
226
  IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL        *This,
227
  IN CHAR16                                 *String
228
  )
229
0
{
230
0
  DEBUG ((DEBUG_INFO, "%s", String));
231
0
  return EFI_SUCCESS;
232
0
}
233
234
EFI_SIMPLE_TEXT_OUTPUT_MODE mMode = {
235
  1, // MaxMode
236
  0, // Mode
237
  0, // Attribute
238
  80, // CursorColumn
239
  25, // CursorRow
240
  FALSE, // CursorVisible
241
};
242
243
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL mConOut = {
244
  (EFI_TEXT_RESET)               CoreEfiNotAvailableYetArg2, // Reset
245
  OutputString,
246
  (EFI_TEXT_TEST_STRING)         CoreEfiNotAvailableYetArg2, // TestString
247
  (EFI_TEXT_QUERY_MODE)          CoreEfiNotAvailableYetArg4, // QueryMode
248
  (EFI_TEXT_SET_MODE)            CoreEfiNotAvailableYetArg2, // SetMode
249
  (EFI_TEXT_SET_ATTRIBUTE)       CoreEfiNotAvailableYetArg2, // SetAttribute
250
  (EFI_TEXT_CLEAR_SCREEN)        CoreEfiNotAvailableYetArg1, // ClearScreen
251
  (EFI_TEXT_SET_CURSOR_POSITION) CoreEfiNotAvailableYetArg3, // SetCursorPosition
252
  (EFI_TEXT_ENABLE_CURSOR)       CoreEfiNotAvailableYetArg2, // EnableCursor
253
  NULL,                       // Mode
254
};
255
256
EFI_SYSTEM_TABLE mEfiSystemTableTemplate = {
257
  {
258
    EFI_SYSTEM_TABLE_SIGNATURE,                                           // Signature
259
    EFI_SYSTEM_TABLE_REVISION,                                            // Revision
260
    sizeof (EFI_SYSTEM_TABLE),                                            // HeaderSize
261
    0,                                                                    // CRC32
262
    0                                                                     // Reserved
263
  },
264
  NULL,                                                                   // FirmwareVendor
265
  0,                                                                      // FirmwareRevision
266
  NULL,                                                                   // ConsoleInHandle
267
  NULL,                                                                   // ConIn
268
  NULL,                                                                   // ConsoleOutHandle
269
  &mConOut,                                                               // ConOut
270
  NULL,                                                                   // StandardErrorHandle
271
  NULL,                                                                   // StdErr
272
  NULL,                                                                   // RuntimeServices
273
  &mBootServices,                                                         // BootServices
274
  0,                                                                      // NumberOfConfigurationTableEntries
275
  NULL                                                                    // ConfigurationTable
276
};
277
278
EFI_STATUS
279
EFIAPI
280
UefiBootServicesTableLibConstructor (
281
  VOID
282
  )
283
0
{
284
0
  EFI_STATUS  Status;
285
286
0
  Status = gBS->InstallProtocolInterface (
287
0
                  &gImageHandle,
288
0
                  &gEfiLoadedImageProtocolGuid,
289
0
                  EFI_NATIVE_INTERFACE,
290
0
                  NULL
291
0
                  );
292
293
0
  return Status;
294
0
}