MdePkg/S3PciSegmentLib: Add S3PciSegmentLib class and instance.

The patch adds the new library class S3PciSegmentLib to carry out
PCI configuration and enable the PCI operations to be replayed during
an S3 resume. This library class maps directly on top of the
PciSegmentLib class.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
Ruiyu Ni 2017-08-04 13:23:24 +08:00
parent 5c9bb86f17
commit a2285a8963
6 changed files with 2360 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,45 @@
## @file
# Instance of S3 PCI Segment Library based on PCI Segment and S3 BootScript Library.
#
# S3 PCI Segment Services that perform PCI Configuration cycles and
# also enable the PCI operation to be replayed during an S3 resume.
#
# Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
#
# This program and the accompanying materials are
# licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
##
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = BaseS3SegmentPciLib
MODULE_UNI_FILE = BaseS3SegmentPciLib.uni
FILE_GUID = 17E2C90E-AD1F-443A-8C94-6E50C0E98607
MODULE_TYPE = BASE
VERSION_STRING = 1.0
LIBRARY_CLASS = S3PciSegmentLib
#
# The following information is for reference only and not required by the build tools.
#
# VALID_ARCHITECTURES = IA32 X64 IPF EBC
#
[Sources]
S3PciSegmentLib.c
[Packages]
MdePkg/MdePkg.dec
[LibraryClasses]
PciSegmentLib
S3BootScriptLib
DebugLib

View File

@ -0,0 +1,23 @@
// /** @file
// Instance of S3 PCI Segment Library based on PCI Segment and S3 BootScript Library.
//
// S3 PCI Segment Services that perform PCI Configuration cycles and
// also enable the PCI operation to be replayed during an S3 resume.
//
// Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
//
// This program and the accompanying materials are
// licensed and made available under the terms and conditions of the BSD License
// which accompanies this distribution. The full text of the license may be found at
// http://opensource.org/licenses/bsd-license.php
//
// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
//
// **/
#string STR_MODULE_ABSTRACT #language en-US "Instance of S3 PCI Segment Library based on PCI Segment and S3 BootScript Library."
#string STR_MODULE_DESCRIPTION #language en-US "S3 PCI Segment Services that perform PCI Configuration cycles and also enable the PCI operation to be replayed during an S3 resume."

File diff suppressed because it is too large Load Diff

View File

@ -137,6 +137,11 @@
## @libraryclass Provides services to access PCI Configuration Space on a platform with multiple PCI segments.
PciSegmentLib|Include/Library/PciSegmentLib.h
## @libraryclass The multiple segments PCI configuration Library Services that carry out
## PCI configuration and enable the PCI operations to be replayed during an
## S3 resume. This library class maps directly on top of the PciSegmentLib class.
S3PciSegmentLib|Include/Library/PciSegmentLib.h
## @libraryclass Provides services to access PCI Configuration Space.
PciLib|Include/Library/PciLib.h

View File

@ -72,6 +72,7 @@
MdePkg/Library/BasePciSegmentInfoLibNull/BasePciSegmentInfoLibNull.inf
MdePkg/Library/PciSegmentLibSegmentInfo/BasePciSegmentLibSegmentInfo.inf
MdePkg/Library/PciSegmentLibSegmentInfo/DxeRuntimePciSegmentLibSegmentInfo.inf
MdePkg/Library/BaseS3PciSegmentLib/BaseS3PciSegmentLib.inf
MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf