From a7a8363d86ec8ad445fb73619b1ca5cac4e56a86 Mon Sep 17 00:00:00 2001 From: darylm503 Date: Fri, 15 Jun 2012 19:58:39 +0000 Subject: 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 --- StdLib/Include/Ipf/machine/ansi.h | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'StdLib/Include/Ipf/machine') diff --git a/StdLib/Include/Ipf/machine/ansi.h b/StdLib/Include/Ipf/machine/ansi.h index 07a2008717..bab41b040c 100644 --- a/StdLib/Include/Ipf/machine/ansi.h +++ b/StdLib/Include/Ipf/machine/ansi.h @@ -1,6 +1,15 @@ -/* $NetBSD: ansi.h,v 1.3 2006/10/04 13:52:00 tnozaki Exp $ */ +/** @file + Machine dependent ANSI type definitions. + + Copyright (c) 2010-2012, 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 that 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. -/*- * Copyright (c) 1990, 1993 * The Regents of the University of California. All rights reserved. * @@ -29,8 +38,8 @@ * SUCH DAMAGE. * * @(#)ansi.h 8.2 (Berkeley) 1/4/94 + NetBSD: ansi.h,v 1.3 2006/10/04 13:52:00 tnozaki Exp */ - #ifndef _ANSI_H_ #define _ANSI_H_ @@ -86,9 +95,12 @@ * mbstate_t is an opaque object to keep conversion state, during multibyte * stream conversions. The content must not be referenced by user programs. */ -typedef union { - __int64_t __mbstateL; /* for alignment */ - char __mbstate8[128]; +typedef struct { + UINT32 A; // Np; + UINT32 B; // U; + UINT32 E; // L + UINT8 C[4]; // n[4] + UINT16 D[2]; // w[2] } __mbstate_t; #define _BSD_MBSTATE_T_ __mbstate_t /* mbstate_t */ -- cgit v1.2.3