TianoCore EDK2 master
Loading...
Searching...
No Matches
PciSegmentLib.h
Go to the documentation of this file.
1
9#ifndef __DXE_PCI_SEGMENT_LIB__
10#define __DXE_PCI_SEGMENT_LIB__
11
13
15#include <Library/BaseLib.h>
18#include <Library/DebugLib.h>
19
21
22typedef struct {
23 EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *PciRootBridgeIo;
24 UINT32 SegmentNumber;
25 UINT64 MinBusNumber;
26 UINT64 MaxBusNumber;
28
37#define ASSERT_INVALID_PCI_SEGMENT_ADDRESS(A, M) \
38 ASSERT (((A) & (0xffff0000f0000000ULL | (M))) == 0)
39
47#define PCI_TO_PCI_ROOT_BRIDGE_IO_ADDRESS(A) \
48 ((((UINT32)(A) << 4) & 0xff000000) | (((UINT32)(A) >> 4) & 0x00000700) | (((UINT32)(A) << 1) & 0x001f0000) | (LShiftU64((A) & 0xfff, 32)))
49
50#endif