MdePkg: Add S3 library interfaces and base implementations
Signed-off-by: jljusten Reviewed-by: mdkinney Reviewed-by: rsun3 Reviewed-by: jyao1 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12222 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
45
MdePkg/Library/BaseS3StallLib/BaseS3StallLib.inf
Normal file
45
MdePkg/Library/BaseS3StallLib/BaseS3StallLib.inf
Normal file
@@ -0,0 +1,45 @@
|
||||
## @file
|
||||
# Component description file for S3StallLib.
|
||||
#
|
||||
# Stall Services that do stall and also enable the Stall operatation
|
||||
# to be replayed during an S3 resume. This library class maps directly on top
|
||||
# of the Timer class.
|
||||
#
|
||||
# Copyright (c) 2007 - 2010, 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 = BaseS3StallLib
|
||||
FILE_GUID = 498C6AC3-CC29-4821-BE6F-7C6F4ECF2C14
|
||||
MODULE_TYPE = BASE
|
||||
VERSION_STRING = 1.0
|
||||
LIBRARY_CLASS = S3StallLib
|
||||
|
||||
|
||||
#
|
||||
# The following information is for reference only and not required by the build tools.
|
||||
#
|
||||
# VALID_ARCHITECTURES = IA32 X64 IPF EBC
|
||||
#
|
||||
|
||||
[Sources]
|
||||
S3StallLib.c
|
||||
|
||||
[Packages]
|
||||
MdePkg/MdePkg.dec
|
||||
|
||||
[LibraryClasses]
|
||||
DebugLib
|
||||
TimerLib
|
||||
S3BootScriptLib
|
||||
|
52
MdePkg/Library/BaseS3StallLib/S3StallLib.c
Normal file
52
MdePkg/Library/BaseS3StallLib/S3StallLib.c
Normal file
@@ -0,0 +1,52 @@
|
||||
/** @file
|
||||
Stall Services that do stall and also enable the Stall operatation
|
||||
to be replayed during an S3 resume. This library class maps directly on top
|
||||
of the Timer class.
|
||||
|
||||
Copyright (c) 2007, 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.
|
||||
|
||||
**/
|
||||
|
||||
#include <Base.h>
|
||||
|
||||
#include <Library/TimerLib.h>
|
||||
#include <Library/DebugLib.h>
|
||||
#include <Library/S3BootScriptLib.h>
|
||||
#include <Library/S3StallLib.h>
|
||||
|
||||
|
||||
/**
|
||||
Stalls the CPU for at least the given number of microseconds and and saves
|
||||
the value in the S3 script to be replayed on S3 resume.
|
||||
|
||||
Stalls the CPU for the number of microseconds specified by MicroSeconds.
|
||||
|
||||
@param MicroSeconds The minimum number of microseconds to delay.
|
||||
|
||||
@return MicroSeconds
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EFIAPI
|
||||
S3Stall (
|
||||
IN UINTN MicroSeconds
|
||||
)
|
||||
{
|
||||
RETURN_STATUS Status;
|
||||
|
||||
Status = S3BootScriptSaveStall (MicroSecondDelay (MicroSeconds));
|
||||
ASSERT (Status == RETURN_SUCCESS);
|
||||
|
||||
return MicroSeconds;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user