diff options
Diffstat (limited to 'StdLibPrivateInternalFiles')
-rw-r--r-- | StdLibPrivateInternalFiles/DoNotUse.dec | 35 | ||||
-rw-r--r-- | StdLibPrivateInternalFiles/Include/Arm/arith.h | 9 | ||||
-rw-r--r-- | StdLibPrivateInternalFiles/Include/Arm/gd_qnan.h | 12 | ||||
-rw-r--r-- | StdLibPrivateInternalFiles/Include/Efi/Console.h | 81 | ||||
-rw-r--r-- | StdLibPrivateInternalFiles/Include/Ia32/arith.h | 3 | ||||
-rw-r--r-- | StdLibPrivateInternalFiles/Include/Ia32/gd_qnan.h | 11 | ||||
-rw-r--r-- | StdLibPrivateInternalFiles/Include/Ipf/arith.h | 6 | ||||
-rw-r--r-- | StdLibPrivateInternalFiles/Include/Ipf/gd_qnan.h | 5 | ||||
-rw-r--r-- | StdLibPrivateInternalFiles/Include/LibConfig.h | 30 | ||||
-rw-r--r-- | StdLibPrivateInternalFiles/Include/MainData.h | 92 | ||||
-rw-r--r-- | StdLibPrivateInternalFiles/Include/X64/arith.h | 3 | ||||
-rw-r--r-- | StdLibPrivateInternalFiles/Include/X64/gd_qnan.h | 11 | ||||
-rw-r--r-- | StdLibPrivateInternalFiles/Include/extern.h | 69 | ||||
-rw-r--r-- | StdLibPrivateInternalFiles/Include/namespace.h | 778 | ||||
-rw-r--r-- | StdLibPrivateInternalFiles/Include/reentrant.h | 268 | ||||
-rw-r--r-- | StdLibPrivateInternalFiles/ReadMe.pdf | bin | 0 -> 86664 bytes |
16 files changed, 1413 insertions, 0 deletions
diff --git a/StdLibPrivateInternalFiles/DoNotUse.dec b/StdLibPrivateInternalFiles/DoNotUse.dec new file mode 100644 index 0000000000..1b9bdbdbe4 --- /dev/null +++ b/StdLibPrivateInternalFiles/DoNotUse.dec @@ -0,0 +1,35 @@ +## @file
+#
+# 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 which 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.
+##
+
+
+[Defines]
+ DEC_SPECIFICATION = 0x00010005
+ PACKAGE_NAME = StdLibPrivateInternalFiles
+ PACKAGE_GUID = 25e23884-dc26-42c3-bd27-40e99f7d866b
+ PACKAGE_VERSION = 0.01
+
+
+[Includes]
+ Include
+
+[Includes.IA32]
+ Include/Ia32
+
+[Includes.X64]
+ Include/X64
+
+[Includes.IPF]
+ Include/Ipf
+
+[Includes.ARM]
+ Include/Arm
diff --git a/StdLibPrivateInternalFiles/Include/Arm/arith.h b/StdLibPrivateInternalFiles/Include/Arm/arith.h new file mode 100644 index 0000000000..e759ec2ba9 --- /dev/null +++ b/StdLibPrivateInternalFiles/Include/Arm/arith.h @@ -0,0 +1,9 @@ +/* $NetBSD: arith.h,v 1.1 2006/01/25 15:33:28 kleink Exp $ */
+
+#include <machine/endian.h>
+
+#if BYTE_ORDER == BIG_ENDIAN
+#define IEEE_BIG_ENDIAN
+#else
+#define IEEE_LITTLE_ENDIAN
+#endif
diff --git a/StdLibPrivateInternalFiles/Include/Arm/gd_qnan.h b/StdLibPrivateInternalFiles/Include/Arm/gd_qnan.h new file mode 100644 index 0000000000..57c5affe1b --- /dev/null +++ b/StdLibPrivateInternalFiles/Include/Arm/gd_qnan.h @@ -0,0 +1,12 @@ +/* $NetBSD: gd_qnan.h,v 1.1 2006/01/25 15:33:28 kleink Exp $ */
+
+#include <machine/endian.h>
+
+#define f_QNAN 0x7fc00000
+#if BYTE_ORDER == BIG_ENDIAN
+#define d_QNAN0 0x7ff80000
+#define d_QNAN1 0x0
+#else
+#define d_QNAN0 0x0
+#define d_QNAN1 0x7ff80000
+#endif
diff --git a/StdLibPrivateInternalFiles/Include/Efi/Console.h b/StdLibPrivateInternalFiles/Include/Efi/Console.h new file mode 100644 index 0000000000..867865819b --- /dev/null +++ b/StdLibPrivateInternalFiles/Include/Efi/Console.h @@ -0,0 +1,81 @@ +/** @file
+ Declarations and macros for the console abstraction.
+
+ Copyright (c) 2010, 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.php.
+
+ 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 _LIBRARY_UEFI_CONSOLE_H
+#define _LIBRARY_UEFI_CONSOLE_H
+#include <Protocol/SimpleTextOut.h>
+#include <Protocol/SimpleFileSystem.h>
+
+/* The number of "special" character stream devices.
+ These include:
+ stdin, stdout, stderr
+*/
+#define NUM_SPECIAL 3
+
+typedef struct {
+ UINT32 Column;
+ UINT32 Row;
+} CursorXY;
+
+typedef union {
+ UINT64 Offset;
+ CursorXY XYpos;
+} XYoffset;
+
+/**
+ In support of the "everything is a file" paradigm of the Standard C Library,
+ the UEFI Console support is abstracted as an instance of EFI_FILE_PROTOCOL.
+ The member functions of the protocol translate as:
+ Open Associates a stream with one of the pseudo-devices: stdin,
+ stdout, or stderr; as defined by the UEFI System Table.
+ Close The stream is marked closed and released for use by a
+ subsequent Open().
+ Delete Returns RETURN_UNSUPPORTED. Does Nothing.
+ Read Blocks reading BufferSize characters using the
+ EFI_SIMPLE_TEXT_INPUT_PROTOCOL::ReadKeyStroke() function.
+ Write Sends BufferSize characters to the console for display. The
+ output is examined for new line characters, '\n', which are then
+ translated into a Return + New Line, '\r' '\n', sequence.
+ GetPosition Returns the number of characters input or output to this
+ stream. Return, '\r', characters inserted due to line ending
+ translation are not counted.
+ SetPosition Only valid for Stdout or Stderr. Offset is interpreted as a
+ CursorXY structure and is used to position the console cursor
+ using the EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL::SetCursorPosition()
+ call.
+ GetInfo Populates an EFI_FILE_INFO Buffer with no useful information.
+ SetInfo Returns RETURN_UNSUPPORTED. Does Nothing.
+ Flush Returns RETURN_SUCCESS. Does Nothing.
+
+**/
+typedef struct {
+ UINT32 Cookie;
+ UINT32 ConOutMode; // Only valid for stdout & stderr
+ UINT64 NumRead;
+ UINT64 NumWritten;
+ XYoffset MaxConXY; // Only valid for stdout & stderr
+ EFI_HANDLE Dev; // Could be either Input or Output
+ EFI_FILE_PROTOCOL Abstraction;
+} ConInstance;
+
+EFI_STATUS
+EFIAPI
+ConOpen(
+ IN EFI_FILE_PROTOCOL *This,
+ OUT EFI_FILE_PROTOCOL **NewHandle,
+ IN CHAR16 *FileName,
+ IN UINT64 OpenMode,
+ IN UINT64 Attributes
+);
+
+#endif /* _LIBRARY_UEFI_CONSOLE_H */
diff --git a/StdLibPrivateInternalFiles/Include/Ia32/arith.h b/StdLibPrivateInternalFiles/Include/Ia32/arith.h new file mode 100644 index 0000000000..2861c74a41 --- /dev/null +++ b/StdLibPrivateInternalFiles/Include/Ia32/arith.h @@ -0,0 +1,3 @@ +/* $NetBSD: arith.h,v 1.1 2006/01/25 15:33:28 kleink Exp $ */
+
+#define IEEE_LITTLE_ENDIAN
diff --git a/StdLibPrivateInternalFiles/Include/Ia32/gd_qnan.h b/StdLibPrivateInternalFiles/Include/Ia32/gd_qnan.h new file mode 100644 index 0000000000..512431d7eb --- /dev/null +++ b/StdLibPrivateInternalFiles/Include/Ia32/gd_qnan.h @@ -0,0 +1,11 @@ +/* $NetBSD: gd_qnan.h,v 1.1 2006/01/25 15:33:28 kleink Exp $ */
+
+#define f_QNAN 0x7fc00000
+#define d_QNAN0 0x0
+#define d_QNAN1 0x7ff80000
+#define ldus_QNAN0 0x0
+#define ldus_QNAN1 0x0
+#define ldus_QNAN2 0x0
+#define ldus_QNAN3 0x4000
+#define ldus_QNAN4 0x7fff
+/* 2 bytes of tail padding follow, per i386 ABI */
diff --git a/StdLibPrivateInternalFiles/Include/Ipf/arith.h b/StdLibPrivateInternalFiles/Include/Ipf/arith.h new file mode 100644 index 0000000000..2c07ea28e2 --- /dev/null +++ b/StdLibPrivateInternalFiles/Include/Ipf/arith.h @@ -0,0 +1,6 @@ +/* $NetBSD: arith.h,v 1.1 2006/09/10 21:22:33 cherry Exp $ */
+
+#define IEEE_LITTLE_ENDIAN
+#ifndef _IEEE_FP
+#define Sudden_Underflow
+#endif
diff --git a/StdLibPrivateInternalFiles/Include/Ipf/gd_qnan.h b/StdLibPrivateInternalFiles/Include/Ipf/gd_qnan.h new file mode 100644 index 0000000000..c46820499a --- /dev/null +++ b/StdLibPrivateInternalFiles/Include/Ipf/gd_qnan.h @@ -0,0 +1,5 @@ +/* $NetBSD: gd_qnan.h,v 1.1 2006/09/10 21:22:33 cherry Exp $ */
+
+#define f_QNAN 0x7fc00000
+#define d_QNAN0 0x0
+#define d_QNAN1 0x7ff80000
diff --git a/StdLibPrivateInternalFiles/Include/LibConfig.h b/StdLibPrivateInternalFiles/Include/LibConfig.h new file mode 100644 index 0000000000..67f49c244b --- /dev/null +++ b/StdLibPrivateInternalFiles/Include/LibConfig.h @@ -0,0 +1,30 @@ +/** @file
+ Global Configuration macros for configuring how LibC is built.
+
+ This file must be included at the beginning of every C file in the
+ library, and before any of the Standard C header files are included.
+
+ The configuration, as distributed in this file, is the only configuration
+ these libraries have been tested with. Changing this configuration may
+ produce code that will not build or may not run. Change at your own risk.
+
+ Copyright (c) 2010, 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.php.
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+**/
+
+#define _LIBC 1
+#define NLS 1
+#define NO_FENV_H 1
+#define NO_HEX_FP 1
+#define No_Hex_NaN 1
+#define ALL_STATE 1
+#define USG_COMPAT 1
+#define _IEEE_LIBM 1
+
+#undef WITH_RUNE
diff --git a/StdLibPrivateInternalFiles/Include/MainData.h b/StdLibPrivateInternalFiles/Include/MainData.h new file mode 100644 index 0000000000..7788cb8310 --- /dev/null +++ b/StdLibPrivateInternalFiles/Include/MainData.h @@ -0,0 +1,92 @@ +/** @file
+ Global data for the program environment.
+
+ Copyright (c) 2010, 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.php.
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+**/
+#include <Uefi.h>
+#include <Library/ShellLib.h>
+
+#include <limits.h>
+#include <signal.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <time.h>
+#include "Efi/Console.h"
+
+/* ################## Type Declarations ################################# */
+
+/** The type of an atexit handler function. **/
+typedef void __xithandler_t(void);
+
+/* ################## Global Declarations ############################### */
+#ifndef TYPE_BIT
+#define TYPE_BIT(type) (sizeof (type) * CHAR_BIT)
+#endif /* !defined TYPE_BIT */
+
+#ifndef TYPE_SIGNED
+#define TYPE_SIGNED(type) (((type) -1) < 0)
+#endif /* !defined TYPE_SIGNED */
+
+#ifndef INT_STRLEN_MAXIMUM
+/*
+** 302 / 1000 is log10(2.0) rounded up.
+** Subtract one for the sign bit if the type is signed;
+** add one for integer division truncation;
+** add one more for a minus sign if the type is signed.
+*/
+#define INT_STRLEN_MAXIMUM(type) \
+((TYPE_BIT(type) - TYPE_SIGNED(type)) * 302 / 1000 + 1 + TYPE_SIGNED(type))
+#endif /* !defined INT_STRLEN_MAXIMUM */
+
+/*
+** Big enough for something such as
+** ??? ???-2147483648 -2147483648:-2147483648:-2147483648 -2147483648\n
+** (two three-character abbreviations, five strings denoting integers,
+** three explicit spaces, two explicit colons, a newline,
+** and a trailing ASCII nul).
+*/
+#define ASCTIME_BUFLEN (3 * 2 + 5 * INT_STRLEN_MAXIMUM(int) + 3 + 2 + 1 + 1)
+
+struct __filedes {
+ EFI_FILE_HANDLE FileHandle;
+ UINT32 State; // In use if non-zero
+ int Oflags; // From the open call
+ int Omode; // From the open call
+ int RefCount; // Reference count of opens
+ int SocProc; // Placeholder: socket owner process or process group.
+ UINT16 MyFD; // Which FD this is.
+};
+
+struct __MainData {
+ // File descriptors
+ struct __filedes fdarray[OPEN_MAX];
+ // Low-level File abstractions for the stdin, stdout, stderr streams
+ ConInstance StdIo[3];
+
+ // Signal Handlers
+ __sighandler_t *sigarray[SIG_LAST]; // Pointers to signal handlers
+
+ void (*cleanup)(void); // Cleanup Function Pointer
+
+ __xithandler_t *atexit_handler[ATEXIT_MAX]; // Array of handlers for atexit.
+ clock_t AppStartTime; // Set in Main.c and used for time.h
+ clock_t ClocksPerSecond; // Set in Main.c and used for time.h
+ int num_atexit; ///< Number of registered atexit handlers.
+
+ CHAR16 UString[UNICODE_STRING_MAX];
+ struct tm BDTime; // Broken-down time structure for localtime.
+ EFI_TIME TimeBuffer; // Used by <time.h>mk
+ char ASgetenv[ASCII_STRING_MAX]; // Only modified by getenv
+ char ASasctime[ASCTIME_BUFLEN]; // Only modified by asctime
+
+ BOOLEAN aborting; // Ensures cleanup function only called once when aborting.
+};
+
+extern struct __MainData *gMD;
diff --git a/StdLibPrivateInternalFiles/Include/X64/arith.h b/StdLibPrivateInternalFiles/Include/X64/arith.h new file mode 100644 index 0000000000..2861c74a41 --- /dev/null +++ b/StdLibPrivateInternalFiles/Include/X64/arith.h @@ -0,0 +1,3 @@ +/* $NetBSD: arith.h,v 1.1 2006/01/25 15:33:28 kleink Exp $ */
+
+#define IEEE_LITTLE_ENDIAN
diff --git a/StdLibPrivateInternalFiles/Include/X64/gd_qnan.h b/StdLibPrivateInternalFiles/Include/X64/gd_qnan.h new file mode 100644 index 0000000000..7bcfa242b0 --- /dev/null +++ b/StdLibPrivateInternalFiles/Include/X64/gd_qnan.h @@ -0,0 +1,11 @@ +/* $NetBSD: gd_qnan.h,v 1.1 2006/01/25 15:33:28 kleink Exp $ */
+
+#define f_QNAN 0x7fc00000
+#define d_QNAN0 0x0
+#define d_QNAN1 0x7ff80000
+#define ldus_QNAN0 0x0
+#define ldus_QNAN1 0x0
+#define ldus_QNAN2 0x0
+#define ldus_QNAN3 0x4000
+#define ldus_QNAN4 0x7fff
+/* 6 bytes of tail padding follow, per AMD64 ABI */
diff --git a/StdLibPrivateInternalFiles/Include/extern.h b/StdLibPrivateInternalFiles/Include/extern.h new file mode 100644 index 0000000000..14e6fa04da --- /dev/null +++ b/StdLibPrivateInternalFiles/Include/extern.h @@ -0,0 +1,69 @@ +/* $NetBSD: extern.h,v 1.14 2006/11/22 17:23:25 christos Exp $ */
+
+/*
+ * Copyright (c) 1997 Christos Zoulas. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Christos Zoulas.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#include <Uefi.h>
+#include <time.h>
+
+__BEGIN_DECLS
+extern char *__minbrk;
+int __getcwd(char *, size_t);
+int __getlogin(char *, size_t);
+int __setlogin(const char *);
+void _resumecontext(void);
+const char *__strerror(int , char *, size_t);
+const char *__strsignal(int , char *, size_t);
+char *__dtoa(double, int, int, int *, int *, char **);
+void __freedtoa(char *);
+int __sysctl(const int *, unsigned int, void *, size_t *, const void *, size_t);
+
+struct sigaction;
+int __sigaction_sigtramp(int, const struct sigaction *,
+ struct sigaction *, const void *, int);
+
+#ifdef WIDE_DOUBLE
+ char *__hdtoa(double, const char *, int, int *, int *, char **);
+ char *__hldtoa(long double, const char *, int, int *, int *, char **);
+ char *__ldtoa(long double *, int, int, int *, int *, char **);
+#endif
+
+struct syslog_data;
+void syslog_ss(int, struct syslog_data *, const char *, ...)
+ __attribute__((__format__(__printf__,3,4)));
+void vsyslog_ss(int, struct syslog_data *, const char *, _BSD_VA_LIST_);
+
+int snprintf_ss(char * __restrict, size_t, const char * __restrict, ...)
+ __attribute__((__format__(__printf__, 3, 4)));
+int vsnprintf_ss(char * __restrict, size_t, const char * __restrict,
+ _BSD_VA_LIST_) __attribute__((__format__(__printf__, 3, 0)));
+
+void Efi2Tm( EFI_TIME *ET, struct tm *BT);
+time_t Efi2Time( EFI_TIME *EfiBDtime);
+
+__END_DECLS
diff --git a/StdLibPrivateInternalFiles/Include/namespace.h b/StdLibPrivateInternalFiles/Include/namespace.h new file mode 100644 index 0000000000..038e402cc8 --- /dev/null +++ b/StdLibPrivateInternalFiles/Include/namespace.h @@ -0,0 +1,778 @@ +/* $NetBSD: namespace.h,v 1.125 2006/11/08 20:37:14 drochner Exp $ */
+
+/*-
+ * Copyright (c) 1997-2004 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the NetBSD
+ * Foundation, Inc. and its contributors.
+ * 4. Neither the name of The NetBSD Foundation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _NAMESPACE_H_
+#define _NAMESPACE_H_
+
+#include <sys/EfiCdefs.h>
+
+#ifndef __lint__
+#define brk _brk
+#define catclose _catclose
+#define catgets _catgets
+#define catopen _catopen
+#define daylight _daylight
+#define err _err
+#define errx _errx
+#ifdef _REENTRANT
+#define fileno _fileno
+#endif /* _REENTRANT */
+#define fork _fork
+#define fseeko _fseeko
+#define ftello _ftello
+#define getcontext _getcontext
+#define getenv_r _getenv_r
+//#define inet_aton _inet_aton
+//#define inet_pton _inet_pton
+#define pipe _pipe
+#define sbrk _sbrk
+//#define strerror_r _strerror_r
+#define strlcat _strlcat
+#define strlcpy _strlcpy
+#define strtof _strtof
+#define strtoimax _strtoimax
+#define strtold _strtold
+#define strtoll _strtoll
+#define strtoull _strtoull
+#define strtoumax _strtoumax
+#define sys_errlist _sys_errlist
+#define sys_nerr _sys_nerr
+#define sys_siglist _sys_siglist
+#define sys_nsig _sys_nsig
+#define sysconf __sysconf
+#define verr _verr
+#define verrx _verrx
+#define vwarn _vwarn
+#define vwarnx _vwarnx
+#define warn _warn
+#define warnx _warnx
+
+#if 0
+//#ifdef __weak_alias
+#define MD2Data _MD2Data
+#define MD2End _MD2End
+#define MD2FileChunk _MD2FileChunk
+#define MD2File _MD2File
+#define MD2Final _MD2Final
+#define MD2Init _MD2Init
+#define MD2Transform _MD2Transform
+#define MD2Update _MD2Update
+#define MD4Data _MD4Data
+#define MD4End _MD4End
+#define MD4FileChunk _MD4FileChunk
+#define MD4File _MD4File
+#define MD4Final _MD4Final
+#define MD4Init _MD4Init
+#define MD4Transform _MD4Transform
+#define MD4Update _MD4Update
+#define MD5Data _MD5Data
+#define MD5End _MD5End
+#define MD5FileChunk _MD5FileChunk
+#define MD5File _MD5File
+#define MD5Final _MD5Final
+#define MD5Init _MD5Init
+#define MD5Transform _MD5Transform
+#define MD5Update _MD5Update
+#define RMD160Data _RMD160Data
+#define RMD160End _RMD160End
+#define RMD160FileChunk _RMD160FileChunk
+#define RMD160File _RMD160File
+#define RMD160Final _RMD160Final
+#define RMD160Init _RMD160Init
+#define RMD160Transform _RMD160Transform
+#define RMD160Update _RMD160Update
+#define SHA1Data _SHA1Data
+#define SHA1End _SHA1End
+#define SHA1FileChunk _SHA1FileChunk
+#define SHA1File _SHA1File
+#define SHA1Final _SHA1Final
+#define SHA1Init _SHA1Init
+#define SHA1Transform _SHA1Transform
+#define SHA1Update _SHA1Update
+#define SHA256_Data _SHA256_Data
+#define SHA256_End _SHA256_End
+#define SHA256_FileChunk _SHA256_FileChunk
+#define SHA256_File _SHA256_File
+#define SHA256_Final _SHA256_Final
+#define SHA256_Init _SHA256_Init
+#define SHA256_Transform _SHA256_Transform
+#define SHA256_Update _SHA256_Update
+#define SHA384_Data _SHA384_Data
+#define SHA384_End _SHA384_End
+#define SHA384_FileChunk _SHA384_FileChunk
+#define SHA384_File _SHA384_File
+#define SHA384_Final _SHA384_Final
+#define SHA384_Init _SHA384_Init
+#define SHA384_Transform _SHA384_Transform
+#define SHA384_Update _SHA384_Update
+#define SHA512_Data _SHA512_Data
+#define SHA512_End _SHA512_End
+#define SHA512_FileChunk _SHA512_FileChunk
+#define SHA512_File _SHA512_File
+#define SHA512_Final _SHA512_Final
+#define SHA512_Init _SHA512_Init
+#define SHA512_Transform _SHA512_Transform
+#define SHA512_Update _SHA512_Update
+#define a64l _a64l
+#define adjtime _adjtime
+#define alarm _alarm
+#define alphasort _alphasort
+#define arc4random _arc4random
+#define asctime_r _asctime_r
+#define asprintf _asprintf
+#define atoll _atoll
+#define authnone_create _authnone_create
+#define authunix_create _authunix_create
+#define authunix_create_default _authunix_create_default
+#define basename _basename
+#define bindresvport _bindresvport
+#define bindresvport_sa _bindresvport_sa
+#define bm_comp _bm_comp
+#define bm_exec _bm_exec
+#define bm_free _bm_free
+#define callrpc _callrpc
+#define cfgetispeed _cfgetispeed
+#define cfgetospeed _cfgetospeed
+#define cfmakeraw _cfmakeraw
+#define cfsetispeed _cfsetispeed
+#define cfsetospeed _cfsetospeed
+#define cfsetspeed _cfsetspeed
+#define cgetcap _cgetcap
+#define cgetclose _cgetclose
+#define cgetent _cgetent
+#define cgetfirst _cgetfirst
+#define cgetmatch _cgetmatch
+#define cgetnext _cgetnext
+#define cgetnum _cgetnum
+#define cgetset _cgetset
+#define cgetstr _cgetstr
+#define cgetustr _cgetustr
+#define clnt_broadcast _clnt_broadcast
+#define clnt_create _clnt_create
+#define clnt_create_vers _clnt_create_vers
+#define clnt_dg_create _clnt_dg_create
+#define clnt_pcreateerror _clnt_pcreateerror
+#define clnt_perrno _clnt_perrno
+#define clnt_perror _clnt_perror
+#define clnt_raw_create _clnt_raw_create
+#define clnt_tli_create _clnt_tli_create
+#define clnt_tp_create _clnt_tp_create
+#define clnt_spcreateerror _clnt_spcreateerror
+#define clnt_sperrno _clnt_sperrno
+#define clnt_sperror _clnt_sperror
+#define clnt_vc_create _clnt_vc_create
+#define clntraw_create _clntraw_create
+#define clnttcp_create _clnttcp_create
+#define clntudp_bufcreate _clntudp_bufcreate
+#define clntudp_create _clntudp_create
+#define clock_settime _clock_settime
+#define closedir _closedir
+#define closelog _closelog
+#define closelog_r _closelog_r
+#define confstr _confstr
+#define ctermid _ctermid
+#define ctime_r _ctime_r
+#define daemon _daemon
+#define dbopen _dbopen
+#define devname _devname
+#define dirname _dirname
+#define dn_expand _dn_expand
+#define drand48 _drand48
+#define endfsent _endfsent
+#define endgrent _endgrent
+#define endhostent _endhostent
+#define endnetconfig _endnetconfig
+#define endnetent _endnetent
+#define endnetgrent _endnetgrent
+#define endnetpath _endnetpath
+#define endprotoent _endprotoent
+#define endprotoent_r _endprotoent_r
+#define endpwent _endpwent
+#define endrpcent _endrpcent
+#define endservent _endservent
+#define endservent_r _endservent_r
+#define endttyent _endttyent
+#define endusershell _endusershell
+#define erand48 _erand48
+#define ether_aton _ether_aton
+#define ether_hostton _ether_hostton
+#define ether_line _ether_line
+#define ether_ntoa _ether_ntoa
+#define ether_ntohost _ether_ntohost
+#define execl _execl
+#define execle _execle
+#define execlp _execlp
+#define execv _execv
+#define execvp _execvp
+#define fdopen _fdopen
+#define fgetln _fgetln
+#define fgetwln _fgetwln
+#define fhstatvfs _fhstatvfs
+#define flockfile _flockfile
+#define ftrylockfile _ftrylockfile
+#define funlockfile _funlockfile
+#define fnmatch _fnmatch
+#define fparseln _fparseln
+#define fpgetmask _fpgetmask
+#define fpgetround _fpgetround
+#define fpgetsticky _fpgetsticky
+#define fpsetmask _fpsetmask
+#define fpsetround _fpsetround
+#define fpsetsticky _fpsetsticky
+#define freenetconfigent _freenetconfigent
+#define freeaddrinfo _freeaddrinfo
+#define freeifaddrs _freeifaddrs
+#define fstatvfs _fstatvfs
+#define ftok _ftok
+#define ftruncate _ftruncate
+#define fts_children _fts_children
+#define fts_close _fts_close
+#define fts_open _fts_open
+#define fts_read _fts_read
+#define fts_set _fts_set
+#define gai_strerror _gai_strerror
+#define get_myaddress _get_myaddress
+#define getaddrinfo _getaddrinfo
+#define getbsize _getbsize
+#define getcwd _getcwd
+#define getdevmajor _getdevmajor
+#define getdiskbyname _getdiskbyname
+#define getdomainname _getdomainname
+#define getfsent _getfsent
+#define getfsfile _getfsfile
+#define getfsspec _getfsspec
+#define getgrent _getgrent
+#define getgrent_r _getgrent_r
+#define getgrgid _getgrgid
+#define getgrgid_r _getgrgid_r
+#define getgrnam _getgrnam
+#define getgrnam_r _getgrnam_r
+#define getgrouplist _getgrouplist
+#define getgroupmembership _getgroupmembership
+#define gethostbyaddr _gethostbyaddr
+#define gethostbyname _gethostbyname
+#define gethostent _gethostent
+#define gethostname _gethostname
+#define getifaddrs _getifaddrs
+#define getloadavg _getloadavg
+#define getlogin _getlogin
+#define getmntinfo _getmntinfo
+#define getmode _getmode
+#define getnameinfo _getnameinfo
+#define getnetbyaddr _getnetbyaddr
+#define getnetbyname _getnetbyname
+#define getnetconfig _getnetconfig
+#define getnetconfigent _getnetconfigent
+#define getnetent _getnetent
+#define getnetgrent _getnetgrent
+#define getnetpath _getnetpath
+#define getopt _getopt
+#define getopt_long _getopt_long
+#define getpagesize _getpagesize
+#define getpass _getpass
+#define getprogname _getprogname
+#define getprotobyname _getprotobyname
+#define getprotobyname_r _getprotobyname_r
+#define getprotobynumber _getprotobynumber
+#define getprotobynumber_r _getprotobynumber_r
+#define getprotoent _getprotoent
+#define getprotoent_r _getprotoent_r
+#define getpwent _getpwent
+#define getpwent_r _getpwent_r
+#define getpwnam _getpwnam
+#define getpwnam_r _getpwnam_r
+#define getpwuid _getpwuid
+#define getpwuid_r _getpwuid_r
+#define getrpcbyname _getrpcbyname
+#define getrpcbyname_r _getrpcbyname_r
+#define getrpcbynumber _getrpcbynumber
+#define getrpcbynumber_r _getrpcbynumber_r
+#define getrpcent _getrpcent
+#define getrpcent_r _getrpcent_r
+#define getrpcport _getrpcport
+#define getservbyname _getservbyname
+#define getservbyname_r _getservbyname_r
+#define getservbyport _getservbyport
+#define getservbyport_r _getservbyport_r
+#define getservent _getservent
+#define getservent_r _getservent_r
+#define getsubopt _getsubopt
+#define getttyent _getttyent
+#define getttynam _getttynam
+#define getusershell _getusershell
+#define glob _glob
+#define globfree _globfree
+#define gmtime_r _gmtime_r
+#define group_from_gid _group_from_gid
+#define heapsort _heapsort
+#define herror _herror
+#define hes_error _hes_error
+#define hes_free _hes_free
+#define hes_init _hes_init
+#define hes_resolve _hes_resolve
+#define hes_to_bind _hes_to_bind
+#define hesiod_end _hesiod_end
+#define hesiod_free_list _hesiod_free_list
+#define hesiod_init _hesiod_init
+#define hesiod_resolve _hesiod_resolve
+#define hesiod_to_bind _hesiod_to_bind
+#define iconv _iconv
+#define iconv_open _iconv_open
+#define iconv_close _iconv_close
+#define if_freenameindex _if_freenameindex
+#define if_indextoname _if_indextoname
+#define if_nameindex _if_nameindex
+#define if_nametoindex _if_nametoindex
+#define in6addr_any _in6addr_any
+#define in6addr_linklocal_allnodes _in6addr_linklocal_allnodes
+#define in6addr_linklocal_allrouters _in6addr_linklocal_allrouters
+#define in6addr_loopback _in6addr_loopback
+#define in6addr_nodelocal_allnodes _in6addr_nodelocal_allnodes
+#define inet6_option_alloc _inet6_option_alloc
+#define inet6_option_append _inet6_option_append
+#define inet6_option_find _inet6_option_find
+#define inet6_option_init _inet6_option_init
+#define inet6_option_next _inet6_option_next
+#define inet6_option_space _inet6_option_space
+#define inet6_opt_init _inet6_opt_init
+#define inet6_opt_append _inet6_opt_append
+#define inet6_opt_finish _inet6_opt_finish
+#define inet6_opt_set_val _inet6_opt_set_val
+#define inet6_opt_next _inet6_opt_next
+#define inet6_opt_find _inet6_opt_find
+#define inet6_opt_get_val _inet6_opt_get_val
+#define inet6_rthdr_add _inet6_rthdr_add
+#define inet6_rthdr_getaddr _inet6_rthdr_getaddr
+#define inet6_rthdr_getflags _inet6_rthdr_getflags
+#define inet6_rthdr_init _inet6_rthdr_init
+#define inet6_rthdr_lasthop _inet6_rthdr_lasthop
+#define inet6_rthdr_segments _inet6_rthdr_segments
+#define inet6_rthdr_space _inet6_rthdr_space
+#define inet6_rth_space _inet6_rth_space
+#define inet6_rth_init _inet6_rth_init
+#define inet6_rth_add _inet6_rth_add
+#define inet6_rth_reverse _inet6_rth_reverse
+#define inet6_rth_segments _inet6_rth_segments
+#define inet6_rth_getaddr _inet6_rth_getaddr
+#define inet_cidr_ntop _inet_cidr_ntop
+#define inet_cidr_pton _inet_cidr_pton
+#define inet_lnaof _inet_lnaof
+#define inet_makeaddr _inet_makeaddr
+#define inet_net_ntop _inet_net_ntop
+#define inet_net_pton _inet_net_pton
+#define inet_neta _inet_neta
+#define inet_netof _inet_netof
+#define inet_network _inet_network
+#define inet_nsap_addr _inet_nsap_addr
+#define inet_nsap_ntoa _inet_nsap_ntoa
+#define inet_ntoa _inet_ntoa
+#define inet_ntop _inet_ntop
+#define initgroups _initgroups
+#define initstate _initstate
+#define innetgr _innetgr
+#define isatty _isatty
+#define jrand48 _jrand48
+#define kill _kill
+#define l64a _l64a
+#define l64a_r _l64a_r
+#define lcong48 _lcong48
+#define llabs _llabs
+#define lldiv _lldiv
+#define localtime_r _localtime_r
+#define lockf _lockf
+#define lrand48 _lrand48
+#define lseek _lseek
+#define mergesort _mergesort
+#define mkstemp _mkstemp
+#define mmap _mmap
+#define mpool_close _mpool_close
+#define mpool_filter _mpool_filter
+#define mpool_get _mpool_get
+#define mpool_new _mpool_new
+#define mpool_open _mpool_open
+#define mpool_put _mpool_put
+#define mpool_sync _mpool_sync
+#define mrand48 _mrand48
+#define nc_perror _nc_perror
+#define nc_sperror _nc_sperror
+#define nice _nice
+#define nrand48 _nrand48
+#define ntp_adjtime _ntp_adjtime
+#define nsdispatch _nsdispatch
+#define offtime _offtime
+#define opendir _opendir
+#define openlog _openlog
+#define openlog_r _openlog_r
+#define pause _pause
+#define pclose _pclose
+#define pmap_getmaps _pmap_getmaps
+#define pmap_getport _pmap_getport
+#define pmap_rmtcall _pmap_rmtcall
+#define pmap_set _pmap_set
+#define pmap_unset _pmap_unset
+#define popen _popen
+#define posix2time _posix2time
+#define pread _pread
+#define psignal _psignal
+#define pthread_atfork _pthread_atfork
+#define putenv _putenv
+#define pwcache_groupdb _pwcache_groupdb
+#define pwcache_userdb _pwcache_userdb
+#define pwrite _pwrite
+#define qabs _qabs
+#define qdiv _qdiv
+#define radixsort _radixsort
+#define random _random
+#define randomid _randomid
+#define randomid_new _randomid_new
+#define randomid_delete _randomid_delete
+#define readdir _readdir
+#define readdir_r _readdir_r
+#define realpath _realpath
+#define regcomp _regcomp
+#define regerror _regerror
+#define regexec _regexec
+#define regfree _regfree
+#define registerrpc _registerrpc
+#define res_init _res_init
+#define res_mkquery _res_mkquery
+#define res_query _res_query
+#define res_search _res_search
+#define rewinddir _rewinddir
+#define rpc_broadcast _rpc_broadcast
+#define rpc_broadcast_exp _rpc_broadcast_exp
+#define rpc_call _rpc_call
+#define rpc_control _rpc_control
+#define rpc_reg _rpc_reg
+#define rpcb_getmaps _rpcb_getmaps
+#define rpcb_gettime _rpcb_gettime
+#define rpcb_rmtcall _rpcb_rmtcall
+#define rpcb_set _rpcb_set
+#define rpcb_taddr2uaddr _rpcb_taddr2uaddr
+#define rpcb_uaddr2taddr _rpcb_uaddr2taddr
+#define rpcb_unset _rpcb_unset
+#define scandir _scandir
+#define seed48 _seed48
+#define seekdir _seekdir
+#define send _send
+#define setdomainname _setdomainname
+#define setenv _setenv
+#define setfsent _setfsent
+#define setgrent _setgrent
+#define setgroupent _setgroupent
+#define sethostent _sethostent
+#define sethostname _sethostname
+#define setlogin _setlogin
+#define setlogmask _setlogmask
+#define setlogmask_r _setlogmask_r
+#define setmode _setmode
+#define setnetconfig _setnetconfig
+#define setnetent _setnetent
+#define setnetgrent _setnetgrent
+#define setpassent _setpassent
+#define setnetpath _setnetpath
+#define setproctitle _setproctitle
+#define setprotoent _setprotoent
+#define setprotoent_r _setprotoent_r
+#define setpwent _setpwent
+#define setrpcent _setrpcent
+#define setservent _setservent
+#define setservent_r _setservent_r
+#define setstate _setstate
+#define setttyent _setttyent
+#define setttyentpath _setttyentpath
+#define settimeofday _settimeofday
+#define setusershell _setusershell
+#define shm_open _shm_open
+#define shm_unlink _shm_unlink
+#define shquote _shquote
+#define siginterrupt _siginterrupt
+#define signal _signal
+#define sl_add _sl_add
+#define sl_create _sl_create
+#define sl_find _sl_find
+#define sl_free _sl_free
+#define sl_init _sl_init
+#define sleep _sleep
+#define snprintf _snprintf
+#define snprintf_ss _snprintf_ss
+#define sradixsort _sradixsort
+#define srand48 _srand48
+#define srandom _srandom
+#define statvfs(a, b) _statvfs(a, b)
+#define strcasecmp _strcasecmp
+#define strdup _strdup
+#define stresep _stresep
+#define strndup _strndup
+#define strncasecmp _strncasecmp
+#define strptime _strptime
+#define strsep _strsep
+#define strsignal _strsignal
+#define strsuftoll _strsuftoll
+#define strsuftollx _strsuftollx
+#define strsvis _strsvis
+#define strsvisx _strsvisx
+#define strtok_r _strtok_r
+#define strunvis _strunvis
+#define strvis _strvis
+#define strvisx _strvisx
+#define svc_auth_reg _svc_auth_reg
+#define svc_create _svc_create
+#define svc_dg_create _svc_dg_create
+#define svc_exit _svc_exit
+#define svc_fd_create _svc_fd_create
+#define svc_getreq _svc_getreq
+#define svc_getreqset _svc_getreqset
+#define svc_getreq_common _svc_getreq_common
+#define svc_raw_create _svc_raw_create
+#define svc_register _svc_register
+#define svc_reg _svc_reg
+#define svc_run _svc_run
+#define svc_sendreply _svc_sendreply
+#define svc_tli_create _svc_tli_create
+#define svc_tp_create _svc_tp_create
+#define svc_unregister _svc_unregister
+#define svc_unreg _svc_unreg
+#define svc_vc_create _svc_vc_create
+#define svcerr_auth _svcerr_auth
+#define svcerr_decode _svcerr_decode
+#define svcerr_noproc _svcerr_noproc
+#define svcerr_noprog _svcerr_noprog
+#define svcerr_progvers _svcerr_progvers
+#define svcerr_systemerr _svcerr_systemerr
+#define svcerr_weakauth _svcerr_weakauth
+#define svcfd_create _svcfd_create
+#define svcraw_create _svcraw_create
+#define svctcp_create _svctcp_create
+#define svcudp_bufcreate _svcudp_bufcreate
+#define svcudp_create _svcudp_create
+#define svcudp_enablecache _svcudp_enablecache
+#define svis _svis
+#define sysarch _sys_sysarch
+#define sysctl _sysctl
+#define sysctlbyname _sysctlbyname
+#define sysctlgetmibinfo _sysctlgetmibinfo
+#define sysctlnametomib _sysctlnametomib
+#define syslog _syslog
+#define syslog_r _syslog_r
+#define syslog_ss _syslog_ss
+#define taddr2uaddr _taddr2uaddr
+#define tcdrain _tcdrain
+#define tcflow _tcflow
+#define tcflush _tcflush
+#define tcgetattr _tcgetattr
+#define tcgetpgrp _tcgetpgrp
+#define tcgetsid _tcgetsid
+#define tcsendbreak _tcsendbreak
+#define tcsetattr _tcsetattr
+#define tcsetpgrp _tcsetpgrp
+#define telldir _telldir
+#define time _time
+#define time2posix _time2posix
+#define timegm _timegm
+#define timelocal _timelocal
+#define timeoff _timeoff
+#define times _times
+#define ttyname _ttyname
+#define ttyname_r _ttyname_r
+#define ttyslot _ttyslot
+#define tzname _tzname
+#define tzset _tzset
+#define tzsetwall _tzsetwall
+#define uaddr2taddr _uaddr2taddr
+#define ualarm _ualarm
+#define uname _uname
+#define unsetenv _unsetenv
+#define unvis _unvis
+#define user_from_uid _user_from_uid
+#define usleep _usleep
+#define utime _utime
+#define uuid_create_nil _uuid_create_nil
+#define uuid_is_nil _uuid_is_nil
+#define valloc _valloc
+#define vis _vis
+#define vsnprintf _vsnprintf
+#define vsnprintf_ss _vsnprintf_ss
+#define vsyslog _vsyslog
+#define vsyslog_r _vsyslog_r
+#define vsyslog_ss _vsyslog_ss
+#define wait _wait
+#define wait3 _wait3
+#define waitpid _waitpid
+#define wcscasecmp _wcscasecmp
+#define wcsdup _wcsdup
+#define wcsncasecmp _wcsncasecmp
+#define wcstof _wcstof
+#define wcstod _wcstod
+#define wcstold _wcstold
+#define wcwidth _wcwidth
+#define xdr_accepted_reply _xdr_accepted_reply
+#define xdr_array _xdr_array
+#define xdr_authunix_parms _xdr_authunix_parms
+#define xdr_bool _xdr_bool
+#define xdr_bytes _xdr_bytes
+#define xdr_callhdr _xdr_callhdr
+#define xdr_callmsg _xdr_callmsg
+#define xdr_char _xdr_char
+#define xdr_datum _xdr_datum
+#define xdr_des_block _xdr_des_block
+#define xdr_domainname _xdr_domainname
+#define xdr_double _xdr_double
+#define xdr_enum _xdr_enum
+#define xdr_float _xdr_float
+#define xdr_free _xdr_free
+#define xdr_hyper _xdr_hyper
+#define xdr_int _xdr_int
+#define xdr_int16_t _xdr_int16_t
+#define xdr_int32_t _xdr_int32_t
+#define xdr_int64_t _xdr_int64_t
+#define xdr_long _xdr_long
+#define xdr_longlong_t _xdr_longlong_t
+#define xdr_mapname _xdr_mapname
+#define xdr_netbuf _xdr_netbuf
+#define xdr_netobj _xdr_netobj
+#define xdr_opaque _xdr_opaque
+#define xdr_opaque_auth _xdr_opaque_auth
+#define xdr_peername _xdr_peername
+#define xdr_pmap _xdr_pmap
+#define xdr_pmaplist _xdr_pmaplist
+#define xdr_pointer _xdr_pointer
+#define xdr_reference _xdr_reference
+#define xdr_rejected_reply _xdr_rejected_reply
+#define xdr_replymsg _xdr_replymsg
+#define xdr_rmtcall_args _xdr_rmtcall_args
+#define xdr_rmtcallres _xdr_rmtcallres
+#define xdr_rpcb _xdr_rpcb
+#define xdr_rpcb_entry _xdr_rpcb_entry
+#define xdr_rpcb_entry_list_ptr _xdr_rpcb_entry_list_ptr
+#define xdr_rpcb_rmtcallargs _xdr_rpcb_rmtcallargs
+#define xdr_rpcb_rmtcallres _xdr_rpcb_rmtcallres
+#define xdr_rpcb_stat _xdr_rpcb_stat
+#define xdr_rpcb_stat_byvers _xdr_rpcb_stat_byvers
+#define xdr_rpcblist _xdr_rpcblist
+#define xdr_rpcblist_ptr _xdr_rpcblist_ptr
+#define xdr_rpcbs_addrlist _xdr_rpcbs_addrlist
+#define xdr_rpcbs_addrlist_ptr _xdr_rpcbs_addrlist_ptr
+#define xdr_rpcbs_proc _xdr_rpcbs_proc
+#define xdr_rpcbs_rmtcalllist _xdr_rpcbs_rmtcalllist
+#define xdr_rpcbs_rmtcalllist_ptr _xdr_rpcbs_rmtcalllist_ptr
+#define xdr_rpcbs _xdr_rpcbs
+#define xdr_rpcbs _xdr_rpcbs
+#define xdr_short _xdr_short
+#define xdr_string _xdr_string
+#define xdr_u_char _xdr_u_char
+#define xdr_u_hyper _xdr_u_hyper
+#define xdr_u_int _xdr_u_int
+#define xdr_u_int16_t _xdr_u_int16_t
+#define xdr_u_int32_t _xdr_u_int32_t
+#define xdr_u_int64_t _xdr_u_int64_t
+#define xdr_u_long _xdr_u_long
+#define xdr_u_longlong_t _xdr_u_longlong_t
+#define xdr_u_short _xdr_u_short
+#define xdr_union _xdr_union
+#define xdr_vector _xdr_vector
+#define xdr_void _xdr_void
+#define xdr_wrapstring _xdr_wrapstring
+#define xdr_yp_inaddr _xdr_yp_inaddr
+#define xdr_ypall _xdr_ypall
+#define xdr_ypbind_resp _xdr_ypbind_resp
+#define xdr_ypbind_setdom _xdr_ypbind_setdom
+#define xdr_ypdomain_wrap_string _xdr_ypdomain_wrap_string
+#define xdr_ypmap_parms _xdr_ypmap_parms
+#define xdr_ypmap_wrap_string _xdr_ypmap_wrap_string
+#define xdr_ypmaplist _xdr_ypmaplist
+#define xdr_ypowner_wrap_string _xdr_ypowner_wrap_string
+#define xdr_yppushresp_xfr _xdr_yppushresp_xfr
+#define xdr_ypreq_key _xdr_ypreq_key
+#define xdr_ypreq_nokey _xdr_ypreq_nokey
+#define xdr_ypreq_xfr _xdr_ypreq_xfr
+#define xdr_ypresp_key_val _xdr_ypresp_key_val
+#define xdr_ypresp_maplist _xdr_ypresp_maplist
+#define xdr_ypresp_master _xdr_ypresp_master
+#define xdr_ypresp_order _xdr_ypresp_order
+#define xdr_ypresp_val _xdr_ypresp_val
+#define xdrmem_create _xdrmem_create
+#define xdrrec_create _xdrrec_create
+#define xdrrec_endofrecord _xdrrec_endofrecord
+#define xdrrec_eof _xdrrec_eof
+#define xdrrec_skiprecord _xdrrec_skiprecord
+#define xdrstdio_create _xdrstdio_create
+#define xprt_register _xprt_register
+#define xprt_unregister _xprt_unregister
+#define yp_all _yp_all
+#define yp_bind _yp_bind
+#define yp_first _yp_first
+#define yp_get_default_domain _yp_get_default_domain
+#define yp_maplist _yp_maplist
+#define yp_master _yp_master
+#define yp_match _yp_match
+#define yp_next _yp_next
+#define yp_order _yp_order
+#define yp_unbind _yp_unbind
+#define yperr_string _yperr_string
+#define ypprot_err _ypprot_err
+#define dlopen __dlopen
+#define dlclose __dlclose
+#define dlsym __dlsym
+#define dlerror __dlerror
+#define dladdr __dladdr
+#define fmtcheck __fmtcheck
+
+/* rpc locks */
+#define authdes_lock __rpc_authdes_lock
+#define authnone_lock __rpc_authnone_lock
+#define authsvc_lock __rpc_authsvc_lock
+#define clnt_fd_lock __rpc_clnt_fd_lock
+#define clntraw_lock __rpc_clntraw_lock
+#define dname_lock __rpc_dname_lock
+#define dupreq_lock __rpc_dupreq_lock
+#define keyserv_lock __rpc_keyserv_lock
+#define libnsl_trace_lock __rpc_libnsl_trace_lock
+#define loopnconf_lock __rpc_loopnconf_lock
+#define ops_lock __rpc_ops_lock
+#define portnum_lock __rpc_portnum_lock
+#define proglst_lock __rpc_proglst_lock
+#define rpcbaddr_cache_lock __rpc_rpcbaddr_cache_lock
+#define rpcsoc_lock __rpc_rpcsoc_lock
+#define svc_fd_lock __rpc_svc_fd_lock
+#define svc_lock __rpc_svc_lock
+#define svcraw_lock __rpc_svcraw_lock
+#define xprtlist_lock __rpc_xprtlist_lock
+
+#define __learn_tree ___learn_tree
+#endif /* __weak_alias */
+#endif /* !__lint__ */
+
+#endif /* _NAMESPACE_H_ */
diff --git a/StdLibPrivateInternalFiles/Include/reentrant.h b/StdLibPrivateInternalFiles/Include/reentrant.h new file mode 100644 index 0000000000..157d4b1853 --- /dev/null +++ b/StdLibPrivateInternalFiles/Include/reentrant.h @@ -0,0 +1,268 @@ +/* $NetBSD: reentrant.h,v 1.10 2004/12/14 00:23:19 nathanw Exp $ */
+
+/*-
+ * Copyright (c) 1997, 1998, 2003 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by J.T. Conklin, by Nathan J. Williams, and by Jason R. Thorpe.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the NetBSD
+ * Foundation, Inc. and its contributors.
+ * 4. Neither the name of The NetBSD Foundation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * Requirements:
+ *
+ * 1. The thread safe mechanism should be lightweight so the library can
+ * be used by non-threaded applications without unreasonable overhead.
+ *
+ * 2. There should be no dependency on a thread engine for non-threaded
+ * applications.
+ *
+ * 3. There should be no dependency on any particular thread engine.
+ *
+ * 4. The library should be able to be compiled without support for thread
+ * safety.
+ *
+ *
+ * Rationale:
+ *
+ * One approach for thread safety is to provide discrete versions of the
+ * library: one thread safe, the other not. The disadvantage of this is
+ * that libc is rather large, and two copies of a library which are 99%+
+ * identical is not an efficent use of resources.
+ *
+ * Another approach is to provide a single thread safe library. However,
+ * it should not add significant run time or code size overhead to non-
+ * threaded applications.
+ *
+ * Since the NetBSD C library is used in other projects, it should be
+ * easy to replace the mutual exclusion primitives with ones provided by
+ * another system. Similarly, it should also be easy to remove all
+ * support for thread safety completely if the target environment does
+ * not support threads.
+ *
+ *
+ * Implementation Details:
+ *
+ * The thread primitives used by the library (mutex_t, mutex_lock, etc.)
+ * are macros which expand to the cooresponding primitives provided by
+ * the thread engine or to nothing. The latter is used so that code is
+ * not unreasonably cluttered with #ifdefs when all thread safe support
+ * is removed.
+ *
+ * The thread macros can be directly mapped to the mutex primitives from
+ * pthreads, however it should be reasonably easy to wrap another mutex
+ * implementation so it presents a similar interface.
+ *
+ * The thread functions operate by dispatching to symbols which are, by
+ * default, weak-aliased to no-op functions in thread-stub/thread-stub.c
+ * (some uses of thread operations are conditional on __isthreaded, but
+ * not all of them are).
+ *
+ * When the thread library is linked in, it provides strong-alias versions
+ * of those symbols which dispatch to its own real thread operations.
+ *
+ */
+
+#ifdef _REENTRANT
+
+/*
+ * Abtract thread interface for thread-safe libraries. These routines
+ * will use stubs in libc if the application is not linked against the
+ * pthread library, and the real function in the pthread library if it
+ * is.
+ */
+
+#include <pthread.h>
+#include <signal.h>
+
+#define mutex_t pthread_mutex_t
+#define MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
+
+#define mutexattr_t pthread_mutexattr_t
+
+#define MUTEX_TYPE_NORMAL PTHREAD_MUTEX_NORMAL
+#define MUTEX_TYPE_ERRORCHECK PTHREAD_MUTEX_ERRORCHECK
+#define MUTEX_TYPE_RECURSIVE PTHREAD_MUTEX_RECURSIVE
+
+#define cond_t pthread_cond_t
+#define COND_INITIALIZER PTHREAD_COND_INITIALIZER
+
+#define condattr_t pthread_condattr_t
+
+#define rwlock_t pthread_rwlock_t
+#define RWLOCK_INITIALIZER PTHREAD_RWLOCK_INITIALIZER
+
+#define rwlockattr_t pthread_rwlockattr_t
+
+#define thread_key_t pthread_key_t
+
+#define thr_t pthread_t
+
+#define thrattr_t pthread_attr_t
+
+#define once_t pthread_once_t
+#define ONCE_INITIALIZER PTHREAD_ONCE_INIT
+
+#ifndef __LIBC_THREAD_STUBS
+
+__BEGIN_DECLS
+int __libc_mutex_init(mutex_t *, const mutexattr_t *);
+int __libc_mutex_lock(mutex_t *);
+int __libc_mutex_trylock(mutex_t *);
+int __libc_mutex_unlock(mutex_t *);
+int __libc_mutex_destroy(mutex_t *);
+
+int __libc_mutexattr_init(mutexattr_t *);
+int __libc_mutexattr_settype(mutexattr_t *, int);
+int __libc_mutexattr_destroy(mutexattr_t *);
+__END_DECLS
+
+#define mutex_init(m, a) __libc_mutex_init((m), (a))
+#define mutex_lock(m) __libc_mutex_lock((m))
+#define mutex_trylock(m) __libc_mutex_trylock((m))
+#define mutex_unlock(m) __libc_mutex_unlock((m))
+#define mutex_destroy(m) __libc_mutex_destroy((m))
+
+#define mutexattr_init(ma) __libc_mutexattr_init((ma))
+#define mutexattr_settype(ma, t) __libc_mutexattr_settype((ma), (t))
+#define mutexattr_destroy(ma) __libc_mutexattr_destroy((ma))
+
+__BEGIN_DECLS
+int __libc_cond_init(cond_t *, const condattr_t *);
+int __libc_cond_signal(cond_t *);
+int __libc_cond_broadcast(cond_t *);
+int __libc_cond_wait(cond_t *, mutex_t *);
+int __libc_cond_timedwait(cond_t *, mutex_t *, const struct timespec *);
+int __libc_cond_destroy(cond_t *);
+__END_DECLS
+
+#define cond_init(c, t, a) __libc_cond_init((c), (a))
+#define cond_signal(c) __libc_cond_signal((c))
+#define cond_broadcast(c) __libc_cond_broadcast((c))
+#define cond_wait(c, m) __libc_cond_wait((c), (m))
+#define cond_timedwait(c, m, t) __libc_cond_timedwait((c), (m), (t))
+#define cond_destroy(c) __libc_cond_destroy((c))
+
+__BEGIN_DECLS
+int __libc_rwlock_init(rwlock_t *, const rwlockattr_t *);
+int __libc_rwlock_rdlock(rwlock_t *);
+int __libc_rwlock_wrlock(rwlock_t *);
+int __libc_rwlock_tryrdlock(rwlock_t *);
+int __libc_rwlock_trywrlock(rwlock_t *);
+int __libc_rwlock_unlock(rwlock_t *);
+int __libc_rwlock_destroy(rwlock_t *);
+__END_DECLS
+
+#define rwlock_init(l, a) __libc_rwlock_init((l), (a))
+#define rwlock_rdlock(l) __libc_rwlock_rdlock((l))
+#define rwlock_wrlock(l) __libc_rwlock_wrlock((l))
+#define rwlock_tryrdlock(l) __libc_rwlock_tryrdlock((l))
+#define rwlock_trywrlock(l) __libc_rwlock_trywrlock((l))
+#define rwlock_unlock(l) __libc_rwlock_unlock((l))
+#define rwlock_destroy(l) __libc_rwlock_destroy((l))
+
+__BEGIN_DECLS
+int __libc_thr_keycreate(thread_key_t *, void (*)(void *));
+int __libc_thr_setspecific(thread_key_t, const void *);
+void *__libc_thr_getspecific(thread_key_t);
+int __libc_thr_keydelete(thread_key_t);
+__END_DECLS
+
+#define thr_keycreate(k, d) __libc_thr_keycreate((k), (d))
+#define thr_setspecific(k, p) __libc_thr_setspecific((k), (p))
+#define thr_getspecific(k) __libc_thr_getspecific((k))
+#define thr_keydelete(k) __libc_thr_keydelete((k))
+
+__BEGIN_DECLS
+int __libc_thr_once(once_t *, void (*)(void));
+int __libc_thr_sigsetmask(int, const sigset_t *, sigset_t *);
+thr_t __libc_thr_self(void);
+int __libc_thr_yield(void);
+void __libc_thr_create(thr_t *, const thrattr_t *,
+ void *(*)(void *), void *);
+void __libc_thr_exit(void *) __attribute__((__noreturn__));
+int *__libc_thr_errno(void);
+int __libc_thr_setcancelstate(int, int *);
+
+extern int __isthreaded;
+__END_DECLS
+
+#define thr_once(o, f) __libc_thr_once((o), (f))
+#define thr_sigsetmask(f, n, o) __libc_thr_sigsetmask((f), (n), (o))
+#define thr_self() __libc_thr_self()
+#define thr_yield() __libc_thr_yield()
+#define thr_create(tp, ta, f, a) __libc_thr_create((tp), (ta), (f), (a))
+#define thr_exit(v) __libc_thr_exit((v))
+#define thr_errno() __libc_thr_errno()
+#define thr_enabled() (__isthreaded)
+#define thr_setcancelstate(n, o) __libc_thr_setcancelstate((n),(o))
+#endif /* __LIBC_THREAD_STUBS */
+
+#define FLOCKFILE(fp) __flockfile_internal(fp, 1)
+#define FUNLOCKFILE(fp) __funlockfile_internal(fp, 1)
+
+#else /* _REENTRANT */
+
+#define mutex_init(m, a)
+#define mutex_lock(m)
+#define mutex_trylock(m)
+#define mutex_unlock(m)
+#define mutex_destroy(m)
+
+#define cond_init(c, t, a)
+#define cond_signal(c)
+#define cond_broadcast(c)
+#define cond_wait(c, m)
+#define cond_timedwait(c, m, t)
+#define cond_destroy(c)
+
+#define rwlock_init(l, a)
+#define rwlock_rdlock(l)
+#define rwlock_wrlock(l)
+#define rwlock_tryrdlock(l)
+#define rwlock_trywrlock(l)
+#define rwlock_unlock(l)
+#define rwlock_destroy(l)
+
+#define thr_keycreate(k, d)
+#define thr_setspecific(k, p)
+#define thr_getspecific(k)
+#define thr_keydelete(k)
+
+#define thr_once(o, f)
+#define thr_sigsetmask(f, n, o)
+#define thr_self()
+#define thr_errno()
+
+#define FLOCKFILE(fp)
+#define FUNLOCKFILE(fp)
+
+#endif /* _REENTRANT */
diff --git a/StdLibPrivateInternalFiles/ReadMe.pdf b/StdLibPrivateInternalFiles/ReadMe.pdf Binary files differnew file mode 100644 index 0000000000..2baca31f68 --- /dev/null +++ b/StdLibPrivateInternalFiles/ReadMe.pdf |