Commit Graph

26 Commits

Author SHA1 Message Date
darylm503 4883124668 StdLib: Fix compiler compatibility issues:
tcp.h:    Fix packed structure syntax.  cdefs.h is not included so the existing __packed attribute was not properly expanded.  Non-GCC compilers were also not handled correctly.  Changing to the pack(n) pragma is compatible between all supported compilers.

SysCalls.c:  The utimes() function has a fixed number of arguments and calls a function that takes a va_list argument.  GCC will not allow the va_start, etc., macros to be used in a function with a fixed number of arguments, even though that is valid C.  The workaround was to create a worker function for utimes() that takes a variable number of arguments.  The worker function then uses the va_* macros.

Signed-off-by: darylm503
Reviewed-by: leegrosenbaum


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12977 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-01 00:17:05 +00:00
darylm503 0c1992fbcc StdLib: Add isDirSep character classification macro and function. Implement several Posix functions and clean up EfiSysCall.h. Align file mode handling with UEFI file protocol flags.
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
2011-11-30 00:52:45 +00:00
darylm503 8aa163da5a StdLib: Eliminate TimerLib dependencies.
Implement the clock() function using the EFI time-of-day clock instead of a TimerLib instance.

Signed-off-by: darylm503
Reviewed-by: jljusten
Reviewed-by: geekboy15a


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12683 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-11 00:32:31 +00:00
darylm503 feb1422b3a StdLib: Move the declarations for ffs() and bzero() from extern.h to strings.h.
Signed-off-by: darylm503
Reviewed-by: jljusten


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12654 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-03 00:35:55 +00:00
darylm503 f45df7a607 StdLib: Make the vfscanf function public.
Signed-off-by: darylm503
Reviewed-by: geekboy15a


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12653 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-03 00:19:10 +00:00
darylm503 5c5e4a12de StdLib: Revise the meaning of several feature macros.
Feature macros, defined in StdLibPrivateInternalFiles/Include/LibConfig.h are defined to cause the named feature to be included.  When originally added, several features were guarded using reversed logic.

Signed-off-by: darylm503
Reviewed-by: geekboy15a


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12652 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-03 00:01:24 +00:00
darylm503 d711a4860a StdLib: Add directory access functions to PosixLib.
Update <dirent.h> and <sys/dirent.h> to latest version.
Enable the tempnam function.
Fix assignments within predicate expressions so that it is clear where assignment is intended and where comparison occurs.
Remove internal.h and DirFunctions.c with its non-portable opendir, closedir, and readdir functions.
Add modified versions of the NetBSD opendir, closedir, and readdir functions.
Fix the declaration of stat() to be standards compliant and consistent with code.

Clean up indentation and declarations of non-existent objects.


Signed-off-by: darylm503
Reviewed-by: lgrosenb
Reviewed-by: lpleahy
Reviewed-by: jljusten


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12649 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-02 19:24:19 +00:00
darylm503 eaa52ade0f StdLib: Fix strcmp so that comparisons are case sensitive. Simplified code for strcasecmp.
Signed-off-by: darylm503
Reviewed-by: jljusten
Reviewed-by: geekboy15a


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12620 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-01 00:19:51 +00:00
darylm503 41b152c5f6 StdLib: Improve robustness of stat() and make basename() a public function.
AppPkg: Refinements to pyconfig.h and port of getpath.c to EDK II.

Signed-off-by: darylm503
Reviewed-by: geekboy15a
Reviewed-by: jljusten


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12508 6f19259b-4bc3-4df7-8a09-765794883524
2011-10-03 18:54:12 +00:00
darylm503 76beedc09c StdLib: Change the last argument of the ioctl helper functions to va_list* from void*.
Functions which call these helper functions always pass the last parameter as a va_list argument.
Add a conditional block around a MSFT-only pragma so that stringlist.c will compile with GCC.
Comment-out the Socket Library components within StdLib.dsc.  These components are still in development.

Signed-off-by: darylm503
Reviewed by:   geekboy15A

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12369 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-16 23:16:56 +00:00
darylm503 c614ca505d StdLib: Patches and updates for ARM.
Add ARMGCC and RVCT toolchain support.
Update and Add ARM specific machine headers.
Set the empty macro for __warn_references().
Make __flt_rounds() return 'Round to nearest' by default on ARM.

Signed-off-by:  Olivier Martin [olivier.martin@arm.com]
Reviewed-by:    darylm503


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12367 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-16 20:59:10 +00:00
darylm503 6f5e1c03c3 StdLib/LibC: Fix transcription error from submitted patch.
Signed-off-by: duanev@gmail.com
Reviewed-by:  darylm503


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12324 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-11 20:21:43 +00:00
darylm503 5252c2920c StdLib|LibC: Implement the sleep() function.
Implement the sleep() function and make both sleep() and usleep() public.  Required initially for Python, but these functions have general applicability.

Signed-off-by: duanev@gmail.com
Reviewed-by:   darylm503


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12323 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-11 20:09:02 +00:00
darylm503 e395633921 StdLib: Replace some non-ASCII characters with ASCII equivalents.
Signed-off-by: darylm503
Reviewed-by:   jljusten


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12302 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-08 22:41:36 +00:00
darylm503 5244f47e46 StdLib: Fix build errors caused by differences between the minGW 4.3 and GCC 4.4 compilers.
There are several significant differences between the mingw32 (gcc 4.3.0 based) compiler and the GCC 4.4 and later compilers.

Mingw32 requires that types int, long, long long, unsigned { int, long, long long}, float, and double be the only types passed to va_arg(). This requires the programmer to ensure that va_arg is called with type int for arguments of any type with a size less-than or equal-to int.  GCC 4.4 and later does not require this and performs the appropriate promotions for you.

Mingw32 uses 32-bit long in both ia32 and x64 mode.  GCC 4.4 makes long a 64-bit value when in x64 mode.

Signed-off-by: darylm503
Reviewed-by: jcarsey


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12258 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-01 21:56:45 +00:00
darylm503 c648f73cd2 Fix GCC build errors.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12240 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-31 00:02:56 +00:00
darylm503 a430bdb132 Update or add comments to files and functions for use by Doxygen.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12139 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-15 19:05:36 +00:00
darylm503 7dc1329100 Fix @return Doxygen commands to be singular instead of plural.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12094 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-05 23:57:34 +00:00
darylm503 59d13433e7 Update or add comments to files and functions for use by Doxygen.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12093 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-05 23:02:43 +00:00
darylm503 8379337c91 Update or add comments to files and functions for use by Doxygen.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12090 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-04 23:35:57 +00:00
darylm503 681cc25c17 Update or add comments to files and functions for use by Doxygen.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12089 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-04 18:13:02 +00:00
darylm503 eb222aea1d Fix GCC build breaks.
Fix case mismatch for includes of "Socket.h".  Original code was <socket.h> while file was Socket.h in the same directory as the .c file.
Add EFIAPI to function declarations so that they match the definition.
Remove "ineffective" statements from stub functions.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12076 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-02 20:52:36 +00:00
jcarsey fbd770b631 fix typo
submitted-by: jcarsey

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12070 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-01 15:25:53 +00:00
darylm503 d7ce700605 Add Socket Libraries.
Add Posix functions for porting compatibility.
Fix compliance issues with ISO/IEC 9899:199409
New Functions:
  setenv(), fparseln(), GetFileNameFromPath(), rename(),
  realpath(), setprogname(), getprogname(), strlcat(), strlcpy(),
  strsep(), setitimer(), getitimer(), timegm(), getopt(), basename(),
  mkstemp(), ffs(), vsnprintf(), snprintf(), getpass(), usleep(), select(),
  writev(), strcasecmp(), getcwd(), chdir(), tcgetpgrp(), getpgrp(), gettimeofday(),
  bcopy(), 


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12061 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-30 00:30:44 +00:00
darylm503 53e1e5c647 Add device abstraction code for the UEFI Console and UEFI Shell-based file systems.
Make argv use narrow characters instead of wide characters.
Add setenv functionality.
Add poll() system call.
Change signal names into macros – required for standards compliance.  The enums were renamed and moved to sys/signal.h and the new macros reference the enums.
Added SIGBREAK, which is required for Python.
Modify stdio functions to fail cleanly when called with a NULL File Pointer argument.
Added <sys/cdefs.h> that just includes <sys/EfiCdefs.h>.  By adding this wrapper, we improve compatibility with *nix files which assume <sys/cdefs> exists.
Add <netdb.h>
Added macros for bcopy(), bcmp() and strsep().
Modify the clock() function so that it does not hang when running under an emulation environment such as NT32.
Move TM structure specific macros from the private tzfile.h into <time.h>
Add strncasecmp function.
Add strptime function.
Add gettimeofday function.
Add getcwd function.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11908 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-28 02:34:10 +00:00
darylm503 2aa62f2bc9 Standard Libraries for EDK II.
This set of three packages: AppPkg, StdLib, StdLibPrivateInternalFiles; contains the implementation of libraries based upon non-UEFI standards such as ISO/IEC-9899, the library portion of the C Language Standard, POSIX, etc.

AppPkg contains applications that make use of the standard libraries defined in the StdLib Package.

StdLib contains header (include) files and the implementations of the standard libraries.

StdLibPrivateInternalFiles contains files for the exclusive use of the library implementations in StdLib.  These files should never be directly referenced from applications or other code.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11600 6f19259b-4bc3-4df7-8a09-765794883524
2011-04-27 21:42:16 +00:00