]> git.proxmox.com Git - mirror_edk2.git/blame - EmulatorPkg/EmuBusDriverDxe/EmuBusDriverDxe.h
MdeModulePkg/Pci: Fixed Asserts in SCT PCIIO Protocol Test.
[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
28extern EFI_DRIVER_BINDING_PROTOCOL gEmuBusDriverBinding;\r
29extern EFI_COMPONENT_NAME_PROTOCOL gEmuBusDriverComponentName;\r
30extern EFI_COMPONENT_NAME2_PROTOCOL gEmuBusDriverComponentName2;\r
31\r
32\r
33//\r
34// Unix Bus Controller Structure\r
35//\r
36#define EMU_BUS_DEVICE_SIGNATURE SIGNATURE_32 ('L', 'X', 'B', 'D')\r
37\r
38typedef struct {\r
39 UINT64 Signature;\r
40 EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
41} EMU_BUS_DEVICE;\r
42\r
43//\r
44// Unix Child Device Controller Structure\r
45//\r
46#define EMU_IO_DEVICE_SIGNATURE SIGNATURE_32 ('L', 'X', 'V', 'D')\r
47\r
48typedef struct {\r
49 UINT64 Signature;\r
50 EFI_HANDLE Handle;\r
51 EMU_IO_THUNK_PROTOCOL EmuIoThunk;\r
52 EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
53\r
54 //\r
55 // Private data about the parent\r
56 //\r
57 EFI_HANDLE ControllerHandle;\r
58 EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;\r
59\r
60 EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
61\r
62} EMU_IO_DEVICE;\r
63\r
64#define EMU_IO_DEVICE_FROM_THIS(a) \\r
65 CR(a, EMU_IO_DEVICE, EmuIoThunk, EMU_IO_DEVICE_SIGNATURE)\r
66\r
67\r
68\r
69//\r
70// Driver Binding Protocol function prototypes\r
71//\r
72EFI_STATUS\r
73EFIAPI\r
74EmuBusDriverBindingSupported (\r
75 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
76 IN EFI_HANDLE Handle,\r
77 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
78 );\r
79\r
80\r
81EFI_STATUS\r
82EFIAPI\r
83EmuBusDriverBindingStart (\r
84 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
85 IN EFI_HANDLE ParentHandle,\r
86 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
87 );\r
88\r
89\r
90EFI_STATUS\r
91EFIAPI\r
92EmuBusDriverBindingStop (\r
93 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
94 IN EFI_HANDLE Handle,\r
95 IN UINTN NumberOfChildren,\r
96 IN EFI_HANDLE *ChildHandleBuffer\r
97 );\r
98\r
99//\r
100// Unix Bus Driver private worker functions\r
101//\r
102EFI_DEVICE_PATH_PROTOCOL *\r
103EmuBusCreateDevicePath (\r
104 IN EFI_DEVICE_PATH_PROTOCOL *RootDevicePath,\r
105 IN EFI_GUID *Guid,\r
106 IN UINT16 InstanceNumber\r
107 );\r
108\r
109\r
110#endif\r