]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Include/Library/PciSegmentInfoLib.h
588269a9ae4a886c47242f1897f989ba29ea7fef
[mirror_edk2.git] / MdePkg / Include / Library / PciSegmentInfoLib.h
1 /** @file
2 Provides services to return segment information on a platform with multiple PCI segments.
3
4 This library is consumed by PciSegmentLib to support multiple segment PCI configuration access.
5
6 Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
7 This program and the accompanying materials
8 are licensed and made available under the terms and conditions of the BSD License
9 which accompanies this distribution. The full text of the license may be found at
10 http://opensource.org/licenses/bsd-license.php
11
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14
15 **/
16
17 #ifndef __PCI_SEGMENT_INFO_LIB__
18 #define __PCI_SEGMENT_INFO_LIB__
19
20 typedef struct {
21 UINT16 SegmentNumber; ///< Segment number.
22 UINT64 BaseAddress; ///< ECAM Base address.
23 UINT8 StartBusNumber; ///< Start BUS number, for verifying the PCI Segment address.
24 UINT8 EndBusNumber; ///< End BUS number, for verifying the PCI Segment address.
25 } PCI_SEGMENT_INFO;
26
27 /**
28 Return an array of PCI_SEGMENT_INFO holding the segment information.
29
30 Note: The returned array/buffer is owned by callee.
31
32 @param Count Return the count of segments.
33
34 @retval A callee owned array holding the segment information.
35 **/
36 PCI_SEGMENT_INFO *
37 GetPciSegmentInfo (
38 UINTN *Count
39 );
40
41 #endif