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
This commit is contained in:
@@ -63,12 +63,3 @@
|
||||
[LibraryClasses]
|
||||
LibC
|
||||
LibCType
|
||||
|
||||
################################################################
|
||||
#
|
||||
# The Build Options, below, are only used when building the C library.
|
||||
# DO NOT use them when building your application!
|
||||
# Nasty things could happen if you do.
|
||||
#
|
||||
[BuildOptions]
|
||||
GCC:*_*_*_CC_FLAGS = -fno-builtin
|
||||
|
@@ -42,6 +42,8 @@
|
||||
NetBSD: _wcstoul.h,v 1.3 2005/11/29 03:11:59 christos Exp
|
||||
*/
|
||||
|
||||
#include <Library/BaseLib.h>
|
||||
|
||||
/*
|
||||
* function template for wcstoul, wcstoull and wcstoumax.
|
||||
*
|
||||
@@ -102,8 +104,8 @@ _FUNCNAME(
|
||||
/*
|
||||
* See strtoul for comments as to the logic used.
|
||||
*/
|
||||
cutoff = __wUINT_MAX / (__wUINT)base;
|
||||
cutlim = (int)(__wUINT_MAX % (__wUINT)base);
|
||||
cutoff = (__wUINT)DivU64x32 ((UINT64) __wUINT_MAX, (UINT32) base);
|
||||
cutlim = (int) ModU64x32 ((UINT64) __wUINT_MAX, (UINT32) base);
|
||||
for (acc = 0, any = 0;; wc = (wint_t) *s++) {
|
||||
i = __wctoint((wchar_t)wc);
|
||||
if (i == -1) {
|
||||
|
@@ -137,7 +137,7 @@ wcrtomb(
|
||||
/* ps appears to be unused */
|
||||
|
||||
if (s == NULL)
|
||||
return 0;
|
||||
return 1; /* Spec. says this should be 1. */
|
||||
|
||||
*s = (char) wchar;
|
||||
return 1;
|
||||
@@ -150,7 +150,12 @@ wctomb(
|
||||
)
|
||||
{
|
||||
|
||||
/* s may be NULL */
|
||||
/*
|
||||
If s is NULL just return if MB Characters have state
|
||||
dependent encodings.
|
||||
*/
|
||||
if (s == NULL)
|
||||
return 0;
|
||||
|
||||
return (int)wcrtomb(s, wchar, NULL);
|
||||
}
|
||||
@@ -176,8 +181,10 @@ mbsrtowcs(
|
||||
if (n != 0) {
|
||||
if (pwcs != NULL) {
|
||||
do {
|
||||
if ((*pwcs++ = (wchar_t) *(*s)++) == 0)
|
||||
if ((*pwcs++ = (wchar_t) *(*s)++) == 0) {
|
||||
*s = NULL;
|
||||
break;
|
||||
}
|
||||
count++;
|
||||
} while (--n != 0);
|
||||
} else {
|
||||
@@ -232,8 +239,10 @@ wcsrtombs(
|
||||
|
||||
if (n != 0) {
|
||||
do {
|
||||
if ((*s++ = (char) *(*pwcs)++) == 0)
|
||||
if ((*s++ = (char) *(*pwcs)++) == 0) {
|
||||
*pwcs = NULL;
|
||||
break;
|
||||
}
|
||||
count++;
|
||||
} while (--n != 0);
|
||||
}
|
||||
@@ -266,7 +275,13 @@ btowc(int c)
|
||||
int
|
||||
wctob(wint_t c)
|
||||
{
|
||||
if (c == WEOF || c & ~0xFF)
|
||||
/* wctob needs to be consistent with wcrtomb.
|
||||
if wcrtomb says that a character is representable in 1 byte,
|
||||
which this implementation always says, then wctob needs to
|
||||
also represent the character as 1 byte.
|
||||
*/
|
||||
if (c == WEOF) {
|
||||
return EOF;
|
||||
return (int)c;
|
||||
}
|
||||
return (int)(c & 0xFF);
|
||||
}
|
||||
|
Reference in New Issue
Block a user