]> git.proxmox.com Git - mirror_edk2.git/blame - EmulatorPkg/EmuBusDriverDxe/EmuBusDriverDxe.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / EmulatorPkg / EmuBusDriverDxe / EmuBusDriverDxe.h
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#ifndef __EMU_BUS_DRIVER_H__\r
10#define __EMU_BUS_DRIVER_H__\r
11\r
12#include <PiDxe.h>\r
13\r
14#include <Protocol/DevicePath.h>\r
15#include <Protocol/EmuThunk.h>\r
16#include <Protocol/EmuIoThunk.h>\r
17\r
18#include <Library/DebugLib.h>\r
19#include <Library/BaseLib.h>\r
20#include <Library/UefiDriverEntryPoint.h>\r
21#include <Library/UefiLib.h>\r
22#include <Library/PcdLib.h>\r
23#include <Library/BaseMemoryLib.h>\r
24#include <Library/MemoryAllocationLib.h>\r
25#include <Library/UefiBootServicesTableLib.h>\r
26#include <Library/DevicePathLib.h>\r
27\r
a550d468
MK
28extern EFI_DRIVER_BINDING_PROTOCOL gEmuBusDriverBinding;\r
29extern EFI_COMPONENT_NAME_PROTOCOL gEmuBusDriverComponentName;\r
30extern EFI_COMPONENT_NAME2_PROTOCOL gEmuBusDriverComponentName2;\r
949f388f 31\r
32//\r
33// Unix Bus Controller Structure\r
34//\r
a550d468 35#define EMU_BUS_DEVICE_SIGNATURE SIGNATURE_32 ('L', 'X', 'B', 'D')\r
949f388f 36\r
37typedef struct {\r
a550d468
MK
38 UINT64 Signature;\r
39 EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
949f388f 40} EMU_BUS_DEVICE;\r
41\r
42//\r
43// Unix Child Device Controller Structure\r
44//\r
45#define EMU_IO_DEVICE_SIGNATURE SIGNATURE_32 ('L', 'X', 'V', 'D')\r
46\r
47typedef struct {\r
a550d468
MK
48 UINT64 Signature;\r
49 EFI_HANDLE Handle;\r
50 EMU_IO_THUNK_PROTOCOL EmuIoThunk;\r
51 EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
949f388f 52\r
53 //\r
54 // Private data about the parent\r
55 //\r
a550d468
MK
56 EFI_HANDLE ControllerHandle;\r
57 EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;\r
949f388f 58\r
a550d468 59 EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
949f388f 60} EMU_IO_DEVICE;\r
61\r
62#define EMU_IO_DEVICE_FROM_THIS(a) \\r
63 CR(a, EMU_IO_DEVICE, EmuIoThunk, EMU_IO_DEVICE_SIGNATURE)\r
64\r
949f388f 65//\r
66// Driver Binding Protocol function prototypes\r
67//\r
68EFI_STATUS\r
69EFIAPI\r
70EmuBusDriverBindingSupported (\r
a550d468
MK
71 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
72 IN EFI_HANDLE Handle,\r
73 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
949f388f 74 );\r
75\r
949f388f 76EFI_STATUS\r
77EFIAPI\r
78EmuBusDriverBindingStart (\r
a550d468
MK
79 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
80 IN EFI_HANDLE ParentHandle,\r
81 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
949f388f 82 );\r
83\r
949f388f 84EFI_STATUS\r
85EFIAPI\r
86EmuBusDriverBindingStop (\r
87 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
88 IN EFI_HANDLE Handle,\r
89 IN UINTN NumberOfChildren,\r
90 IN EFI_HANDLE *ChildHandleBuffer\r
91 );\r
92\r
93//\r
94// Unix Bus Driver private worker functions\r
95//\r
96EFI_DEVICE_PATH_PROTOCOL *\r
97EmuBusCreateDevicePath (\r
98 IN EFI_DEVICE_PATH_PROTOCOL *RootDevicePath,\r
99 IN EFI_GUID *Guid,\r
100 IN UINT16 InstanceNumber\r
101 );\r
102\r
949f388f 103#endif\r