From a9c12422ff2b4d8c4aec3d940302fc61b4ee39f7 Mon Sep 17 00:00:00 2001 From: darylm503 Date: Thu, 20 Sep 2012 21:01:21 +0000 Subject: [PATCH] StdLib, StdLibPrivateInternalFiles: Clean up comments, Remove debugging code, Define MAX_OUTPUT, the Maximum number of bytes in a single terminal output operation. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Daryl McDaniel Reviewed-by: Jaben Carsey git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13735 6f19259b-4bc3-4df7-8a09-765794883524 --- StdLib/Include/sys/stat.h | 10 +++-- StdLib/Include/sys/syslimits.h | 3 +- StdLib/Include/wchar.h | 48 +++++++++++++--------- StdLib/LibC/Stdio/refill.c | 16 +------- StdLibPrivateInternalFiles/Include/kfile.h | 12 +++++- 5 files changed, 48 insertions(+), 41 deletions(-) diff --git a/StdLib/Include/sys/stat.h b/StdLib/Include/sys/stat.h index 6c5d5a8078..12520be83a 100644 --- a/StdLib/Include/sys/stat.h +++ b/StdLib/Include/sys/stat.h @@ -1,6 +1,6 @@ /** @file - Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.
+ 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 @@ -90,16 +90,18 @@ struct stat { /* The Octal access modes, above, fall into the Hex mask 0x00000FFF. Traditionally, the remainder of the flags are specified in Octal but they are expressed in Hex here for modern clarity. + + The basic file types, specified within 0x0000F000, are mutually exclusive. */ #define _S_IFMT 0x000FF000 ///< type-of-file mask #define _S_IFIFO 0x00001000 ///< named pipe (fifo) -#define _S_IFCHR 0x00002000 ///< character special +#define _S_IFCHR 0x00002000 ///< character special device #define _S_IFDIR 0x00004000 ///< directory -#define _S_IFBLK 0x00006000 ///< block special +#define _S_IFBLK 0x00006000 ///< block special device #define _S_IFREG 0x00008000 ///< regular #define _S_IFSOCK 0x0000C000 ///< socket #define _S_ITTY 0x00010000 ///< File connects to a TTY device -#define _S_IWTTY 0x00020000 ///< TTY receives Wide characters +#define _S_IWTTY 0x00020000 ///< TTY sends and receives Wide characters #define _S_ICONSOLE 0x00030000 ///< UEFI Console Device /* UEFI specific (FAT file system) File attributes. diff --git a/StdLib/Include/sys/syslimits.h b/StdLib/Include/sys/syslimits.h index bee810cc12..9515e8f570 100644 --- a/StdLib/Include/sys/syslimits.h +++ b/StdLib/Include/sys/syslimits.h @@ -1,7 +1,7 @@ /** @file Platform specific values for . - Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.
+ 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 @@ -50,6 +50,7 @@ #define ARGC_MAX (64) ///< Maximum value for argc. #define MAX_INPUT 255 ///< Maximum bytes in terminal input. +#define MAX_OUTPUT 255 ///< Maximum bytes in terminal output. #define NAME_MAX 255 ///< Maximum bytes in a file name. #ifndef OPEN_MAX #define OPEN_MAX 20 ///< Maximum open files per process. diff --git a/StdLib/Include/wchar.h b/StdLib/Include/wchar.h index d8e15caa40..b53ee24939 100644 --- a/StdLib/Include/wchar.h +++ b/StdLib/Include/wchar.h @@ -150,7 +150,7 @@ - WEOF might not be negative. - mbstate_t objects are not intended to be inspected by programs. - Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.
+ 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 @@ -913,7 +913,7 @@ wint_t fgetwc(FILE *Stream); @param[out] S A pointer to the array to receive the input string. @param[in] Limit The maximum number of characters to put into Buff, including the terminating null character. - @param[in] Stream An input stream from which to obtain a character. + @param[in] Stream An input stream from which to obtain the string. @return The fgetws function returns S if successful. If end-of-file is encountered and no characters have been read into the array, the @@ -1420,7 +1420,7 @@ int mbsinit(const mbstate_t *ps); **/ size_t mbrlen(const char * __restrict S, size_t n, mbstate_t * __restrict ps); -/** +/** Restartable Multibyte to Wide character conversion. If S is a null pointer, the mbrtowc function is equivalent to the call:
@verbatim mbrtowc(NULL, "", 1, ps) @@ -1476,22 +1476,27 @@ to restore the initial shift state; the resulting state described is the initial **/ size_t wcrtomb(char * __restrict S, wchar_t wc, mbstate_t * __restrict ps); -/** -The mbsrtowcs function converts a sequence of multibyte characters that begins in the -conversion state described by the object pointed to by ps, from the array indirectly -pointed to by src into a sequence of corresponding wide characters. If dst is not a null -pointer, the converted characters are stored into the array pointed to by dst. Conversion -continues up to and including a terminating null character, which is also stored. -Conversion stops earlier in two cases: when a sequence of bytes is encountered that does -not form a valid multibyte character, or (if dst is not a null pointer) when len wide -characters have been stored into the array pointed to by dst. Each conversion takes -place as if by a call to the mbrtowc function. - -If dst is not a null pointer, the pointer object pointed to by src is assigned either a null -pointer (if conversion stopped due to reaching a terminating null character) or the address -just past the last multibyte character converted (if any). If conversion stopped due to -reaching a terminating null character and if dst is not a null pointer, the resulting state -described is the initial conversion state. +/** Convert a sequence of multibyte characters into a sequence of wide characters. + The mbsrtowcs function converts a sequence of multibyte characters that begins in the + conversion state described by the object pointed to by ps, from the array indirectly + pointed to by src into a sequence of corresponding wide characters. If dst is not a null + pointer, the converted characters are stored into the array pointed to by dst. Conversion + continues up to and including a terminating null character, which is also stored. + Conversion stops earlier in two cases: when a sequence of bytes is encountered that does + not form a valid multibyte character, or (if dst is not a null pointer) when len wide + characters have been stored into the array pointed to by dst. Each conversion takes + place as if by a call to the mbrtowc function. + + If dst is not a null pointer, the pointer object pointed to by src is assigned either a null + pointer (if conversion stopped due to reaching a terminating null character) or the address + just past the last multibyte character converted (if any). If conversion stopped due to + reaching a terminating null character and if dst is not a null pointer, the resulting state + described is the initial conversion state. + + @param[in] dst Destination for the Wide character sequence. + @param[in] src Pointer to Pointer to MBCS char. sequence to convert. + @param[in] len Length of dest, in WIDE characters. + @param[in] ps Pointer to the conversion state object to be used for this conversion. @return If the input conversion encounters a sequence of bytes that do not form a valid multibyte character, an encoding error occurs: @@ -1523,6 +1528,11 @@ size_t mbsrtowcs(wchar_t * __restrict dst, const char ** __restrict src, size_t terminating null wide character, the resulting state described is the initial conversion state. + @param[in] dst Destination for the MBCS sequence. + @param[in] src Pointer to Pointer to wide char. sequence to convert. + @param[in] len Length of dest, in bytes. + @param[in] ps Pointer to the conversion state object to be used for this conversion. + @return If conversion stops because a wide character is reached that does not correspond to a valid multibyte character, an encoding error occurs: the wcsrtombs function stores the diff --git a/StdLib/LibC/Stdio/refill.c b/StdLib/LibC/Stdio/refill.c index 953e8f674a..a69f022dee 100644 --- a/StdLib/LibC/Stdio/refill.c +++ b/StdLib/LibC/Stdio/refill.c @@ -1,5 +1,5 @@ /* - Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.
+ 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 @@ -41,9 +41,6 @@ NetBSD: refill.c,v 1.13 2003/08/07 16:43:30 agc Exp refill.c 8.1 (Berkeley) 6/4/93 */ -#include // REMOVE, For DEBUG only -#include // REMOVE, For DEBUG only - #include #include @@ -93,28 +90,23 @@ __srefill(FILE *fp) if (!__sdidinit) __sinit(); -//Print(L"%a( %d)\n", __func__, fp->_file); fp->_r = 0; /* largely a convenience for callers */ /* SysV does not make this test; take it out for compatibility */ if (fp->_flags & __SEOF) { -//Print(L"%a: %d\n", __func__, __LINE__); return (EOF); } /* if not already reading, have to be reading and writing */ if ((fp->_flags & __SRD) == 0) { -//Print(L"%a: %d\n", __func__, __LINE__); if ((fp->_flags & __SRW) == 0) { errno = EBADF; fp->_flags |= __SERR; // Allows differentiation between errors and EOF -//Print(L"%a: %d\n", __func__, __LINE__); return (EOF); } /* switch to reading */ if (fp->_flags & __SWR) { if (__sflush(fp)) { -//Print(L"%a: %d\n", __func__, __LINE__); return (EOF); } fp->_flags &= ~__SWR; @@ -123,7 +115,6 @@ __srefill(FILE *fp) } fp->_flags |= __SRD; } else { -//Print(L"%a: %d\n", __func__, __LINE__); /* * We were reading. If there is an ungetc buffer, * we must have been reading from that. Drop it, @@ -134,7 +125,6 @@ __srefill(FILE *fp) FREEUB(fp); if ((fp->_r = fp->_ur) != 0) { fp->_p = fp->_up; -//Print(L"%a: %d\n", __func__, __LINE__); return (0); } } @@ -143,7 +133,6 @@ __srefill(FILE *fp) if (fp->_bf._base == NULL) __smakebuf(fp); -//Print(L"%a: %d\n", __func__, __LINE__); /* * Before reading from a line buffered or unbuffered file, * flush all line buffered output files, per the ANSI C @@ -153,7 +142,6 @@ __srefill(FILE *fp) rwlock_rdlock(&__sfp_lock); (void) _fwalk(lflush); rwlock_unlock(&__sfp_lock); -//Print(L"%a: %d\n", __func__, __LINE__); } fp->_p = fp->_bf._base; fp->_r = (*fp->_read)(fp->_cookie, (char *)fp->_p, fp->_bf._size); @@ -165,9 +153,7 @@ __srefill(FILE *fp) fp->_r = 0; fp->_flags |= __SERR; } -//Print(L"%a: %d\n", __func__, __LINE__); return (EOF); } -//Print(L"%a: %d\n", __func__, __LINE__); return (0); } diff --git a/StdLibPrivateInternalFiles/Include/kfile.h b/StdLibPrivateInternalFiles/Include/kfile.h index 6e7d1b4c79..6312895c40 100644 --- a/StdLibPrivateInternalFiles/Include/kfile.h +++ b/StdLibPrivateInternalFiles/Include/kfile.h @@ -1,7 +1,7 @@ /** @file The EFI kernel's interpretation of a "file". - Copyright (c) 2011, Intel Corporation. All rights reserved.
+ Copyright (c) 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 which accompanies this distribution. The full text of the license may be found at @@ -82,8 +82,16 @@ struct _Device_Node; struct __filedes { off_t f_offset; /* current position in file */ const struct fileops *f_ops; + + /* The devdata member has different meanings depending upon whether + a block oriented or character oriented device is being accessed. + For block devices, devdata holds an EFI handle to the open file or directory. + For character devices, devdata points to the device's IIO structure, + if it has one. It may be NULL indicating a non-interactive character + device. + */ void *devdata; /* Device-specific data */ - int Oflags; // From the open call + int Oflags; // From the open call, see fcntl.h int Omode; // From the open call int RefCount; // Reference count of opens UINT32 f_flag; /* see fcntl.h */ -- 2.39.2