XenevaOS
Loading...
Searching...
No Matches
PciRootBridgeIo.h
Go to the documentation of this file.
1
19#ifndef __PCI_ROOT_BRIDGE_IO_H__
20#define __PCI_ROOT_BRIDGE_IO_H__
21
22#include <Library/BaseLib.h>
23
24#define EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_GUID \
25 { \
26 0x2f707ebb, 0x4a1a, 0x11d4, {0x9a, 0x38, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \
27 }
28
30
51
90
91#define EFI_PCI_ATTRIBUTE_ISA_MOTHERBOARD_IO 0x0001
92#define EFI_PCI_ATTRIBUTE_ISA_IO 0x0002
93#define EFI_PCI_ATTRIBUTE_VGA_PALETTE_IO 0x0004
94#define EFI_PCI_ATTRIBUTE_VGA_MEMORY 0x0008
95#define EFI_PCI_ATTRIBUTE_VGA_IO 0x0010
96#define EFI_PCI_ATTRIBUTE_IDE_PRIMARY_IO 0x0020
97#define EFI_PCI_ATTRIBUTE_IDE_SECONDARY_IO 0x0040
98#define EFI_PCI_ATTRIBUTE_MEMORY_WRITE_COMBINE 0x0080
99#define EFI_PCI_ATTRIBUTE_MEMORY_CACHED 0x0800
100#define EFI_PCI_ATTRIBUTE_MEMORY_DISABLE 0x1000
101#define EFI_PCI_ATTRIBUTE_DUAL_ADDRESS_CYCLE 0x8000
102#define EFI_PCI_ATTRIBUTE_ISA_IO_16 0x10000
103#define EFI_PCI_ATTRIBUTE_VGA_PALETTE_IO_16 0x20000
104#define EFI_PCI_ATTRIBUTE_VGA_IO_16 0x40000
105
106#define EFI_PCI_ATTRIBUTE_VALID_FOR_ALLOCATE_BUFFER (EFI_PCI_ATTRIBUTE_MEMORY_WRITE_COMBINE | EFI_PCI_ATTRIBUTE_MEMORY_CACHED | EFI_PCI_ATTRIBUTE_DUAL_ADDRESS_CYCLE)
107
108#define EFI_PCI_ATTRIBUTE_INVALID_FOR_ALLOCATE_BUFFER (~EFI_PCI_ATTRIBUTE_VALID_FOR_ALLOCATE_BUFFER)
109
110#define EFI_PCI_ADDRESS(bus, dev, func, reg) \
111 (UINT64) ( \
112 (((UINTN) bus) << 24) | \
113 (((UINTN) dev) << 16) | \
114 (((UINTN) func) << 8) | \
115 (((UINTN) (reg)) < 256 ? ((UINTN) (reg)) : (UINT64) (LShiftU64 ((UINT64) (reg), 32))))
116
124
143typedef
149 IN UINT64 Mask,
150 IN UINT64 Value,
151 IN UINT64 Delay,
152 OUT UINT64 *Result
153 );
154
170typedef
176 IN UINTN Count,
177 IN OUT VOID *Buffer
178 );
179
190
206typedef
211 IN UINT64 DestAddress,
212 IN UINT64 SrcAddress,
213 IN UINTN Count
214 );
215
236typedef
241 IN VOID *HostAddress,
242 IN OUT UINTN *NumberOfBytes,
243 OUT EFI_PHYSICAL_ADDRESS *DeviceAddress,
244 OUT VOID **Mapping
245 );
246
258typedef
262 IN VOID *Mapping
263 );
264
285typedef
290 IN EFI_MEMORY_TYPE MemoryType,
291 IN UINTN Pages,
292 IN OUT VOID **HostAddress,
293 IN UINT64 Attributes
294 );
295
308typedef
312 IN UINTN Pages,
313 IN VOID *HostAddress
314 );
315
327typedef
331 );
332
351typedef
355 OUT UINT64 *Supports,
356 OUT UINT64 *Attributes
357 );
358
380typedef
384 IN UINT64 Attributes,
385 IN OUT UINT64 *ResourceBase,
386 IN OUT UINT64 *ResourceLength
387 );
388
403typedef
407 OUT VOID **Resources
408 );
409
439
441
442#endif
UINT64 UINTN
Definition ProcessorBind.h:118
#define EFIAPI
Definition ProcessorBind.h:172
unsigned int UINT32
Definition ProcessorBind.h:102
UINT16 Mask
Definition Acpi10.h:159
#define IN
Definition Base.h:347
#define OUT
Definition Base.h:352
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_OPERATION
Definition PciRootBridgeIo.h:57
@ EfiPciOperationBusMasterCommonBuffer
Definition PciRootBridgeIo.h:72
@ EfiPciOperationBusMasterWrite
Definition PciRootBridgeIo.h:67
@ EfiPciOperationBusMasterRead64
Definition PciRootBridgeIo.h:77
@ EfiPciOperationMaximum
Definition PciRootBridgeIo.h:88
@ EfiPciOperationBusMasterWrite64
Definition PciRootBridgeIo.h:82
@ EfiPciOperationBusMasterRead
Definition PciRootBridgeIo.h:62
@ EfiPciOperationBusMasterCommonBuffer64
Definition PciRootBridgeIo.h:87
EFI_STATUS(EFIAPI * EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_UNMAP)(IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, IN VOID *Mapping)
Definition PciRootBridgeIo.h:260
EFI_STATUS(EFIAPI * EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_SET_ATTRIBUTES)(IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, IN UINT64 Attributes, IN OUT UINT64 *ResourceBase, IN OUT UINT64 *ResourceLength)
Definition PciRootBridgeIo.h:382
EFI_GUID gEfiPciRootBridgeIoProtocolGuid
EFI_STATUS(EFIAPI * EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_GET_ATTRIBUTES)(IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, OUT UINT64 *Supports, OUT UINT64 *Attributes)
Definition PciRootBridgeIo.h:353
EFI_STATUS(EFIAPI * EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_FREE_BUFFER)(IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, IN UINTN Pages, IN VOID *HostAddress)
Definition PciRootBridgeIo.h:310
EFI_STATUS(EFIAPI * EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_POLL_IO_MEM)(IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH Width, IN UINT64 Address, IN UINT64 Mask, IN UINT64 Value, IN UINT64 Delay, OUT UINT64 *Result)
Definition PciRootBridgeIo.h:145
EFI_STATUS(EFIAPI * EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_COPY_MEM)(IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH Width, IN UINT64 DestAddress, IN UINT64 SrcAddress, IN UINTN Count)
Definition PciRootBridgeIo.h:208
EFI_STATUS(EFIAPI * EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_CONFIGURATION)(IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, OUT VOID **Resources)
Definition PciRootBridgeIo.h:405
EFI_STATUS(EFIAPI * EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_IO_MEM)(IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH Width, IN UINT64 Address, IN UINTN Count, IN OUT VOID *Buffer)
Definition PciRootBridgeIo.h:172
EFI_STATUS(EFIAPI * EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_ALLOCATE_BUFFER)(IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, IN EFI_ALLOCATE_TYPE Type, IN EFI_MEMORY_TYPE MemoryType, IN UINTN Pages, IN OUT VOID **HostAddress, IN UINT64 Attributes)
Definition PciRootBridgeIo.h:287
EFI_STATUS(EFIAPI * EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_MAP)(IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_OPERATION Operation, IN VOID *HostAddress, IN OUT UINTN *NumberOfBytes, OUT EFI_PHYSICAL_ADDRESS *DeviceAddress, OUT VOID **Mapping)
Definition PciRootBridgeIo.h:238
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH
Definition PciRootBridgeIo.h:36
@ EfiPciWidthUint32
Definition PciRootBridgeIo.h:39
@ EfiPciWidthFillUint8
Definition PciRootBridgeIo.h:45
@ EfiPciWidthFifoUint64
Definition PciRootBridgeIo.h:44
@ EfiPciWidthUint16
Definition PciRootBridgeIo.h:38
@ EfiPciWidthMaximum
Definition PciRootBridgeIo.h:49
@ EfiPciWidthUint64
Definition PciRootBridgeIo.h:40
@ EfiPciWidthFifoUint32
Definition PciRootBridgeIo.h:43
@ EfiPciWidthFillUint64
Definition PciRootBridgeIo.h:48
@ EfiPciWidthUint8
Definition PciRootBridgeIo.h:37
@ EfiPciWidthFillUint32
Definition PciRootBridgeIo.h:47
@ EfiPciWidthFifoUint8
Definition PciRootBridgeIo.h:41
@ EfiPciWidthFillUint16
Definition PciRootBridgeIo.h:46
@ EfiPciWidthFifoUint16
Definition PciRootBridgeIo.h:42
EFI_STATUS(EFIAPI * EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_FLUSH)(IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This)
Definition PciRootBridgeIo.h:329
UINT64 EFI_PHYSICAL_ADDRESS
Definition UefiBaseType.h:54
RETURN_STATUS EFI_STATUS
Definition UefiBaseType.h:33
VOID * EFI_HANDLE
Definition UefiBaseType.h:37
EFI_MEMORY_TYPE
Definition UefiMultiPhase.h:44
EFI_ALLOCATE_TYPE
Definition UefiSpec.h:32
#define VOID
Definition acefi.h:190
ACPI_PHYSICAL_ADDRESS Address
Definition acpixf.h:637
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn BOOLEAN Physical UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER void *Data ACPI_OBJECT_HANDLER void **Data ACPI_STRING ACPI_OBJECT_LIST ACPI_BUFFER *ReturnObjectBuffer ACPI_DEVICE_INFO **ReturnBuffer ACPI_HANDLE ACPI_HANDLE ACPI_HANDLE *OutHandle ACPI_HANDLE *OutHandle void *Context void *Context ACPI_EVENT_HANDLER Handler UINT32 UINT32 Type
Definition acpixf.h:894
unsigned char UINT8
Definition actypes.h:236
COMPILER_DEPENDENT_UINT64 UINT64
Definition actypes.h:239
Definition PciRootBridgeIo.h:180
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_IO_MEM Write
Definition PciRootBridgeIo.h:188
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_IO_MEM Read
Definition PciRootBridgeIo.h:184
Definition PciRootBridgeIo.h:117
UINT8 Function
Definition PciRootBridgeIo.h:119
UINT8 Register
Definition PciRootBridgeIo.h:118
UINT8 Device
Definition PciRootBridgeIo.h:120
UINT8 Bus
Definition PciRootBridgeIo.h:121
UINT32 ExtendedRegister
Definition PciRootBridgeIo.h:122
Definition Base.h:281
Definition PciRootBridgeIo.h:414
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_ACCESS Io
Definition PciRootBridgeIo.h:422
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_UNMAP Unmap
Definition PciRootBridgeIo.h:426
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_FLUSH Flush
Definition PciRootBridgeIo.h:429
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_CONFIGURATION Configuration
Definition PciRootBridgeIo.h:432
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_SET_ATTRIBUTES SetAttributes
Definition PciRootBridgeIo.h:431
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_GET_ATTRIBUTES GetAttributes
Definition PciRootBridgeIo.h:430
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_ALLOCATE_BUFFER AllocateBuffer
Definition PciRootBridgeIo.h:427
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_ACCESS Mem
Definition PciRootBridgeIo.h:421
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_COPY_MEM CopyMem
Definition PciRootBridgeIo.h:424
EFI_HANDLE ParentHandle
Definition PciRootBridgeIo.h:418
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_FREE_BUFFER FreeBuffer
Definition PciRootBridgeIo.h:428
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_MAP Map
Definition PciRootBridgeIo.h:425
UINT32 SegmentNumber
Definition PciRootBridgeIo.h:437
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_ACCESS Pci
Definition PciRootBridgeIo.h:423
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_POLL_IO_MEM PollIo
Definition PciRootBridgeIo.h:420
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_POLL_IO_MEM PollMem
Definition PciRootBridgeIo.h:419