Include/ctype.h:             Function declaration and Macro definition of isDirSep
Include/unistd.h:            Declarations added from EfiSysCall.h
Include/utime.h:             New file.  For the Posix utime() function.
Include/sys/_ctype.h:        Update character class bit maps.
Include/sys/EfiSysCall.h:    Move declarations to unistd.h
Include/sys/fcntl.h:         Improve comments.  Add UEFI-specific macros.
Include/sys/filio.h:         Remove declarations for unsupported file ioctls.
Include/sys/stat.h:          Fix flags.  Add macros and declarations.
Include/sys/time.h:          Add declarations for new functions Tm2Efi() and Time2Efi().
Include/sys/types.h:         Use EFI-specific instead of BSD-specific definitions for typedefs.
Include/sys/unistd.h:        Delete inappropriate content.  Guard macro definitions.
LibC/Locale/setlocale.c
LibC/Stdio/{fdopen.c, findfp.c, fopen.c, freopen.c, gettemp.c, makebuf.c, mktemp.c,
            remove.c, stdio.c, tempnam.c, tmpfile.c, tmpnam.c}
LibC/Time/{itimer.c, ZoneProc.c}
LibC/Uefi/SysCalls.c
LibC/Uefi/Devices/Console/daConsole.c
LibC/Uefi/Devices/UefiShell/daShell.c
PosixLib/Gen/readdir.c
                             Include unistd.h instead of EfiSysCall.h
LibC/Ctype/CClass.c:         Character classification function implementation for isDirSep.
LibC/Ctype/iCtype.c:         Update character classification and case conversion tables.
LibC/Time/TimeEfi.c:         Improve comments.  Implement new functions Tm2Efi() and Time2Efi().
LibC/Uefi/StubFunctions.c:   Add missing include.  Cosmetic changes to declarations.
LibC/Uefi/SysCalls.c:        Add support function for utime().
LibC/Uefi/Uefi.inf:          Add LibGen library class dependency.
LibC/Uefi/Xform.c:           Enhance Omode2EFI().
LibC/Uefi/Devices/UefiShell/daShell.c:    Enhance da_ShellMkdir.  Implement da_ShellIoctl to set file times.
PosixLib/Gen/access.c:       New file.  Implement the access() function.
PosixLib/Gen/dirname.c:      Enhance to use isDirSep and differentiate between the device, path, and filename components of UEFI Shell-style paths.
PosixLib/Gen/utime.c:        New file.  Implement the utime() function.
PosixLib/Gen/LibGen.inf:     Change MODULE_TYPE.  Add new files.
Signed-off-by: darylm503
Reviewed-by: geekboy15a
Reviewed-by: jljusten
Reviewed-by: Rahul Khana
Reviewed-by: leegrosenbaum
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12800 6f19259b-4bc3-4df7-8a09-765794883524
		
	
		
			
				
	
	
		
			242 lines
		
	
	
		
			9.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			242 lines
		
	
	
		
			9.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   Single-byte character classification, case conversion macros, and
 | |
|   function declarations.
 | |
| 
 | |
|   The header <ctype.h> declares several functions useful for testing and mapping
 | |
|   characters.  In all cases, the argument is an int, the value of which shall be
 | |
|   representable as an unsigned char or shall equal the value of the macro EOF.
 | |
|   If the argument has any other value, the behavior is undefined.
 | |
| 
 | |
|   The behavior of these functions is affected by the current locale.  The
 | |
|   default is the "C" locale.
 | |
| 
 | |
|   The term "printing character" refers to a member of a locale-specific
 | |
|   set of characters, each of which occupies at least one printing position on an output
 | |
|   device; the term control character refers to a member of a locale-specific
 | |
|   set of characters that are not printing characters.
 | |
| 
 | |
|   Copyright (c) 2010 - 2011, 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 _CTYPE_H
 | |
| #define _CTYPE_H
 | |
| #include  <sys/EfiCdefs.h>
 | |
| #include  <sys/_ctype.h>
 | |
| 
 | |
| __BEGIN_DECLS
 | |
| // Declarations for the classification Functions
 | |
| 
 | |
| /** The isalnum function tests for any character for which isalpha or isdigit
 | |
|     is true.
 | |
| 
 | |
|     @param[in]    c   The character to be tested.
 | |
| 
 | |
|     @return   Returns nonzero (true) if and only if the value of the parameter c
 | |
|               can be classified as specified in the description of the function.
 | |
| **/
 | |
| int isalnum(int c);
 | |
| 
 | |
| /** The isalpha function tests for any character for which isupper or islower
 | |
|     is true, or any character that is one of a locale-specific set of
 | |
|     alphabetic characters for which none of iscntrl, isdigit, ispunct, or
 | |
|     isspace is true. In the "C" locale, isalpha returns true only for the
 | |
|     characters for which isupper or islower is true.
 | |
| 
 | |
|     @param[in]    c   The character to be tested.
 | |
| 
 | |
|     @return   Returns nonzero (true) if and only if the value of the parameter c
 | |
|               can be classified as specified in the description of the function.
 | |
| **/
 | |
| int isalpha(int c);
 | |
| 
 | |
| /** The isblank function tests that a character is a white-space character that results
 | |
|     in a number of space (' ') characters being sent to the output device.  In the C locale
 | |
|     this is either ' ' or '\t'.
 | |
| 
 | |
|     @param[in]    c   The character to be tested.
 | |
| 
 | |
|     @return   Returns nonzero (true) if and only if the value of the parameter c
 | |
|               can be classified as specified in the description of the function.
 | |
| **/
 | |
| int isblank(int);
 | |
| 
 | |
| /** The iscntrl function tests for any control character.
 | |
| 
 | |
|     @param[in]    c   The character to be tested.
 | |
| 
 | |
|     @return   Returns nonzero (true) if and only if the value of the parameter c
 | |
|               can be classified as specified in the description of the function.
 | |
| **/
 | |
| int iscntrl(int c);
 | |
| 
 | |
| /** The isdigit function tests for any decimal-digit character.
 | |
| 
 | |
|     @param[in]    c   The character to be tested.
 | |
| 
 | |
|     @return   Returns nonzero (true) if and only if the value of the parameter c
 | |
|               can be classified as specified in the description of the function.
 | |
| **/
 | |
| int isdigit(int c);
 | |
| 
 | |
| /** The isgraph function tests for any printing character except space (' ').
 | |
| 
 | |
|     @param[in]    c   The character to be tested.
 | |
| 
 | |
|     @return   Returns nonzero (true) if and only if the value of the parameter c
 | |
|               can be classified as specified in the description of the function.
 | |
| **/
 | |
| int isgraph(int c);
 | |
| 
 | |
| /** The islower function tests for any character that is a lowercase letter or
 | |
|     is one of a locale-specific set of characters for which none of iscntrl,
 | |
|     isdigit, ispunct, or isspace is true.  In the "C" locale, islower returns
 | |
|     true only for the lowercase letters.
 | |
| 
 | |
|     @param[in]    c   The character to be tested.
 | |
| 
 | |
|     @return   Returns nonzero (true) if and only if the value of the parameter c
 | |
|               can be classified as specified in the description of the function.
 | |
| **/
 | |
| int islower(int c);
 | |
| 
 | |
| /** The isprint function tests for any printing character including space (' ').
 | |
| 
 | |
|     @param[in]    c   The character to be tested.
 | |
| 
 | |
|     @return   Returns nonzero (true) if and only if the value of the parameter c
 | |
|               can be classified as specified in the description of the function.
 | |
| **/
 | |
| int isprint(int c);
 | |
| 
 | |
| /** The ispunct function tests for any printing character that is one of a
 | |
|     locale-specific set of punctuation characters for which neither isspace nor
 | |
|     isalnum is true. In the "C" locale, ispunct returns true for every printing
 | |
|     character for which neither isspace nor isalnum is true.
 | |
| 
 | |
|     @param[in]    c   The character to be tested.
 | |
| 
 | |
|     @return   Returns nonzero (true) if and only if the value of the parameter c
 | |
|               can be classified as specified in the description of the function.
 | |
| **/
 | |
| int ispunct(int c);
 | |
| 
 | |
| /** The isspace function tests for any character that is a standard white-space
 | |
|     character or is one of a locale-specific set of characters for which
 | |
|     isalnum is false. The standard white-space characters are the following:
 | |
|     space (' '), form feed ('\f'), new-line ('\n'), carriage return ('\r'),
 | |
|     horizontal tab ('\t'), and vertical tab ('\v'). In the "C" locale, isspace
 | |
|     returns true only for the standard white-space characters.
 | |
| 
 | |
|     @param[in]    c   The character to be tested.
 | |
| 
 | |
|     @return   Returns nonzero (true) if and only if the value of the parameter c
 | |
|               can be classified as specified in the description of the function.
 | |
| **/
 | |
| int isspace(int c);
 | |
| 
 | |
| /** The isupper function tests for any character that is an uppercase letter or
 | |
|     is one of a locale-specific set of characters for which none of iscntrl,
 | |
|     isdigit, ispunct, or isspace is true. In the "C" locale, isupper returns
 | |
|     true only for the uppercase letters.
 | |
| 
 | |
|     @param[in]    c   The character to be tested.
 | |
| 
 | |
|     @return   Returns nonzero (true) if and only if the value of the parameter c
 | |
|               can be classified as specified in the description of the function.
 | |
| **/
 | |
| int isupper(int c);
 | |
| 
 | |
| /** The isxdigit function tests for any hexadecimal-digit character.
 | |
| 
 | |
|     @param[in]    c   The character to be tested.
 | |
| 
 | |
|     @return   Returns nonzero (true) if and only if the value of the parameter c
 | |
|               can be classified as specified in the description of the function.
 | |
| **/
 | |
| int isxdigit(int c);
 | |
| 
 | |
| /** The isascii function tests that a character is one of the 128 7-bit ASCII characters.
 | |
|     This function is not part of the C standard, but is commonly used.
 | |
| 
 | |
|     @param[in]    c   The character to be tested.
 | |
| 
 | |
|     @return   Returns nonzero (true) if and only if the value of the parameter c
 | |
|               can be classified as specified in the description of the function.
 | |
| **/
 | |
| int isascii(int c);
 | |
| 
 | |
| /** Test whether a character is one of the characters used as a separator
 | |
|     between directory elements in a path.
 | |
| 
 | |
|     Characters are '/', '\\'
 | |
| 
 | |
|     This non-standard function is unique to this implementation.
 | |
| 
 | |
|     @param[in]    c   The character to be tested.
 | |
| 
 | |
|     @return   Returns nonzero (true) if and only if the value of the parameter c
 | |
|               can be classified as specified in the description of the function.
 | |
| **/
 | |
| int isDirSep(int c);
 | |
| 
 | |
| /** The tolower function converts an uppercase letter to a corresponding
 | |
|     lowercase letter.
 | |
| 
 | |
|     @param[in]    c   The character to be converted.
 | |
| 
 | |
|     @return   If the argument is a character for which isupper is true and
 | |
|               there are one or more corresponding characters, as specified by
 | |
|               the current locale, for which islower is true, the tolower
 | |
|               function returns one of the corresponding characters (always the
 | |
|               same one for any given locale); otherwise, the argument is
 | |
|               returned unchanged.
 | |
| **/
 | |
| int tolower(int c);
 | |
| 
 | |
| /** The toupper function converts a lowercase letter to a corresponding
 | |
|     uppercase letter.
 | |
| 
 | |
|     @param[in]    c   The character to be converted.
 | |
| 
 | |
|     @return   If the argument is a character for which islower is true and
 | |
|               there are one or more corresponding characters, as specified by
 | |
|               the current locale, for which isupper is true, the toupper
 | |
|               function returns one of the corresponding characters (always the
 | |
|               same one for any given locale); otherwise, the argument is
 | |
|               returned unchanged.
 | |
| **/
 | |
| int toupper(int c);
 | |
| 
 | |
| __END_DECLS
 | |
| 
 | |
| /** Character Classification Macros.
 | |
|     Undefine individually or define NO_CTYPE_MACROS, before including <ctype.h>,
 | |
|     in order to use the Function version of the character classification macros.
 | |
| @{
 | |
| **/
 | |
| #ifndef NO_CTYPE_MACROS
 | |
|   #define isalnum(c)    (__isCClass( (int)c, (_CD | _CU | _CL | _XA)))
 | |
|   #define isalpha(c)    (__isCClass( (int)c, (_CU | _CL | _XA)))
 | |
|   #define iscntrl(c)    (__isCClass( (int)c, (_CC)))
 | |
|   #define isdigit(c)    (__isCClass( (int)c, (_CD)))
 | |
|   #define isgraph(c)    (__isCClass( (int)c, (_CG)))
 | |
|   #define islower(c)    (__isCClass( (int)c, (_CL)))
 | |
|   #define isprint(c)    (__isCClass( (int)c, (_CS | _CG)))
 | |
|   #define ispunct(c)    (__isCClass( (int)c, (_CP)))
 | |
|   #define isspace(c)    (__isCClass( (int)c, (_CW)))
 | |
|   #define isupper(c)    (__isCClass( (int)c, (_CU)))
 | |
|   #define isxdigit(c)   (__isCClass( (int)c, (_CD | _CX)))
 | |
|   #define isDirSep(c)   (__isCClass( (int)c, (_C0)))
 | |
|   #define tolower(c)    (__toLower((int)c))
 | |
|   #define toupper(c)    (__toUpper((int)c))
 | |
| #endif  /* NO_CTYPE_MACROS */
 | |
| ///@}
 | |
| 
 | |
| #endif  /* _CTYPE_H */
 |