]> git.proxmox.com Git - mirror_edk2.git/blame - EmulatorPkg/EmuBusDriverDxe/EmuBusDriverDxe.h
BaseTools/BinToPcd: Fix Python 2.7.x compatibility issue
[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
d18d8a1d 5This program and the accompanying materials\r
6are licensed and made available under the terms and conditions of the BSD License\r
7which accompanies this distribution. The full text of the license may be found at\r
8http://opensource.org/licenses/bsd-license.php\r
9\r
10THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
949f388f 12\r
13**/\r
14\r
15#ifndef __EMU_BUS_DRIVER_H__\r
16#define __EMU_BUS_DRIVER_H__\r
17\r
18#include <PiDxe.h>\r
19\r
20#include <Protocol/DevicePath.h>\r
21#include <Protocol/EmuThunk.h>\r
22#include <Protocol/EmuIoThunk.h>\r
23\r
24#include <Library/DebugLib.h>\r
25#include <Library/BaseLib.h>\r
26#include <Library/UefiDriverEntryPoint.h>\r
27#include <Library/UefiLib.h>\r
28#include <Library/PcdLib.h>\r
29#include <Library/BaseMemoryLib.h>\r
30#include <Library/MemoryAllocationLib.h>\r
31#include <Library/UefiBootServicesTableLib.h>\r
32#include <Library/DevicePathLib.h>\r
33\r
34extern EFI_DRIVER_BINDING_PROTOCOL gEmuBusDriverBinding;\r
35extern EFI_COMPONENT_NAME_PROTOCOL gEmuBusDriverComponentName;\r
36extern EFI_COMPONENT_NAME2_PROTOCOL gEmuBusDriverComponentName2;\r
37\r
38\r
39//\r
40// Unix Bus Controller Structure\r
41//\r
42#define EMU_BUS_DEVICE_SIGNATURE SIGNATURE_32 ('L', 'X', 'B', 'D')\r
43\r
44typedef struct {\r
45 UINT64 Signature;\r
46 EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
47} EMU_BUS_DEVICE;\r
48\r
49//\r
50// Unix Child Device Controller Structure\r
51//\r
52#define EMU_IO_DEVICE_SIGNATURE SIGNATURE_32 ('L', 'X', 'V', 'D')\r
53\r
54typedef struct {\r
55 UINT64 Signature;\r
56 EFI_HANDLE Handle;\r
57 EMU_IO_THUNK_PROTOCOL EmuIoThunk;\r
58 EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
59\r
60 //\r
61 // Private data about the parent\r
62 //\r
63 EFI_HANDLE ControllerHandle;\r
64 EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;\r
65\r
66 EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
67\r
68} EMU_IO_DEVICE;\r
69\r
70#define EMU_IO_DEVICE_FROM_THIS(a) \\r
71 CR(a, EMU_IO_DEVICE, EmuIoThunk, EMU_IO_DEVICE_SIGNATURE)\r
72\r
73\r
74\r
75//\r
76// Driver Binding Protocol function prototypes\r
77//\r
78EFI_STATUS\r
79EFIAPI\r
80EmuBusDriverBindingSupported (\r
81 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
82 IN EFI_HANDLE Handle,\r
83 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
84 );\r
85\r
86\r
87EFI_STATUS\r
88EFIAPI\r
89EmuBusDriverBindingStart (\r
90 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
91 IN EFI_HANDLE ParentHandle,\r
92 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
93 );\r
94\r
95\r
96EFI_STATUS\r
97EFIAPI\r
98EmuBusDriverBindingStop (\r
99 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
100 IN EFI_HANDLE Handle,\r
101 IN UINTN NumberOfChildren,\r
102 IN EFI_HANDLE *ChildHandleBuffer\r
103 );\r
104\r
105//\r
106// Unix Bus Driver private worker functions\r
107//\r
108EFI_DEVICE_PATH_PROTOCOL *\r
109EmuBusCreateDevicePath (\r
110 IN EFI_DEVICE_PATH_PROTOCOL *RootDevicePath,\r
111 IN EFI_GUID *Guid,\r
112 IN UINT16 InstanceNumber\r
113 );\r
114\r
115\r
116#endif\r