Commit Graph

49 Commits

Author SHA1 Message Date
lpleahy 7700f0f5c0 * StdLib.dsc was changed to always build the sockets code.
* Fix errors detected by the GCC compiler (pointer conversions and format mismatches).
* Worked around a GCC flow analysis issue in base64.c where the compiler is convinced that there is a path through the code where "input" is used but not initialized.
* Added EFIAPI to the file system operation routines for sockets to match the API declaration.

Note for GCC, the meaning of "l" and "L" are different in printf and sscanf format strings.  The lower case "l" indicates a 32-bit value where the capital "L" indicates a 64-bit value.  The native (default) integer size may be represented by a size letter of "n".

Signed-off-by: lpleahy


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13023 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-17 23:43:35 +00:00
lpleahy 28de825561 Bug fix: CreateEvent sometimes returning EFI_INVALID_PARAMETER due to bad TPL value. Use known good TPL value since TPL is a don't care.
Found, reviewed and tested by: Duane Voth
Signed-off-by: lpleahy

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13017 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-15 23:24:58 +00:00
lpleahy 4b58a93fff Change to match the tree required on the storage device.
Signed-off-by: lpleahy

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13008 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-13 18:59:50 +00:00
lpleahy 826f9005c2 Fix some errors detected by the GCC 4.4 compiler.
Signed-off-by: lpleahy

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13006 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-10 03:30:41 +00:00
lpleahy 3bdf9aae5f Merged socket development branch:
* Fixed bug report (Duane Voth: Python sockets test application not working) by starting the receive operations when a connection is established!
* Increased performance by extending the idle loop into the network stack with the Poll call.
* Added support for TCPv6 (SOCK_STREAM) and UDPv6 (SOCK_DGRAM).
* Added support for getaddrinfo and getnameinfo calls.
* Moved application PCD values into AppPkg

Signed-off-by: lpleahy

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13002 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-09 19:16:44 +00:00
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 87bd924782 StdLib/Include/netdb.h: Re-enable macros needed by socket applications and perform general cleanup.
Signed-off-by: darylm503
Reviewed-by: jcarsey


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12956 6f19259b-4bc3-4df7-8a09-765794883524
2012-01-26 21:45:54 +00:00
darylm503 8db9424e55 StdLib: Add a file was missed and should have been included in check-in 12061.
Signed-off-by: darylm503


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12916 6f19259b-4bc3-4df7-8a09-765794883524
2012-01-06 23:26:59 +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 fd9efa33f3 StdLib: Correct module type and [LibraryClasses] section.
Signed-off-by: darylm503
Reviewed-by: geekboy15a


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12684 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-11 01:19:10 +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 d09ed37fb1 StdLib: Fix some corrupted comments and inconsistent indentation.
Signed-off-by: darylm503
Reviewed-by: geekboy15a


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12655 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-03 00:52:37 +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 c84d88fa7c StdLib: Fix dirent structure members to be of the correct type.
The type of the time values in a UEFI directory entry are EFI_TIME, not timeval.

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


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12651 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-02 23:41:29 +00:00
darylm503 b2800dde84 StdLib: Remove files obsoleted by changelist 12649.
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@12650 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-02 19:30:43 +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
lzeng14 2972b50ca2 The three TscTimerLib has been merged to one directory.
Signed-off-by: lzeng14

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12621 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-01 02:08:21 +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
lpleahy 58081f2c64 Fix compilation errors detected with GCC 4.4
Signed-off-by: lpleahy

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12504 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-30 23:52:45 +00:00
lpleahy a88c31639b Update the sockets library code
* Passes conformance and functional tests.
* Builds with GCC 4.4 compiler.

Signed-off by: lpleahy


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12497 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-30 23:02:35 +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 1e6e6f50e0 Fix mismatch between the declaration and definition of fwrite.
The first parameter should be const void * instead of void *.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12157 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-18 02:05:30 +00:00
darylm503 947a2d261c Re-enable the declaration for ftello.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12155 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-18 01:56:05 +00:00
darylm503 61403bd7ce Update or add comments to files and functions for use by Doxygen.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12153 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-17 22:54: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
lpleahy 1c34b250f6 Better handle transmit errors
Return 0 receive bytes when socket is closed


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12099 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-08 18:19:45 +00:00
lpleahy d1cab2b8c1 Remove SocketPkg references
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12096 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-08 17:38:14 +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 39f4382a97 Get rid of some rcsid blocks. The EDK II build options cause a build break on the rcsid definitions. It is easier to delete them than other workarounds.
Fix case mismatch for an included file.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12092 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-05 17:44:13 +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
lpleahy 486aace42c Fix send to properly wait while long transmits are in progress
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12083 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-03 17:45:52 +00:00
darylm503 274402de46 Add plain-text ReadMe files and delete the PDF version.
Clean up some comments.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12080 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-02 23:09:06 +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 d0885670b1 Correct typo: GCC 5.4 --> GCC 4.5.
Change name from Intel(R) UADK to EADK, the EDK II Application Development Kit.
Add more information on restrictions present in this version.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11604 6f19259b-4bc3-4df7-8a09-765794883524
2011-04-28 17:15:31 +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