StdLib: Add multi-byte character support. The normal "narrow" character set is now UTF-8 instead of ASCII.

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
This commit is contained in:
darylm503
2012-06-15 19:58:39 +00:00
parent c7907ba2fa
commit a7a8363d86
15 changed files with 1023 additions and 99 deletions

View File

@@ -53,7 +53,7 @@
BOOLEAN ValidateFD (int fd, int IsOpen);
@endverbatim
Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>
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
@@ -333,4 +333,18 @@ __BEGIN_DECLS
int reboot (int, char *);
__END_DECLS
/* The console output stream, stdout, supports cursor positioning via the
lseek() function call. The following entities facilitate packing the
X and Y coordinates into the offset parameter of the lseek call.
*/
typedef struct {
UINT32 Column;
UINT32 Row;
} CURSOR_XY;
typedef union {
UINT64 Offset;
CURSOR_XY XYpos;
} XY_OFFSET;
#endif /* _EFI_SYS_CALL_H */