hc
2024-03-26 e0728245c89800c2038c23308f2d88969d5b41c8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/** @file
  Provides services to return segment information on a platform with multiple PCI segments.
 
  This library is consumed by PciSegmentLib to support multiple segment PCI configuration access.
 
  Copyright (c) 2017 - 2020, Intel Corporation. All rights reserved.<BR>
  SPDX-License-Identifier: BSD-2-Clause-Patent
 
**/
 
#ifndef __PCI_SEGMENT_INFO_LIB__
#define __PCI_SEGMENT_INFO_LIB__
 
typedef struct {
  UINT16               SegmentNumber;   ///< Segment number.
  UINT64               BaseAddress;     ///< ECAM Base address.
  UINT8                StartBusNumber;  ///< Start BUS number, for verifying the PCI Segment address.
  UINT8                EndBusNumber;    ///< End BUS number, for verifying the PCI Segment address.
} PCI_SEGMENT_INFO;
 
/**
  Return an array of PCI_SEGMENT_INFO holding the segment information.
 
  Note: The returned array/buffer is owned by callee.
 
  @param  Count  Return the count of segments.
 
  @retval A callee owned array holding the segment information.
**/
PCI_SEGMENT_INFO *
EFIAPI
GetPciSegmentInfo (
  UINTN  *Count
  );
 
#endif