]> git.proxmox.com Git - mirror_edk2.git/blame - EmulatorPkg/EmuThunkDxe/EmuThunk.c
EmulatorPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / EmulatorPkg / EmuThunkDxe / EmuThunk.c
CommitLineData
949f388f 1/*++ @file\r
2\r
3Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
4Portions copyright (c) 2011, Apple Inc. All rights reserved.\r
e3ba31da 5SPDX-License-Identifier: BSD-2-Clause-Patent\r
949f388f 6\r
7\r
8**/\r
9#include <PiDxe.h>\r
10\r
11#include <Protocol/DevicePath.h>\r
d18d8a1d 12#include <Protocol/EmuThunk.h>\r
949f388f 13\r
14#include <Library/DebugLib.h>\r
15#include <Library/UefiLib.h>\r
16#include <Library/UefiDriverEntryPoint.h>\r
17#include <Library/EmuThunkLib.h>\r
18#include <Library/MemoryAllocationLib.h>\r
19#include <Library/UefiBootServicesTableLib.h>\r
20#include <Library/DevicePathLib.h>\r
21\r
22//\r
23// EmuThunk Device Path Protocol Instance\r
24//\r
25EMU_THUNK_DEVICE_PATH mEmuThunkDevicePath = {\r
26 {\r
27 {\r
28 {\r
29 HARDWARE_DEVICE_PATH,\r
30 HW_VENDOR_DP,\r
31 {\r
32 (UINT8) (sizeof (EMU_VENDOR_DEVICE_PATH_NODE)),\r
33 (UINT8) ((sizeof (EMU_VENDOR_DEVICE_PATH_NODE)) >> 8)\r
34 }\r
35 },\r
36 EMU_THUNK_PROTOCOL_GUID\r
37 },\r
38 0\r
39 },\r
40 {\r
41 END_DEVICE_PATH_TYPE,\r
42 END_ENTIRE_DEVICE_PATH_SUBTYPE,\r
43 {\r
44 END_DEVICE_PATH_LENGTH,\r
45 0\r
46 }\r
47 }\r
48};\r
49\r
50\r
51EFI_STATUS\r
52EFIAPI\r
53InitializeEmuThunk (\r
54 IN EFI_HANDLE ImageHandle,\r
55 IN EFI_SYSTEM_TABLE *SystemTable\r
56 )\r
57/*++\r
58\r
59Routine Description:\r
60 Install UnixThunk Protocol and it's associated Device Path protocol\r
61\r
62Arguments:\r
63 (Standard EFI Image entry - EFI_IMAGE_ENTRY_POINT)\r
64\r
65Returns:\r
d18d8a1d 66 EFI_SUCEESS - UnixThunk protocol is added or error status from\r
949f388f 67 gBS->InstallMultiProtocolInterfaces().\r
68\r
69**/\r
70{\r
71 EFI_STATUS Status;\r
72 EFI_HANDLE Handle;\r
73\r
74 Handle = NULL;\r
75 Status = gBS->InstallMultipleProtocolInterfaces (\r
76 &Handle,\r
77 &gEmuThunkProtocolGuid, gEmuThunk,\r
78 &gEfiDevicePathProtocolGuid, &mEmuThunkDevicePath,\r
79 NULL\r
80 );\r
81\r
82 return Status;\r
83}\r