summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordarylm503 <darylm503@6f19259b-4bc3-4df7-8a09-765794883524>2012-09-20 21:01:21 +0000
committerdarylm503 <darylm503@6f19259b-4bc3-4df7-8a09-765794883524>2012-09-20 21:01:21 +0000
commita9c12422ff2b4d8c4aec3d940302fc61b4ee39f7 (patch)
tree6ac4a1904fe9ff3eb51d8603e287fda21a5f6e52
parent2ca8548911013db4211172e8546fcff3db27f302 (diff)
downloadedk2-a9c12422ff2b4d8c4aec3d940302fc61b4ee39f7.zip
edk2-a9c12422ff2b4d8c4aec3d940302fc61b4ee39f7.tar.gz
edk2-a9c12422ff2b4d8c4aec3d940302fc61b4ee39f7.tar.bz2
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 <daryl.mcdaniel@intel.com> Reviewed-by: Jaben Carsey <jcarsey@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13735 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r--StdLib/Include/sys/stat.h10
-rw-r--r--StdLib/Include/sys/syslimits.h3
-rw-r--r--StdLib/Include/wchar.h48
-rw-r--r--StdLib/LibC/Stdio/refill.c16
-rw-r--r--StdLibPrivateInternalFiles/Include/kfile.h12
5 files changed, 48 insertions, 41 deletions
diff --git a/StdLib/Include/sys/stat.h b/StdLib/Include/sys/stat.h
index 6c5d5a8..12520be 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.<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
@@ -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 bee810c..9515e8f 100644
--- a/StdLib/Include/sys/syslimits.h
+++ b/StdLib/Include/sys/syslimits.h
@@ -1,7 +1,7 @@
/** @file
Platform specific values for <limits.h>.
- 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
@@ -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 d8e15ca..b53ee24 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.<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
@@ -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:<BR>
@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 953e8f6..a69f022 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.<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
@@ -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 <Uefi.h> // REMOVE, For DEBUG only
-#include <Library/UefiLib.h> // REMOVE, For DEBUG only
-
#include <LibConfig.h>
#include <sys/EfiCdefs.h>
@@ -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; //<dvm> 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 6e7d1b4..6312895 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.<BR>
+ Copyright (c) 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 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 */