TianoCore EDK2 master
Loading...
Searching...
No Matches
PciSegmentLib.h File Reference

Go to the source code of this file.

Data Structures

struct  PCI_ROOT_BRIDGE_DATA
 

Macros

#define ASSERT_INVALID_PCI_SEGMENT_ADDRESS(A, M)    ASSERT (((A) & (0xffff0000f0000000ULL | (M))) == 0)
 
#define PCI_TO_PCI_ROOT_BRIDGE_IO_ADDRESS(A)    ((((UINT32)(A) << 4) & 0xff000000) | (((UINT32)(A) >> 4) & 0x00000700) | (((UINT32)(A) << 1) & 0x001f0000) | (LShiftU64((A) & 0xfff, 32)))
 

Detailed Description

Include file of PciSegmentPciRootBridgeIo Library.

Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file PciSegmentLib.h.

Macro Definition Documentation

◆ ASSERT_INVALID_PCI_SEGMENT_ADDRESS

#define ASSERT_INVALID_PCI_SEGMENT_ADDRESS (   A,
 
)     ASSERT (((A) & (0xffff0000f0000000ULL | (M))) == 0)

Assert the validity of a PCI Segment address. A valid PCI Segment address should not contain 1's in bits 28..31 and 48..63

Parameters
AThe address to validate.
MAdditional bits to assert to be zero.

Definition at line 37 of file PciSegmentLib.h.

◆ PCI_TO_PCI_ROOT_BRIDGE_IO_ADDRESS

#define PCI_TO_PCI_ROOT_BRIDGE_IO_ADDRESS (   A)     ((((UINT32)(A) << 4) & 0xff000000) | (((UINT32)(A) >> 4) & 0x00000700) | (((UINT32)(A) << 1) & 0x001f0000) | (LShiftU64((A) & 0xfff, 32)))

Translate PCI Lib address into format of PCI Root Bridge I/O Protocol

Parameters
AThe address that encodes the PCI Bus, Device, Function and Register.

Definition at line 47 of file PciSegmentLib.h.