]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/BasePrintLib/PrintLibInternal.h
1) Added BIT0, BIT1, …, BIT63 to the Base Defines
[mirror_edk2.git] / MdePkg / Library / BasePrintLib / PrintLibInternal.h
index f395bb795622d97ee02df45275404703d0bffe2d..4482cc266c4c8bd35de4cdaaad7f7e63a1138ec1 100644 (file)
-/** @file\r
-  Print Library.\r
-\r
-  Copyright (c) 2006, Intel Corporation\r
-  All rights reserved. This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this distribution.  The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php\r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-  Module Name:  PrintLibInternal.h\r
-\r
-**/\r
-\r
-//\r
-// Print primitives\r
-//\r
-//#define LEFT_JUSTIFY      0x01\r
-#define PREFIX_SIGN       0x02\r
-#define PREFIX_BLANK      0x04\r
-//#define COMMA_TYPE        0x08\r
-#define LONG_TYPE         0x10\r
-//#define PREFIX_ZERO       0x20\r
-#define OUTPUT_UNICODE    0x40\r
-#define RADIX_HEX         0x80\r
-#define FORMAT_UNICODE    0x100\r
-#define PAD_TO_WIDTH      0x200\r
-#define ARGUMENT_UNICODE  0x400\r
-#define PRECISION         0x800\r
-#define ARGUMENT_REVERSED 0x1000\r
-\r
-//\r
-// Record date and time information\r
-//\r
-typedef struct {\r
-  UINT16  Year;\r
-  UINT8   Month;\r
-  UINT8   Day;\r
-  UINT8   Hour;\r
-  UINT8   Minute;\r
-  UINT8   Second;\r
-  UINT8   Pad1;\r
-  UINT32  Nanosecond;\r
-  INT16   TimeZone;\r
-  UINT8   Daylight;\r
-  UINT8   Pad2;\r
-} TIME;\r
-\r
-/**\r
-  Worker function that produces a Null-terminated string in an output buffer \r
-  based on a Null-terminated format string and variable argument list.\r
-\r
-  VSPrint function to process format and place the results in Buffer. Since a \r
-  VA_LIST is used this rountine allows the nesting of Vararg routines. Thus \r
-  this is the main print working routine\r
-\r
-  @param  Buffer        Character buffer to print the results of the parsing\r
-                        of Format into.\r
-  @param  BufferSize    Maximum number of characters to put into buffer.\r
-                        Zero means no limit.\r
-  @param  Flags         Intial flags value.\r
-                        Can only have FORMAT_UNICODE and OUTPUT_UNICODE set\r
-  @param  FormatString  Null-terminated format string.\r
-\r
-  @return Number of characters printed.\r
-\r
-**/\r
-UINTN\r
-BasePrintLibSPrint (\r
-  OUT CHAR8        *Buffer,\r
-  IN  UINTN        BufferSize,\r
-  IN  UINTN        Flags,\r
-  IN  CONST CHAR8  *FormatString,\r
-  ...\r
-  );\r
-\r
-/**\r
-  Internal function that places the character into the Buffer.\r
-\r
-  Internal function that places ASCII or Unicode character into the Buffer.\r
-\r
-  @param  Buffer      Buffer to place the Unicode or ASCII string.\r
-  @param  Length      Count of character to be placed into Buffer.\r
-  @param  Character   Character to be placed into Buffer.\r
-  @param  Increment   Character increment in Buffer.\r
-\r
-  @return Number of characters printed.\r
-\r
-**/\r
-CHAR8 *\r
-BasePrintLibFillBuffer (\r
-  CHAR8   *Buffer,\r
-  INTN    Length,\r
-  UINTN   Character,\r
-  INTN    Increment\r
-  );\r
-\r
-/**\r
-  Internal function that convert a decimal number to a string in Buffer.\r
-\r
-  Print worker function that convert a decimal number to a string in Buffer.\r
-\r
-  @param  Buffer    Location to place the Unicode or ASCII string of Value.\r
-  @param  Value     Value to convert to a Decimal or Hexidecimal string in Buffer.\r
-  @param  Radix     Radix of the value\r
-\r
-  @return Number of characters printed.\r
-\r
-**/\r
-UINTN\r
-EFIAPI\r
-BasePrintLibValueToString (\r
-  IN OUT CHAR8  *Buffer, \r
-  IN INT64      Value, \r
-  IN UINTN      Radix\r
-  );\r
-\r
-/**\r
-  Internal function that converts a decimal value to a Null-terminated string.\r
-  \r
-  Converts the decimal number specified by Value to a Null-terminated  \r
-  string specified by Buffer containing at most Width characters.\r
-  If Width is 0 then a width of  MAXIMUM_VALUE_CHARACTERS is assumed.\r
-  The total number of characters placed in Buffer is returned.\r
-  If the conversion contains more than Width characters, then only the first\r
-  Width characters are returned, and the total number of characters \r
-  required to perform the conversion is returned.\r
-  Additional conversion parameters are specified in Flags.  \r
-  The Flags bit LEFT_JUSTIFY is always ignored.\r
-  All conversions are left justified in Buffer.\r
-  If Width is 0, PREFIX_ZERO is ignored in Flags.\r
-  If COMMA_TYPE is set in Flags, then PREFIX_ZERO is ignored in Flags, and commas\r
-  are inserted every 3rd digit starting from the right.\r
-  If Value is < 0, then the fist character in Buffer is a '-'.\r
-  If PREFIX_ZERO is set in Flags and PREFIX_ZERO is not being ignored, \r
-  then Buffer is padded with '0' characters so the combination of the optional '-' \r
-  sign character, '0' characters, digit characters for Value, and the Null-terminator\r
-  add up to Width characters.\r
-\r
-  If Buffer is NULL, then ASSERT().\r
-  If unsupported bits are set in Flags, then ASSERT().\r
-  If Width >= MAXIMUM_VALUE_CHARACTERS, then ASSERT()\r
-\r
-  @param  Buffer    Pointer to the output buffer for the produced Null-terminated\r
-                    string.\r
-  @param  Flags     The bitmask of flags that specify left justification, zero pad,\r
-                    and commas.\r
-  @param  Value     The 64-bit signed value to convert to a string.\r
-  @param  Width            The maximum number of characters to place in Buffer.\r
-  @param  Increment Character increment in Buffer.\r
-  \r
-  @return Total number of characters required to perform the conversion.\r
-\r
-**/\r
-UINTN\r
-BasePrintLibConvertValueToString (\r
-  IN OUT CHAR8   *Buffer,\r
-  IN UINTN       Flags,\r
-  IN INT64       Value,\r
-  IN UINTN       Width,\r
-  IN UINTN       Increment\r
-  );\r
+/** @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
+
+//
+// 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