blob: 574ee1d364f9f9cf09773372520aa138753c54ea [file] [log] [blame]
Ronak Kanabar1ae366f2023-06-07 01:21:56 +05301/** @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 - 2020, Intel Corporation. All rights reserved.<BR>
7 SPDX-License-Identifier: BSD-2-Clause-Patent
8
9**/
10
11#ifndef __PCI_SEGMENT_INFO_LIB__
12#define __PCI_SEGMENT_INFO_LIB__
13
14typedef struct {
15 UINT16 SegmentNumber; ///< Segment number.
16 UINT64 BaseAddress; ///< ECAM Base address.
17 UINT8 StartBusNumber; ///< Start BUS number, for verifying the PCI Segment address.
18 UINT8 EndBusNumber; ///< End BUS number, for verifying the PCI Segment address.
19} PCI_SEGMENT_INFO;
20
21/**
22 Return an array of PCI_SEGMENT_INFO holding the segment information.
23
24 Note: The returned array/buffer is owned by callee.
25
26 @param Count Return the count of segments.
27
28 @retval A callee owned array holding the segment information.
29**/
30PCI_SEGMENT_INFO *
31EFIAPI
32GetPciSegmentInfo (
33 UINTN *Count
34 );
35
36#endif