TianoCore EDK2 master
Loading...
Searching...
No Matches
IoMmu.h
Go to the documentation of this file.
1
9#ifndef __PEI_IOMMU_H__
10#define __PEI_IOMMU_H__
11
12//
13// for EFI_ALLOCATE_TYPE
14//
15#include <Uefi.h>
16
17//
18// Include protocol for common definition
19// EDKII_IOMMU_ACCESS_xxx
20// EDKII_IOMMU_OPERATION
21//
22#include <Protocol/IoMmu.h>
23
24//
25// IOMMU Ppi GUID value
26//
27#define EDKII_IOMMU_PPI_GUID \
28 { \
29 0x70b0af26, 0xf847, 0x4bb6, { 0xaa, 0xb9, 0xcd, 0xe8, 0x4f, 0xc6, 0x14, 0x31 } \
30 }
31
32//
33// Forward reference for pure ANSI compatability
34//
36
37//
38// Revision The revision to which the IOMMU interface adheres.
39// All future revisions must be backwards compatible.
40// If a future version is not back wards compatible it is not the same GUID.
41//
42#define EDKII_IOMMU_PPI_REVISION 0x00010000
43
69typedef
72 IN EDKII_IOMMU_PPI *This,
73 IN VOID *Mapping,
74 IN UINT64 IoMmuAccess
75 );
76
99typedef
101(EFIAPI *EDKII_PEI_IOMMU_MAP)(
102 IN EDKII_IOMMU_PPI *This,
103 IN EDKII_IOMMU_OPERATION Operation,
104 IN VOID *HostAddress,
105 IN OUT UINTN *NumberOfBytes,
106 OUT EFI_PHYSICAL_ADDRESS *DeviceAddress,
107 OUT VOID **Mapping
108 );
109
123typedef
125(EFIAPI *EDKII_PEI_IOMMU_UNMAP)(
126 IN EDKII_IOMMU_PPI *This,
127 IN VOID *Mapping
128 );
129
151typedef
154 IN EDKII_IOMMU_PPI *This,
155 IN EFI_MEMORY_TYPE MemoryType,
156 IN UINTN Pages,
157 IN OUT VOID **HostAddress,
158 IN UINT64 Attributes
159 );
160
175typedef
178 IN EDKII_IOMMU_PPI *This,
179 IN UINTN Pages,
180 IN VOID *HostAddress
181 );
182
187 UINT64 Revision;
191 EDKII_PEI_IOMMU_ALLOCATE_BUFFER AllocateBuffer;
193};
194
199
200#endif
UINT64 UINTN
#define IN
Definition: Base.h:279
#define OUT
Definition: Base.h:284
EFI_STATUS(EFIAPI * EDKII_PEI_IOMMU_UNMAP)(IN EDKII_IOMMU_PPI *This, IN VOID *Mapping)
Definition: IoMmu.h:125
EFI_STATUS(EFIAPI * EDKII_PEI_IOMMU_MAP)(IN EDKII_IOMMU_PPI *This, IN EDKII_IOMMU_OPERATION Operation, IN VOID *HostAddress, IN OUT UINTN *NumberOfBytes, OUT EFI_PHYSICAL_ADDRESS *DeviceAddress, OUT VOID **Mapping)
Definition: IoMmu.h:101
EFI_STATUS(EFIAPI * EDKII_PEI_IOMMU_SET_ATTRIBUTE)(IN EDKII_IOMMU_PPI *This, IN VOID *Mapping, IN UINT64 IoMmuAccess)
Definition: IoMmu.h:71
EFI_STATUS(EFIAPI * EDKII_PEI_IOMMU_FREE_BUFFER)(IN EDKII_IOMMU_PPI *This, IN UINTN Pages, IN VOID *HostAddress)
Definition: IoMmu.h:177
EFI_GUID gEdkiiIoMmuPpiGuid
EFI_STATUS(EFIAPI * EDKII_PEI_IOMMU_ALLOCATE_BUFFER)(IN EDKII_IOMMU_PPI *This, IN EFI_MEMORY_TYPE MemoryType, IN UINTN Pages, IN OUT VOID **HostAddress, IN UINT64 Attributes)
Definition: IoMmu.h:153
EDKII_IOMMU_OPERATION
Definition: IoMmu.h:44
UINT64 EFI_PHYSICAL_ADDRESS
Definition: UefiBaseType.h:50
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
EFI_MEMORY_TYPE
Definition: Base.h:213