Import some basic libraries instances for Mde Packages.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2704 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
83
MdePkg/Library/BasePrintLib/BasePrintLib.inf
Normal file
83
MdePkg/Library/BasePrintLib/BasePrintLib.inf
Normal file
@@ -0,0 +1,83 @@
|
||||
#/** @file
|
||||
# Component description file for Base Print Library.
|
||||
#
|
||||
# Print Library implementation.
|
||||
# Copyright (c) 2007, Intel Corporation.
|
||||
#
|
||||
# All rights reserved. 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 Section - statements that will be processed to create a Makefile.
|
||||
#
|
||||
################################################################################
|
||||
[Defines]
|
||||
INF_VERSION = 0x00010005
|
||||
BASE_NAME = BasePrintLib
|
||||
FILE_GUID = a86fbfca-0183-4eeb-aa8a-762e3b7da1f3
|
||||
MODULE_TYPE = BASE
|
||||
VERSION_STRING = 1.0
|
||||
LIBRARY_CLASS = PrintLib
|
||||
EDK_RELEASE_VERSION = 0x00020000
|
||||
EFI_SPECIFICATION_VERSION = 0x00020000
|
||||
|
||||
|
||||
#
|
||||
# The following information is for reference only and not required by the build tools.
|
||||
#
|
||||
# VALID_ARCHITECTURES = IA32 X64 IPF EBC
|
||||
#
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Sources Section - list of files that are required for the build to succeed.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
[Sources.common]
|
||||
PrintLibInternal.h
|
||||
PrintLibInternal.c
|
||||
PrintLib.c
|
||||
CommonHeader.h
|
||||
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Includes Section - list of Include locations that are required for
|
||||
# this module.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
[Includes]
|
||||
$(WORKSPACE)/MdePkg\Include/Library
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Package Dependency Section - list of Package files that are required for
|
||||
# this module.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
[Packages]
|
||||
MdePkg/MdePkg.dec
|
||||
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Library Class Section - list of Library Classes that are required for
|
||||
# this module.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
[LibraryClasses]
|
||||
DebugLib
|
||||
BaseLib
|
||||
|
47
MdePkg/Library/BasePrintLib/BasePrintLib.msa
Normal file
47
MdePkg/Library/BasePrintLib/BasePrintLib.msa
Normal file
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0">
|
||||
<MsaHeader>
|
||||
<ModuleName>BasePrintLib</ModuleName>
|
||||
<ModuleType>BASE</ModuleType>
|
||||
<GuidValue>a86fbfca-0183-4eeb-aa8a-762e3b7da1f3</GuidValue>
|
||||
<Version>1.0</Version>
|
||||
<Abstract>Component description file for Base Print Library.</Abstract>
|
||||
<Description>Print Library implementation.</Description>
|
||||
<Copyright>Copyright (c) 2006, Intel Corporation.</Copyright>
|
||||
<License>All rights reserved. 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.</License>
|
||||
<Specification>FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052</Specification>
|
||||
</MsaHeader>
|
||||
<ModuleDefinitions>
|
||||
<SupportedArchitectures>IA32 X64 IPF EBC</SupportedArchitectures>
|
||||
<BinaryModule>false</BinaryModule>
|
||||
<OutputFileBasename>BasePrintLib</OutputFileBasename>
|
||||
</ModuleDefinitions>
|
||||
<LibraryClassDefinitions>
|
||||
<LibraryClass Usage="ALWAYS_PRODUCED">
|
||||
<Keyword>PrintLib</Keyword>
|
||||
</LibraryClass>
|
||||
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||
<Keyword>BaseLib</Keyword>
|
||||
</LibraryClass>
|
||||
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||
<Keyword>DebugLib</Keyword>
|
||||
</LibraryClass>
|
||||
</LibraryClassDefinitions>
|
||||
<SourceFiles>
|
||||
<Filename>PrintLib.c</Filename>
|
||||
<Filename>PrintLibInternal.c</Filename>
|
||||
<Filename>PrintLibInternal.h</Filename>
|
||||
</SourceFiles>
|
||||
<PackageDependencies>
|
||||
<Package PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
|
||||
</PackageDependencies>
|
||||
<Externs>
|
||||
<Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>
|
||||
<Specification>EDK_RELEASE_VERSION 0x00020000</Specification>
|
||||
</Externs>
|
||||
</ModuleSurfaceArea>
|
33
MdePkg/Library/BasePrintLib/CommonHeader.h
Normal file
33
MdePkg/Library/BasePrintLib/CommonHeader.h
Normal file
@@ -0,0 +1,33 @@
|
||||
/**@file
|
||||
Common header file shared by all source files.
|
||||
|
||||
This file includes package header files, library classes and protocol, PPI & GUID definitions.
|
||||
|
||||
Copyright (c) 2007, Intel Corporation.
|
||||
All rights reserved. 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.
|
||||
**/
|
||||
|
||||
#ifndef __COMMON_HEADER_H_
|
||||
#define __COMMON_HEADER_H_
|
||||
|
||||
|
||||
//
|
||||
// The package level header files this module uses
|
||||
//
|
||||
#include <Base.h>
|
||||
//
|
||||
// The protocols, PPI and GUID defintions for this module
|
||||
//
|
||||
//
|
||||
// The Library classes this module consumes
|
||||
//
|
||||
#include <Library/PrintLib.h>
|
||||
#include <Library/BaseLib.h>
|
||||
#include <Library/DebugLib.h>
|
||||
|
||||
#endif
|
1085
MdePkg/Library/BasePrintLib/PrintLib.c
Normal file
1085
MdePkg/Library/BasePrintLib/PrintLib.c
Normal file
File diff suppressed because it is too large
Load Diff
214
MdePkg/Library/BasePrintLib/PrintLibInternal.c
Normal file
214
MdePkg/Library/BasePrintLib/PrintLibInternal.c
Normal file
@@ -0,0 +1,214 @@
|
||||
/** @file
|
||||
Print Library worker functions.
|
||||
|
||||
Copyright (c) 2006 - 2007, Intel Corporation<BR>
|
||||
All rights reserved. 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.
|
||||
|
||||
Module Name: PrintLibInternal.c
|
||||
|
||||
**/
|
||||
|
||||
//
|
||||
// Include common header file for this module.
|
||||
//
|
||||
#include "CommonHeader.h"
|
||||
|
||||
#include "PrintLibInternal.h"
|
||||
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED CONST CHAR8 mHexStr[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
|
||||
|
||||
|
||||
/**
|
||||
Internal function that places the character into the Buffer.
|
||||
|
||||
Internal function that places ASCII or Unicode character into the Buffer.
|
||||
|
||||
@param Buffer Buffer to place the Unicode or ASCII string.
|
||||
@param EndBuffer The end of the input Buffer. No characters will be
|
||||
placed after that.
|
||||
@param Length Count of character to be placed into Buffer.
|
||||
@param Character Character to be placed into Buffer.
|
||||
@param Increment Character increment in Buffer.
|
||||
|
||||
@return Number of characters printed.
|
||||
|
||||
**/
|
||||
CHAR8 *
|
||||
BasePrintLibFillBuffer (
|
||||
CHAR8 *Buffer,
|
||||
CHAR8 *EndBuffer,
|
||||
INTN Length,
|
||||
UINTN Character,
|
||||
INTN Increment
|
||||
)
|
||||
{
|
||||
INTN Index;
|
||||
|
||||
for (Index = 0; Index < Length && Buffer < EndBuffer; Index++) {
|
||||
*Buffer = (CHAR8) Character;
|
||||
*(Buffer + 1) = (CHAR8) (Character >> 8);
|
||||
Buffer += Increment;
|
||||
}
|
||||
return Buffer;
|
||||
}
|
||||
|
||||
/**
|
||||
Internal function that convert a decimal number to a string in Buffer.
|
||||
|
||||
Print worker function that convert a decimal number to a string in Buffer.
|
||||
|
||||
@param Buffer Location to place the Unicode or ASCII string of Value.
|
||||
@param Value Value to convert to a Decimal or Hexidecimal string in Buffer.
|
||||
@param Radix Radix of the value
|
||||
|
||||
@return Number of characters printed.
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EFIAPI
|
||||
BasePrintLibValueToString (
|
||||
IN OUT CHAR8 *Buffer,
|
||||
IN INT64 Value,
|
||||
IN UINTN Radix
|
||||
)
|
||||
{
|
||||
UINTN Digits;
|
||||
UINT32 Remainder;
|
||||
|
||||
//
|
||||
// Loop to convert one digit at a time in reverse order
|
||||
//
|
||||
*(Buffer++) = 0;
|
||||
Digits = 0;
|
||||
do {
|
||||
Value = (INT64)DivU64x32Remainder ((UINT64)Value, (UINT32)Radix, &Remainder);
|
||||
*(Buffer++) = mHexStr[Remainder];
|
||||
Digits++;
|
||||
} while (Value != 0);
|
||||
return Digits;
|
||||
}
|
||||
|
||||
/**
|
||||
Internal function that converts a decimal value to a Null-terminated string.
|
||||
|
||||
Converts the decimal number specified by Value to a Null-terminated
|
||||
string specified by Buffer containing at most Width characters.
|
||||
If Width is 0 then a width of MAXIMUM_VALUE_CHARACTERS is assumed.
|
||||
The number of characters in Buffer is returned not including the Null-terminator.
|
||||
If the conversion contains more than Width characters, then only the first
|
||||
Width characters are returned, and the total number of characters
|
||||
required to perform the conversion is returned.
|
||||
Additional conversion parameters are specified in Flags.
|
||||
The Flags bit LEFT_JUSTIFY is always ignored.
|
||||
All conversions are left justified in Buffer.
|
||||
If Width is 0, PREFIX_ZERO is ignored in Flags.
|
||||
If COMMA_TYPE is set in Flags, then PREFIX_ZERO is ignored in Flags, and commas
|
||||
are inserted every 3rd digit starting from the right.
|
||||
If HEX_RADIX is set in Flags, then the output buffer will be formatted in hexadecimal format.
|
||||
If Value is < 0 and HEX_RADIX is not set in Flags, then the fist character in Buffer is a '-'.
|
||||
If PREFIX_ZERO is set in Flags and PREFIX_ZERO is not being ignored,
|
||||
then Buffer is padded with '0' characters so the combination of the optional '-'
|
||||
sign character, '0' characters, digit characters for Value, and the Null-terminator
|
||||
add up to Width characters.
|
||||
If both COMMA_TYPE and HEX_RADIX are set in Flags, then ASSERT().
|
||||
|
||||
If Buffer is NULL, then ASSERT().
|
||||
If unsupported bits are set in Flags, then ASSERT().
|
||||
If Width >= MAXIMUM_VALUE_CHARACTERS, then ASSERT()
|
||||
|
||||
@param Buffer Pointer to the output buffer for the produced Null-terminated
|
||||
string.
|
||||
@param Flags The bitmask of flags that specify left justification, zero pad,
|
||||
and commas.
|
||||
@param Value The 64-bit signed value to convert to a string.
|
||||
@param Width The maximum number of characters to place in Buffer, not including
|
||||
the Null-terminator.
|
||||
@param Increment Character increment in Buffer.
|
||||
|
||||
@return The number of characters in Buffer not including the Null-terminator.
|
||||
|
||||
**/
|
||||
UINTN
|
||||
BasePrintLibConvertValueToString (
|
||||
IN OUT CHAR8 *Buffer,
|
||||
IN UINTN Flags,
|
||||
IN INT64 Value,
|
||||
IN UINTN Width,
|
||||
IN UINTN Increment
|
||||
)
|
||||
{
|
||||
CHAR8 *OriginalBuffer;
|
||||
CHAR8 *EndBuffer;
|
||||
CHAR8 ValueBuffer[MAXIMUM_VALUE_CHARACTERS];
|
||||
UINTN Count;
|
||||
UINTN Digits;
|
||||
UINTN Index;
|
||||
UINTN Radix;
|
||||
|
||||
ASSERT (Buffer != NULL);
|
||||
ASSERT (Width < MAXIMUM_VALUE_CHARACTERS);
|
||||
//
|
||||
// Make sure Flags can only contain supported bits.
|
||||
//
|
||||
ASSERT ((Flags & ~(LEFT_JUSTIFY | COMMA_TYPE | PREFIX_ZERO | RADIX_HEX)) == 0);
|
||||
|
||||
//
|
||||
// If both COMMA_TYPE and HEX_RADIX are set, then ASSERT ()
|
||||
//
|
||||
ASSERT (((Flags & COMMA_TYPE) != 0 && (Flags & RADIX_HEX) != 0) == FALSE);
|
||||
|
||||
OriginalBuffer = Buffer;
|
||||
|
||||
if (Width == 0 || (Flags & COMMA_TYPE) != 0) {
|
||||
Flags &= (~PREFIX_ZERO);
|
||||
}
|
||||
|
||||
if (Width == 0) {
|
||||
Width = MAXIMUM_VALUE_CHARACTERS - 1;
|
||||
}
|
||||
//
|
||||
// Set the tag for the end of the input Buffer.
|
||||
//
|
||||
EndBuffer = Buffer + Width * Increment;
|
||||
|
||||
if ((Value < 0) && ((Flags & RADIX_HEX) == 0)) {
|
||||
Value = -Value;
|
||||
Buffer = BasePrintLibFillBuffer (Buffer, EndBuffer, 1, '-', Increment);
|
||||
Width--;
|
||||
}
|
||||
|
||||
Radix = ((Flags & RADIX_HEX) == 0)? 10 : 16;
|
||||
Count = BasePrintLibValueToString (ValueBuffer, Value, Radix);
|
||||
|
||||
if ((Flags & PREFIX_ZERO) != 0) {
|
||||
Buffer = BasePrintLibFillBuffer (Buffer, EndBuffer, Width - Count, '0', Increment);
|
||||
}
|
||||
|
||||
Digits = Count % 3;
|
||||
if (Digits != 0) {
|
||||
Digits = 3 - Digits;
|
||||
}
|
||||
for (Index = 0; Index < Count; Index++) {
|
||||
Buffer = BasePrintLibFillBuffer (Buffer, EndBuffer, 1, ValueBuffer[Count - Index], Increment);
|
||||
if ((Flags & COMMA_TYPE) != 0) {
|
||||
Digits++;
|
||||
if (Digits == 3) {
|
||||
Digits = 0;
|
||||
if ((Index + 1) < Count) {
|
||||
Buffer = BasePrintLibFillBuffer (Buffer, EndBuffer, 1, ',', Increment);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BasePrintLibFillBuffer (Buffer, EndBuffer + Increment, 1, 0, Increment);
|
||||
|
||||
return ((Buffer - OriginalBuffer) / Increment);
|
||||
}
|
||||
|
206
MdePkg/Library/BasePrintLib/PrintLibInternal.h
Normal file
206
MdePkg/Library/BasePrintLib/PrintLibInternal.h
Normal file
@@ -0,0 +1,206 @@
|
||||
/** @file
|
||||
Print Library Internal Functions.
|
||||
|
||||
Copyright (c) 2006 - 2007, Intel Corporation
|
||||
All rights reserved. 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.
|
||||
|
||||
Module Name: PrintLibInternal.h
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __PRINT_LIB_INTERNAL_H
|
||||
#define __PRINT_LIB_INTERNAL_H
|
||||
|
||||
//
|
||||
// Include common header file for this module.
|
||||
//
|
||||
#include "CommonHeader.h"
|
||||
|
||||
//
|
||||
// Print primitives
|
||||
//
|
||||
//#define LEFT_JUSTIFY 0x01
|
||||
#define PREFIX_SIGN 0x02
|
||||
#define PREFIX_BLANK 0x04
|
||||
//#define COMMA_TYPE 0x08
|
||||
#define LONG_TYPE 0x10
|
||||
//#define PREFIX_ZERO 0x20
|
||||
#define OUTPUT_UNICODE 0x40
|
||||
//#define RADIX_HEX 0x80
|
||||
#define FORMAT_UNICODE 0x100
|
||||
#define PAD_TO_WIDTH 0x200
|
||||
#define ARGUMENT_UNICODE 0x400
|
||||
#define PRECISION 0x800
|
||||
#define ARGUMENT_REVERSED 0x1000
|
||||
|
||||
//
|
||||
// Record date and time information
|
||||
//
|
||||
typedef struct {
|
||||
UINT16 Year;
|
||||
UINT8 Month;
|
||||
UINT8 Day;
|
||||
UINT8 Hour;
|
||||
UINT8 Minute;
|
||||
UINT8 Second;
|
||||
UINT8 Pad1;
|
||||
UINT32 Nanosecond;
|
||||
INT16 TimeZone;
|
||||
UINT8 Daylight;
|
||||
UINT8 Pad2;
|
||||
} TIME;
|
||||
|
||||
/**
|
||||
Worker function that produces a Null-terminated string in an output buffer
|
||||
based on a Null-terminated format string and a VA_LIST argument list.
|
||||
|
||||
VSPrint function to process format and place the results in Buffer. Since a
|
||||
VA_LIST is used this rountine allows the nesting of Vararg routines. Thus
|
||||
this is the main print working routine.
|
||||
|
||||
@param Buffer Character buffer to print the results of the parsing
|
||||
of Format into.
|
||||
@param BufferSize Maximum number of characters to put into buffer.
|
||||
@param Flags Intial flags value.
|
||||
Can only have FORMAT_UNICODE and OUTPUT_UNICODE set.
|
||||
@param Format Null-terminated format string.
|
||||
@param Marker Vararg list consumed by processing Format.
|
||||
|
||||
@return Number of characters printed not including the Null-terminator.
|
||||
|
||||
**/
|
||||
UINTN
|
||||
BasePrintLibVSPrint (
|
||||
OUT CHAR8 *Buffer,
|
||||
IN UINTN BufferSize,
|
||||
IN UINTN Flags,
|
||||
IN CONST CHAR8 *Format,
|
||||
IN VA_LIST Marker
|
||||
);
|
||||
|
||||
/**
|
||||
Worker function that produces a Null-terminated string in an output buffer
|
||||
based on a Null-terminated format string and variable argument list.
|
||||
|
||||
VSPrint function to process format and place the results in Buffer. Since a
|
||||
VA_LIST is used this rountine allows the nesting of Vararg routines. Thus
|
||||
this is the main print working routine
|
||||
|
||||
@param Buffer Character buffer to print the results of the parsing
|
||||
of Format into.
|
||||
@param BufferSize Maximum number of characters to put into buffer.
|
||||
Zero means no limit.
|
||||
@param Flags Intial flags value.
|
||||
Can only have FORMAT_UNICODE and OUTPUT_UNICODE set
|
||||
@param FormatString Null-terminated format string.
|
||||
|
||||
@return Number of characters printed.
|
||||
|
||||
**/
|
||||
UINTN
|
||||
BasePrintLibSPrint (
|
||||
OUT CHAR8 *Buffer,
|
||||
IN UINTN BufferSize,
|
||||
IN UINTN Flags,
|
||||
IN CONST CHAR8 *FormatString,
|
||||
...
|
||||
);
|
||||
|
||||
/**
|
||||
Internal function that places the character into the Buffer.
|
||||
|
||||
Internal function that places ASCII or Unicode character into the Buffer.
|
||||
|
||||
@param Buffer Buffer to place the Unicode or ASCII string.
|
||||
@param EndBuffer The end of the input Buffer. No characters will be
|
||||
placed after that.
|
||||
@param Length Count of character to be placed into Buffer.
|
||||
@param Character Character to be placed into Buffer.
|
||||
@param Increment Character increment in Buffer.
|
||||
|
||||
@return Number of characters printed.
|
||||
|
||||
**/
|
||||
CHAR8 *
|
||||
BasePrintLibFillBuffer (
|
||||
CHAR8 *Buffer,
|
||||
CHAR8 *EndBuffer,
|
||||
INTN Length,
|
||||
UINTN Character,
|
||||
INTN Increment
|
||||
);
|
||||
|
||||
/**
|
||||
Internal function that convert a decimal number to a string in Buffer.
|
||||
|
||||
Print worker function that convert a decimal number to a string in Buffer.
|
||||
|
||||
@param Buffer Location to place the Unicode or ASCII string of Value.
|
||||
@param Value Value to convert to a Decimal or Hexidecimal string in Buffer.
|
||||
@param Radix Radix of the value
|
||||
|
||||
@return Number of characters printed.
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EFIAPI
|
||||
BasePrintLibValueToString (
|
||||
IN OUT CHAR8 *Buffer,
|
||||
IN INT64 Value,
|
||||
IN UINTN Radix
|
||||
);
|
||||
|
||||
/**
|
||||
Internal function that converts a decimal value to a Null-terminated string.
|
||||
|
||||
Converts the decimal number specified by Value to a Null-terminated
|
||||
string specified by Buffer containing at most Width characters.
|
||||
If Width is 0 then a width of MAXIMUM_VALUE_CHARACTERS is assumed.
|
||||
The total number of characters placed in Buffer is returned.
|
||||
If the conversion contains more than Width characters, then only the first
|
||||
Width characters are returned, and the total number of characters
|
||||
required to perform the conversion is returned.
|
||||
Additional conversion parameters are specified in Flags.
|
||||
The Flags bit LEFT_JUSTIFY is always ignored.
|
||||
All conversions are left justified in Buffer.
|
||||
If Width is 0, PREFIX_ZERO is ignored in Flags.
|
||||
If COMMA_TYPE is set in Flags, then PREFIX_ZERO is ignored in Flags, and commas
|
||||
are inserted every 3rd digit starting from the right.
|
||||
If Value is < 0, then the fist character in Buffer is a '-'.
|
||||
If PREFIX_ZERO is set in Flags and PREFIX_ZERO is not being ignored,
|
||||
then Buffer is padded with '0' characters so the combination of the optional '-'
|
||||
sign character, '0' characters, digit characters for Value, and the Null-terminator
|
||||
add up to Width characters.
|
||||
|
||||
If Buffer is NULL, then ASSERT().
|
||||
If unsupported bits are set in Flags, then ASSERT().
|
||||
If Width >= MAXIMUM_VALUE_CHARACTERS, then ASSERT()
|
||||
|
||||
@param Buffer Pointer to the output buffer for the produced Null-terminated
|
||||
string.
|
||||
@param Flags The bitmask of flags that specify left justification, zero pad,
|
||||
and commas.
|
||||
@param Value The 64-bit signed value to convert to a string.
|
||||
@param Width The maximum number of characters to place in Buffer, not including
|
||||
the Null-terminator.
|
||||
@param Increment Character increment in Buffer.
|
||||
|
||||
@return Total number of characters required to perform the conversion.
|
||||
|
||||
**/
|
||||
UINTN
|
||||
BasePrintLibConvertValueToString (
|
||||
IN OUT CHAR8 *Buffer,
|
||||
IN UINTN Flags,
|
||||
IN INT64 Value,
|
||||
IN UINTN Width,
|
||||
IN UINTN Increment
|
||||
);
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user