mirror of
				https://github.com/acidanthera/audk.git
				synced 2025-10-31 11:13:53 +01:00 
			
		
		
		
	Add library classes which are required by StdLib, but not commonly defined in Platform DSC files, to StdLib.inc. Modify MB_LEN_MAX to be 4, the maximum length of UTF-8 characters. Adjust size of internal buffers to be multiples of MB_LEN_MAX instead of assuming 1-byte characters. Make the XYoffset object public and move its declaration into EfiSysCall.h. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: daryl.mcdaniel@intel.com Reviewed-by: erik.c.bjorge@intel.com Reviewed-by: lee.g.rosenbaum@intel.com Reviewed-by: leroy.p.leahy@intel.com git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13457 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			116 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   The header <limits.h> defines several macros that expand to various limits and
 | |
|   parameters of the standard integer types.
 | |
| 
 | |
|   The values given below are constant expressions suitable for
 | |
|   use in #if preprocessing directives. Except for CHAR_BIT and
 | |
|   MB_LEN_MAX, they have the same
 | |
|   type as would an expression that is an object of the corresponding type
 | |
|   converted according to the integer promotions.
 | |
| 
 | |
|   Copyright (c) 2010 - 2012, 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 that accompanies this distribution.
 | |
|   The full text of the license may be found at
 | |
|   http://opensource.org/licenses/bsd-license.
 | |
| 
 | |
|   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 _LIMITS_H
 | |
| #define _LIMITS_H
 | |
| #include  <sys/EfiCdefs.h>
 | |
| #include  <Library/PcdLib.h>
 | |
| 
 | |
| /* Get the architecturally defined limits for this compilation unit. */
 | |
| #include  <machine/limits.h>
 | |
| 
 | |
| /* Define the values required by the ISO/IEC 9899 Specification. */
 | |
| 
 | |
| /** Maximum number of bytes in a multibyte character, for any supported locale. **/
 | |
| #define MB_LEN_MAX  4               /* UTF-8 can require up to 4 bytes */
 | |
| 
 | |
| /** Number of bits comprising the smallest object that is not a bit-field (byte). **/
 | |
| #define CHAR_BIT    __CHAR_BIT
 | |
| 
 | |
| /** Minimum value for an object of type signed char. **/
 | |
| #define SCHAR_MIN   __SCHAR_MIN
 | |
| 
 | |
| /** Maximum value for an object of type signed char. **/
 | |
| #define SCHAR_MAX   __SCHAR_MAX
 | |
| 
 | |
| /** Maximum value for an object of type unsigned char. **/
 | |
| #define UCHAR_MAX   __UCHAR_MAX
 | |
| 
 | |
| #ifdef __CHAR_UNSIGNED__
 | |
|   /** Maximum value for an object of type char. **/
 | |
|   #define CHAR_MAX  UCHAR_MAX
 | |
|   /** Minimum value for an object of type char. **/
 | |
|   #define CHAR_MIN  0
 | |
| #else
 | |
|   /** Maximum value for an object of type char. **/
 | |
|   #define CHAR_MAX  SCHAR_MAX
 | |
|   /** Minimum value for an object of type char. **/
 | |
|   #define CHAR_MIN  SCHAR_MIN
 | |
| #endif
 | |
| 
 | |
| /** Minimum value for an object of type short int. **/
 | |
| #define SHRT_MIN    __SHRT_MIN
 | |
| 
 | |
| /** Maximum value for an object of type short int. **/
 | |
| #define SHRT_MAX    __SHRT_MAX
 | |
| 
 | |
| /** Maximum value for an object of type unsigned short int. **/
 | |
| #define USHRT_MAX   __USHRT_MAX
 | |
| 
 | |
| /** Minimum value for an object of type int. **/
 | |
| #define INT_MIN     __INT_MIN
 | |
| 
 | |
| /** Maximum value for an object of type int. **/
 | |
| #define INT_MAX     __INT_MAX
 | |
| 
 | |
| /** Maximum value for an object of type unsigned int. **/
 | |
| #define UINT_MAX    __UINT_MAX
 | |
| 
 | |
| /** Minimum value for an object of type long int. **/
 | |
| #define LONG_MIN    __LONG_MIN
 | |
| 
 | |
| /** Maximum value for an object of type long int. **/
 | |
| #define LONG_MAX    __LONG_MAX
 | |
| 
 | |
| /** Maximum value for an object of type unsigned long int. **/
 | |
| #define ULONG_MAX   __ULONG_MAX
 | |
| 
 | |
| /** Minimum value for an object of type long long int. **/
 | |
| #define LLONG_MIN   __LLONG_MIN
 | |
| 
 | |
| /** Maximum value for an object of type long long int. **/
 | |
| #define LLONG_MAX   __LLONG_MAX
 | |
| 
 | |
| /** Maximum value for an object of type unsigned long long int. **/
 | |
| #define ULLONG_MAX  __ULLONG_MAX
 | |
| 
 | |
| /* Object limits used in the Standard Libraries */
 | |
| #if (PcdGet32(PcdMaximumAsciiStringLength) > 0)
 | |
|   /** Maximum length of an arbitrary "narrow-character" string. **/
 | |
|   #define ASCII_STRING_MAX    PcdGet32(PcdMaximumAsciiStringLength)
 | |
| #else
 | |
|   /** Maximum length of an arbitrary "narrow-character" string. **/
 | |
|   #define ASCII_STRING_MAX    256
 | |
| #endif
 | |
| 
 | |
| #if (PcdGet32(PcdMaximumUnicodeStringLength) > 0)
 | |
|   /** Maximum length of an arbitrary "wide-character" string. **/
 | |
|   #define UNICODE_STRING_MAX    PcdGet32(PcdMaximumUnicodeStringLength)
 | |
| #else
 | |
|   /** Maximum length of an arbitrary "wide-character" string. **/
 | |
|   #define UNICODE_STRING_MAX    512
 | |
| #endif
 | |
| 
 | |
| /* Limits for BSD Compatibility */
 | |
| #define NL_TEXTMAX    2048
 | |
| 
 | |
| #include  <sys/syslimits.h>
 | |
| 
 | |
| #endif  /* _LIMITS_H */
 |