]> git.proxmox.com Git - mirror_edk2.git/commitdiff
StdLib: Patches and updates for ARM.
authordarylm503 <darylm503@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 16 Sep 2011 20:59:10 +0000 (20:59 +0000)
committerdarylm503 <darylm503@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 16 Sep 2011 20:59:10 +0000 (20:59 +0000)
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

17 files changed:
StdLib/Include/Arm/machine/ansi.h
StdLib/Include/Arm/machine/bswap.h [new file with mode: 0644]
StdLib/Include/Arm/machine/byte_swap.h [new file with mode: 0644]
StdLib/Include/Arm/machine/endian.h [new file with mode: 0644]
StdLib/Include/Arm/machine/endian_machdep.h [new file with mode: 0644]
StdLib/Include/Arm/machine/int_const.h [new file with mode: 0644]
StdLib/Include/Arm/machine/int_limits.h [new file with mode: 0644]
StdLib/Include/Arm/machine/int_mwgwtypes.h [new file with mode: 0644]
StdLib/Include/Arm/machine/int_types.h [new file with mode: 0644]
StdLib/Include/Arm/machine/limits.h [new file with mode: 0644]
StdLib/Include/Arm/machine/param.h [new file with mode: 0644]
StdLib/Include/Arm/machine/signal.h
StdLib/Include/Arm/machine/types.h [new file with mode: 0644]
StdLib/Include/sys/cdefs_aout.h
StdLib/LibC/Main/Arm/flt_rounds.c
StdLib/StdLib.dsc
StdLib/StdLib.inc

index e06f1113556f437a6cb9e712ccb0d6e9ed9e087e..4c9e65a3bc2e1b8a7f0ea2beede5bd7b77117bbd 100644 (file)
@@ -1,8 +1,8 @@
-/*     $NetBSD: ansi.h,v 1.7 2006/10/04 13:51:59 tnozaki Exp $ */\r
+/*  $NetBSD: ansi.h,v 1.7 2006/10/04 13:51:59 tnozaki Exp $ */\r
 \r
 /*\r
  * Copyright (c) 1990, 1993\r
- *     The Regents of the University of California.  All rights reserved.\r
+ *  The Regents of the University of California.  All rights reserved.\r
  *\r
  * Redistribution and use in source and binary forms, with or without\r
  * modification, are permitted provided that the following conditions\r
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
  * SUCH DAMAGE.\r
  *\r
- *     from: @(#)ansi.h        8.2 (Berkeley) 1/4/94\r
+ *  from: @(#)ansi.h  8.2 (Berkeley) 1/4/94\r
  */\r
 \r
-#ifndef        _ANSI_H_\r
-#define        _ANSI_H_\r
+#ifndef _ANSI_H_\r
+#define _ANSI_H_\r
 \r
-#include <sys/cdefs.h>\r
+#include <sys/EfiCdefs.h>\r
 \r
 #include <machine/int_types.h>\r
 \r
  * Types which are fundamental to the implementation and may appear in\r
  * more than one standard header are defined here.  Standard headers\r
  * then use:\r
- *     #ifdef  _BSD_SIZE_T_\r
- *     typedef _BSD_SIZE_T_ size_t;\r
- *     #undef  _BSD_SIZE_T_\r
- *     #endif\r
+ *  #ifdef  _BSD_SIZE_T_\r
+ *  typedef _BSD_SIZE_T_ size_t;\r
+ *  #undef  _BSD_SIZE_T_\r
+ *  #endif\r
  */\r
-#ifdef __ELF__\r
-#define        _BSD_CLOCK_T_           unsigned int    /* clock() */\r
-#define        _BSD_PTRDIFF_T_         long int        /* ptr1 - ptr2 */\r
-#define        _BSD_SIZE_T_            unsigned long int /* sizeof() */\r
-#define        _BSD_SSIZE_T_           long int        /* byte count or error */\r
-#define        _BSD_TIME_T_            int             /* time() */\r
-#else\r
-#define        _BSD_CLOCK_T_           unsigned long   /* clock() */\r
-#define        _BSD_PTRDIFF_T_         int             /* ptr1 - ptr2 */\r
-#define        _BSD_SIZE_T_            unsigned int    /* sizeof() */\r
-#define        _BSD_SSIZE_T_           int             /* byte count or error */\r
-#define        _BSD_TIME_T_            long            /* time() */\r
-#endif\r
-#if __GNUC_PREREQ__(2, 96)\r
-#define        _BSD_VA_LIST_           __builtin_va_list /* GCC built-in type */\r
-#else\r
-#define        _BSD_VA_LIST_           char *          /* va_list */\r
-#endif\r
-#define        _BSD_CLOCKID_T_         int             /* clockid_t */\r
-#define        _BSD_TIMER_T_           int             /* timer_t */\r
-#define        _BSD_SUSECONDS_T_       int             /* suseconds_t */\r
-#define        _BSD_USECONDS_T_        unsigned int    /* useconds_t */\r
+#define _BSD_CLOCK_T_     _EFI_CLOCK_T      /* clock() */\r
+#define _BSD_PTRDIFF_T_   _EFI_PTRDIFF_T_   /* ptr1 - ptr2 */\r
+#define _BSD_SIZE_T_      _EFI_SIZE_T_      /* sizeof() */\r
+#define _BSD_SSIZE_T_     INTN              /* byte count or error */\r
+#define _BSD_TIME_T_      _EFI_TIME_T       /* time() */\r
+#define _BSD_VA_LIST_     VA_LIST\r
+#define _BSD_CLOCKID_T_   INT64             /* clockid_t */\r
+#define _BSD_TIMER_T_     INT64             /* timer_t */\r
+#define _BSD_SUSECONDS_T_ INT64             /* suseconds_t */\r
+#define _BSD_USECONDS_T_  UINT64            /* useconds_t */\r
 \r
 /*\r
  * NOTE: rune_t is not covered by ANSI nor other standards, and should not\r
  * chosen over a long is that the is*() and to*() routines take ints (says\r
  * ANSI C), but they use _RUNE_T_ instead of int.  By changing it here, you\r
  * lose a bit of ANSI conformance, but your programs will still work.\r
- *    \r
+ *\r
  * Note that _WCHAR_T_ and _RUNE_T_ must be of the same type.  When wchar_t\r
  * and rune_t are typedef'd, _WCHAR_T_ will be undef'd, but _RUNE_T remains\r
  * defined for ctype.h.\r
  */\r
-#define        _BSD_WCHAR_T_           int             /* wchar_t */\r
-#define        _BSD_WINT_T_            int             /* wint_t */\r
-#define        _BSD_RUNE_T_            int             /* rune_t */\r
-#define _BSD_WCTRANS_T_                void *          /* wctrans_t */\r
-#define _BSD_WCTYPE_T_         void *          /* wctype_t */\r
+#define _BSD_WCHAR_T_       _EFI_WCHAR_T    /* wchar_t */\r
+#define _BSD_WINT_T_        _EFI_WINT_T     /* wint_t */\r
+#define _BSD_RUNE_T_        _EFI_WCHAR_T    /* rune_t */\r
+#define _BSD_WCTRANS_T_     void *          /* wctrans_t */\r
+#define _BSD_WCTYPE_T_      unsigned int    /* wctype_t */\r
 \r
 /*\r
  * mbstate_t is an opaque object to keep conversion state, during multibyte\r
  * stream conversions.  The content must not be referenced by user programs.\r
  */\r
 typedef union {\r
-       __int64_t __mbstateL;   /* for alignment */\r
-       char __mbstate8[128];\r
+  __int64_t __mbstateL; /* for alignment */\r
+  char __mbstate8[128];\r
 } __mbstate_t;\r
-#define        _BSD_MBSTATE_T_         __mbstate_t     /* mbstate_t */\r
+#define _BSD_MBSTATE_T_   __mbstate_t /* mbstate_t */\r
 \r
-#endif /* _ANSI_H_ */\r
+#endif  /* _ANSI_H_ */\r
diff --git a/StdLib/Include/Arm/machine/bswap.h b/StdLib/Include/Arm/machine/bswap.h
new file mode 100644 (file)
index 0000000..b486b37
--- /dev/null
@@ -0,0 +1,11 @@
+/*      $NetBSD: bswap.h,v 1.4 2006/01/31 07:49:18 dsl Exp $      */\r
+\r
+#ifndef _MACHINE_BSWAP_H_\r
+#define _MACHINE_BSWAP_H_\r
+\r
+#include <machine/byte_swap.h>\r
+\r
+#define __BSWAP_RENAME\r
+#include <sys/bswap.h>\r
+\r
+#endif /* !_MACHINE_BSWAP_H_ */\r
diff --git a/StdLib/Include/Arm/machine/byte_swap.h b/StdLib/Include/Arm/machine/byte_swap.h
new file mode 100644 (file)
index 0000000..2a02645
--- /dev/null
@@ -0,0 +1,63 @@
+/*-\r
+ * Copyright (c) 1997, 1999, 2002 The NetBSD Foundation, Inc.\r
+ * All rights reserved.\r
+ *\r
+ * This code is derived from software contributed to The NetBSD Foundation\r
+ * by Charles M. Hannum, Neil A. Carson, and Jason R. Thorpe.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ * 1. Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ * 2. Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the distribution.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS\r
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\r
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS\r
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\r
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\r
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\r
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\r
+ * POSSIBILITY OF SUCH DAMAGE.\r
+ */\r
+\r
+#ifndef _ARM_BYTE_SWAP_H_\r
+#define _ARM_BYTE_SWAP_H_\r
+\r
+#ifdef __GNUC__\r
+#include <sys/types.h>\r
+__BEGIN_DECLS\r
+\r
+#define __BYTE_SWAP_U32_VARIABLE __byte_swap_u32_variable\r
+static __inline uint32_t\r
+__byte_swap_u32_variable(uint32_t v)\r
+{\r
+        uint32_t t1;\r
+\r
+        t1 = v ^ ((v << 16) | (v >> 16));\r
+        t1 &= 0xff00ffffU;\r
+        v = (v >> 8) | (v << 24);\r
+        v ^= (t1 >> 8);\r
+        return (v);\r
+}\r
+\r
+#define __BYTE_SWAP_U16_VARIABLE __byte_swap_u16_variable\r
+static __inline uint16_t\r
+__byte_swap_u16_variable(uint16_t v)\r
+{\r
+\r
+        v &= 0xffff;\r
+        v = (v >> 8) | (v << 8);\r
+        return (v);\r
+}\r
+\r
+__END_DECLS\r
+#endif\r
+\r
+#endif /* _ARM_BYTE_SWAP_H_ */\r
diff --git a/StdLib/Include/Arm/machine/endian.h b/StdLib/Include/Arm/machine/endian.h
new file mode 100644 (file)
index 0000000..bb53c0b
--- /dev/null
@@ -0,0 +1,3 @@
+/*      $NetBSD: endian.h,v 1.3 2001/06/23 12:20:27 bjh21 Exp $ */\r
+\r
+#include <sys/endian.h>\r
diff --git a/StdLib/Include/Arm/machine/endian_machdep.h b/StdLib/Include/Arm/machine/endian_machdep.h
new file mode 100644 (file)
index 0000000..abe2b40
--- /dev/null
@@ -0,0 +1,8 @@
+/* $NetBSD: endian_machdep.h,v 1.8 2006/01/30 21:52:38 dsl Exp $ */\r
+\r
+/* GCC predefines __ARMEB__ when building for big-endian ARM. */\r
+#ifdef __ARMEB__\r
+#define _BYTE_ORDER _BIG_ENDIAN\r
+#else\r
+#define _BYTE_ORDER _LITTLE_ENDIAN\r
+#endif\r
diff --git a/StdLib/Include/Arm/machine/int_const.h b/StdLib/Include/Arm/machine/int_const.h
new file mode 100644 (file)
index 0000000..f3a22f6
--- /dev/null
@@ -0,0 +1,63 @@
+/*  $NetBSD: int_const.h,v 1.1 2001/04/14 22:38:38 kleink Exp $ */\r
+\r
+/*-\r
+ * Copyright (c) 2001 The NetBSD Foundation, Inc.\r
+ * All rights reserved.\r
+ *\r
+ * This code is derived from software contributed to The NetBSD Foundation\r
+ * by Klaus Klein.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ * 1. Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ * 2. Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the distribution.\r
+ * 3. All advertising materials mentioning features or use of this software\r
+ *    must display the following acknowledgement:\r
+ *        This product includes software developed by the NetBSD\r
+ *        Foundation, Inc. and its contributors.\r
+ * 4. Neither the name of The NetBSD Foundation nor the names of its\r
+ *    contributors may be used to endorse or promote products derived\r
+ *    from this software without specific prior written permission.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS\r
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\r
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS\r
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\r
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\r
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\r
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\r
+ * POSSIBILITY OF SUCH DAMAGE.\r
+ */\r
+\r
+#ifndef _ARM_INT_CONST_H_\r
+#define _ARM_INT_CONST_H_\r
+\r
+/*\r
+ * 7.18.4 Macros for integer constants\r
+ */\r
+\r
+/* 7.18.4.1 Macros for minimum-width integer constants */\r
+\r
+#define INT8_C(c) c\r
+#define INT16_C(c)  c\r
+#define INT32_C(c)  c\r
+#define INT64_C(c)  c ## LL\r
+\r
+#define UINT8_C(c)  c ## U\r
+#define UINT16_C(c) c ## U\r
+#define UINT32_C(c) c ## U\r
+#define UINT64_C(c) c ## ULL\r
+\r
+/* 7.18.4.2 Macros for greatest-width integer constants */\r
+\r
+#define INTMAX_C(c) c ## LL\r
+#define UINTMAX_C(c)  c ## ULL\r
+\r
+#endif /* !_ARM_INT_CONST_H_ */\r
diff --git a/StdLib/Include/Arm/machine/int_limits.h b/StdLib/Include/Arm/machine/int_limits.h
new file mode 100644 (file)
index 0000000..c15eb7f
--- /dev/null
@@ -0,0 +1,127 @@
+/*      $NetBSD: int_limits.h,v 1.9 2008/08/29 19:08:29 matt Exp $      */\r
+\r
+/*-\r
+ * Copyright (c) 2001 The NetBSD Foundation, Inc.\r
+ * All rights reserved.\r
+ *\r
+ * This code is derived from software contributed to The NetBSD Foundation\r
+ * by Klaus Klein.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ * 1. Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ * 2. Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the distribution.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS\r
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\r
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS\r
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\r
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\r
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\r
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\r
+ * POSSIBILITY OF SUCH DAMAGE.\r
+ */\r
+\r
+#ifndef _ARM_INT_LIMITS_H_\r
+#define _ARM_INT_LIMITS_H_\r
+\r
+/*\r
+ * 7.18.2 Limits of specified-width integer types\r
+ */\r
+\r
+/* 7.18.2.1 Limits of exact-width integer types */\r
+\r
+/* minimum values of exact-width signed integer types */\r
+#define INT8_MIN        (-0x7f-1)                       /* int8_t         */\r
+#define INT16_MIN       (-0x7fff-1)                     /* int16_t        */\r
+#define INT32_MIN       (-0x7fffffff-1)                 /* int32_t        */\r
+#define INT64_MIN       (-0x7fffffffffffffffLL-1)       /* int64_t        */\r
+\r
+/* maximum values of exact-width signed integer types */\r
+#define INT8_MAX        0x7f                            /* int8_t         */\r
+#define INT16_MAX       0x7fff                          /* int16_t        */\r
+#define INT32_MAX       0x7fffffff                      /* int32_t        */\r
+#define INT64_MAX       0x7fffffffffffffffLL            /* int64_t        */\r
+\r
+/* maximum values of exact-width unsigned integer types */\r
+#define UINT8_MAX       0xff                            /* uint8_t        */\r
+#define UINT16_MAX      0xffff                          /* uint16_t       */\r
+#define UINT32_MAX      0xffffffffU                     /* uint32_t       */\r
+#define UINT64_MAX      0xffffffffffffffffULL           /* uint64_t       */\r
+\r
+/* 7.18.2.2 Limits of minimum-width integer types */\r
+\r
+/* minimum values of minimum-width signed integer types */\r
+#define INT_LEAST8_MIN  (-0x7f-1)                       /* int_least8_t   */\r
+#define INT_LEAST16_MIN (-0x7fff-1)                     /* int_least16_t  */\r
+#define INT_LEAST32_MIN (-0x7fffffff-1)                 /* int_least32_t  */\r
+#define INT_LEAST64_MIN (-0x7fffffffffffffffLL-1)       /* int_least64_t  */\r
+\r
+/* maximum values of minimum-width signed integer types */\r
+#define INT_LEAST8_MAX  0x7f                            /* int_least8_t   */\r
+#define INT_LEAST16_MAX 0x7fff                          /* int_least16_t  */\r
+#define INT_LEAST32_MAX 0x7fffffff                      /* int_least32_t  */\r
+#define INT_LEAST64_MAX 0x7fffffffffffffffLL            /* int_least64_t  */\r
+\r
+/* maximum values of minimum-width unsigned integer types */\r
+#define UINT_LEAST8_MAX  0xff                           /* uint_least8_t  */\r
+#define UINT_LEAST16_MAX 0xffff                         /* uint_least16_t */\r
+#define UINT_LEAST32_MAX 0xffffffffU                    /* uint_least32_t */\r
+#define UINT_LEAST64_MAX 0xffffffffffffffffULL          /* uint_least64_t */\r
+\r
+/* 7.18.2.3 Limits of fastest minimum-width integer types */\r
+\r
+/* minimum values of fastest minimum-width signed integer types */\r
+#define INT_FAST8_MIN   (-0x7fffffff-1)                 /* int_fast8_t    */\r
+#define INT_FAST16_MIN  (-0x7fffffff-1)                 /* int_fast16_t   */\r
+#define INT_FAST32_MIN  (-0x7fffffff-1)                 /* int_fast32_t   */\r
+#define INT_FAST64_MIN  (-0x7fffffffffffffffLL-1)       /* int_fast64_t   */\r
+\r
+/* maximum values of fastest minimum-width signed integer types */\r
+#define INT_FAST8_MAX   0x7fffffff                      /* int_fast8_t    */\r
+#define INT_FAST16_MAX  0x7fffffff                      /* int_fast16_t   */\r
+#define INT_FAST32_MAX  0x7fffffff                      /* int_fast32_t   */\r
+#define INT_FAST64_MAX  0x7fffffffffffffffLL            /* int_fast64_t   */\r
+\r
+/* maximum values of fastest minimum-width unsigned integer types */\r
+#define UINT_FAST8_MAX  0xffffffffU                     /* uint_fast8_t   */\r
+#define UINT_FAST16_MAX 0xffffffffU                     /* uint_fast16_t  */\r
+#define UINT_FAST32_MAX 0xffffffffU                     /* uint_fast32_t  */\r
+#define UINT_FAST64_MAX 0xffffffffffffffffULL           /* uint_fast64_t  */\r
+\r
+/* 7.18.2.4 Limits of integer types capable of holding object pointers */\r
+\r
+#define INTPTR_MIN      (-0x7fffffffL-1)                /* intptr_t       */\r
+#define INTPTR_MAX      0x7fffffffL                     /* intptr_t       */\r
+#define UINTPTR_MAX     0xffffffffUL                    /* uintptr_t      */\r
+\r
+/* 7.18.2.5 Limits of greatest-width integer types */\r
+\r
+#define INTMAX_MIN      (-0x7fffffffffffffffLL-1)       /* intmax_t       */\r
+#define INTMAX_MAX      0x7fffffffffffffffLL            /* intmax_t       */\r
+#define UINTMAX_MAX     0xffffffffffffffffULL           /* uintmax_t      */\r
+\r
+\r
+/*\r
+ * 7.18.3 Limits of other integer types\r
+ */\r
+\r
+/* limits of ptrdiff_t */\r
+#define PTRDIFF_MIN     (-0x7fffffffL-1)                /* ptrdiff_t      */\r
+#define PTRDIFF_MAX     0x7fffffffL                     /* ptrdiff_t      */\r
+\r
+/* limits of sig_atomic_t */\r
+#define SIG_ATOMIC_MIN  (-0x7fffffff-1)                 /* sig_atomic_t   */\r
+#define SIG_ATOMIC_MAX  0x7fffffff                      /* sig_atomic_t   */\r
+\r
+/* limit of size_t */\r
+#define SIZE_MAX        0xffffffffUL                    /* size_t         */\r
+\r
+#endif /* !_ARM_INT_LIMITS_H_ */\r
diff --git a/StdLib/Include/Arm/machine/int_mwgwtypes.h b/StdLib/Include/Arm/machine/int_mwgwtypes.h
new file mode 100644 (file)
index 0000000..c9a4917
--- /dev/null
@@ -0,0 +1,82 @@
+/** @file\r
+    Minimum and Greatest Width Integer types.\r
+\r
+    Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>\r
+    This program and the accompanying materials are licensed and made available under\r
+    the terms and conditions of the BSD License that accompanies this distribution.\r
+    The full text of the license may be found at\r
+    http://opensource.org/licenses/bsd-license.php.\r
+\r
+    THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+    WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+    Portions Copyright (c) 2001 The NetBSD Foundation, Inc.\r
+    All rights reserved.\r
+\r
+    This code is derived from software contributed to The NetBSD Foundation\r
+    by Klaus Klein.\r
+\r
+    Redistribution and use in source and binary forms, with or without\r
+    modification, are permitted provided that the following conditions\r
+    are met:\r
+      1.  Redistributions of source code must retain the above copyright\r
+          notice, this list of conditions and the following disclaimer.\r
+      2.  Redistributions in binary form must reproduce the above copyright\r
+          notice, this list of conditions and the following disclaimer in the\r
+          documentation and/or other materials provided with the distribution.\r
+      3.  All advertising materials mentioning features or use of this software\r
+          must display the following acknowledgement:\r
+            This product includes software developed by the NetBSD\r
+            Foundation, Inc. and its contributors.\r
+      4.  Neither the name of The NetBSD Foundation nor the names of its\r
+          contributors may be used to endorse or promote products derived\r
+          from this software without specific prior written permission.\r
+\r
+    THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS\r
+    ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\r
+    TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
+    PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS\r
+    BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\r
+    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\r
+    SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
+    INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\r
+    CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r
+    ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\r
+    POSSIBILITY OF SUCH DAMAGE.\r
+\r
+    NetBSD: int_mwgwtypes.h,v 1.5 2005/12/24 20:06:47 perry Exp\r
+**/\r
+#ifndef _ARM_INT_MWGWTYPES_H_\r
+#define _ARM_INT_MWGWTYPES_H_\r
+\r
+/*\r
+ * 7.18.1 Integer types\r
+ */\r
+\r
+/* 7.18.1.2 Minimum-width integer types */\r
+\r
+typedef CHAR8     int_least8_t;\r
+typedef UINT8     uint_least8_t;\r
+typedef INT16     int_least16_t;\r
+typedef UINT16    uint_least16_t;\r
+typedef INT32     int_least32_t;\r
+typedef UINT32    uint_least32_t;\r
+typedef INT64     int_least64_t;\r
+typedef UINT64    uint_least64_t;\r
+\r
+/* 7.18.1.3 Fastest minimum-width integer types */\r
+typedef INT32     int_fast8_t;\r
+typedef UINT32    uint_fast8_t;\r
+typedef INT32     int_fast16_t;\r
+typedef UINT32    uint_fast16_t;\r
+typedef INT32     int_fast32_t;\r
+typedef UINT32    uint_fast32_t;\r
+typedef INT64     int_fast64_t;\r
+typedef UINT64    uint_fast64_t;\r
+\r
+/* 7.18.1.5 Greatest-width integer types */\r
+\r
+typedef INT64     intmax_t;\r
+typedef UINT64    uintmax_t;\r
+\r
+#endif /* !_ARM_INT_MWGWTYPES_H_ */\r
diff --git a/StdLib/Include/Arm/machine/int_types.h b/StdLib/Include/Arm/machine/int_types.h
new file mode 100644 (file)
index 0000000..cebebe3
--- /dev/null
@@ -0,0 +1,61 @@
+/*  $NetBSD: int_types.h,v 1.10 2005/12/24 20:07:10 perry Exp $ */\r
+\r
+/*-\r
+ * Copyright (c) 1990 The Regents of the University of California.\r
+ * All rights reserved.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ * 1. Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ * 2. Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the distribution.\r
+ * 3. Neither the name of the University nor the names of its contributors\r
+ *    may be used to endorse or promote products derived from this software\r
+ *    without specific prior written permission.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\r
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE\r
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
+ * SUCH DAMAGE.\r
+ *\r
+ *  from: @(#)types.h 7.5 (Berkeley) 3/9/91\r
+ */\r
+\r
+#ifndef _ARM_INT_TYPES_H_\r
+#define _ARM_INT_TYPES_H_\r
+\r
+#include  <sys/EfiCdefs.h>\r
+\r
+/*\r
+ * 7.18.1 Integer types\r
+ */\r
+\r
+/* 7.18.1.1 Exact-width integer types */\r
+\r
+typedef INT8    __int8_t;\r
+typedef UINT8   __uint8_t;\r
+typedef INT16   __int16_t;\r
+typedef UINT16  __uint16_t;\r
+typedef INT32   __int32_t;\r
+typedef UINT32  __uint32_t;\r
+typedef INT64   __int64_t;\r
+typedef UINT64  __uint64_t;\r
+\r
+#define __BIT_TYPES_DEFINED__\r
+\r
+/* 7.18.1.4 Integer types capable of holding object pointers */\r
+\r
+typedef INTN    __intptr_t;\r
+typedef UINTN   __uintptr_t;\r
+\r
+#endif  /* !_ARM_INT_TYPES_H_ */\r
diff --git a/StdLib/Include/Arm/machine/limits.h b/StdLib/Include/Arm/machine/limits.h
new file mode 100644 (file)
index 0000000..5caa9a1
--- /dev/null
@@ -0,0 +1,95 @@
+/*      $NetBSD: limits.h,v 1.9 2008/08/29 19:08:29 matt Exp $  */\r
+\r
+/*\r
+ * Copyright (c) 1988 The Regents of the University of California.\r
+ * All rights reserved.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ * 1. Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ * 2. Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the distribution.\r
+ * 3. Neither the name of the University nor the names of its contributors\r
+ *    may be used to endorse or promote products derived from this software\r
+ *    without specific prior written permission.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\r
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE\r
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
+ * SUCH DAMAGE.\r
+ *\r
+ *      from: @(#)limits.h      7.2 (Berkeley) 6/28/90\r
+ */\r
+\r
+#ifndef _ARM32_LIMITS_H_\r
+#define _ARM32_LIMITS_H_\r
+\r
+#include <sys/featuretest.h>\r
+\r
+#define __CHAR_BIT        8               /* number of bits in a char */\r
+//#define __MB_LEN_MAX      32              /* no multibyte characters */\r
+\r
+#define __SCHAR_MIN       (-0x7f-1)       /* max value for a signed char */\r
+#define __SCHAR_MAX       0x7f            /* min value for a signed char */\r
+\r
+#define __UCHAR_MAX       0xff            /* max value for an unsigned char */\r
+#define __CHAR_MAX        0xff            /* max value for a char */\r
+#define __CHAR_MIN        0               /* min value for a char */\r
+\r
+#define __USHRT_MAX       0xffff          /* max value for an unsigned short */\r
+#define __SHRT_MAX        0x7fff          /* max value for a short */\r
+#define __SHRT_MIN        (-0x7fff-1)     /* min value for a short */\r
+\r
+#define __UINT_MAX        0xffffffffU     /* max value for an unsigned int */\r
+#define __INT_MAX         0x7fffffff      /* max value for an int */\r
+#define __INT_MIN         (-0x7fffffff-1) /* min value for an int */\r
+\r
+#define __ULONG_MAX       0xffffffffUL    /* max value for an unsigned long */\r
+#define __LONG_MAX        0x7fffffffL     /* max value for a long */\r
+#define __LONG_MIN        (-0x7fffffffL-1)        /* min value for a long */\r
+\r
+#if defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \\r
+    defined(_NETBSD_SOURCE)\r
+#define SSIZE_MAX       LONG_MAX        /* max value for a ssize_t */\r
+\r
+#if defined(_ISOC99_SOURCE) || (__STDC_VERSION__ - 0) >= 199901L || \\r
+    defined(_NETBSD_SOURCE)\r
+#define __ULLONG_MAX      0xffffffffffffffffULL   /* max unsigned long long */\r
+#define __LLONG_MAX       0x7fffffffffffffffLL    /* max signed long long */\r
+#define __LLONG_MIN       (-0x7fffffffffffffffLL-1) /* min signed long long */\r
+#endif\r
+\r
+#if defined(_NETBSD_SOURCE)\r
+#define SIZE_T_MAX      LONG_MAX        /* max value for a size_t */\r
+\r
+#define UQUAD_MAX       0xffffffffffffffffLL            /* max unsigned quad */\r
+#define QUAD_MAX        0x7fffffffffffffffLL            /* max signed quad */\r
+#define QUAD_MIN        (-0x7fffffffffffffffLL-1)       /* min signed quad */\r
+\r
+#endif /* _NETBSD_SOURCE */\r
+#endif /* _POSIX_C_SOURCE || _XOPEN_SOURCE || _NETBSD_SOURCE */\r
+\r
+#if defined(_XOPEN_SOURCE) || defined(_NETBSD_SOURCE)\r
+#define LONG_BIT        32\r
+#define WORD_BIT        32\r
+\r
+#define DBL_DIG         15\r
+#define DBL_MAX         1.7976931348623157E+308\r
+#define DBL_MIN         2.2250738585072014E-308\r
+\r
+//#define FLT_DIG         6\r
+//#define FLT_MAX         3.40282347E+38F\r
+//#define FLT_MIN         1.17549435E-38F\r
+#endif\r
+\r
+#endif  /* _ARM32_LIMITS_H_ */\r
diff --git a/StdLib/Include/Arm/machine/param.h b/StdLib/Include/Arm/machine/param.h
new file mode 100644 (file)
index 0000000..ac76253
--- /dev/null
@@ -0,0 +1,137 @@
+/*      $NetBSD: param.h,v 1.13 2010/05/06 19:10:26 joerg Exp $ */\r
+\r
+/*\r
+ * Copyright (c) 1994,1995 Mark Brinicombe.\r
+ * All rights reserved.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ * 1. Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ * 2. Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the distribution.\r
+ * 3. All advertising materials mentioning features or use of this software\r
+ *    must display the following acknowledgement:\r
+ *      This product includes software developed by the RiscBSD team.\r
+ * 4. The name "RiscBSD" nor the name of the author may be used to\r
+ *    endorse or promote products derived from this software without specific\r
+ *    prior written permission.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY RISCBSD ``AS IS'' AND ANY EXPRESS OR IMPLIED\r
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\r
+ * IN NO EVENT SHALL RISCBSD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\r
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\r
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\r
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
+ * SUCH DAMAGE.\r
+ */\r
+\r
+#ifndef _ARM_PARAM_H_\r
+#define _ARM_PARAM_H_\r
+\r
+/*\r
+ * Machine dependent constants for all ARM processors\r
+ */\r
+\r
+/*\r
+ * For KERNEL code:\r
+ *      MACHINE must be defined by the individual port.  This is so that\r
+ *      uname returns the correct thing, etc.\r
+ *\r
+ *      MACHINE_ARCH may be defined by individual ports as a temporary\r
+ *      measure while we're finishing the conversion to ELF.\r
+ *\r
+ * For non-KERNEL code:\r
+ *      If ELF, MACHINE and MACHINE_ARCH are forced to "arm/armeb".\r
+ */\r
+\r
+#if defined(_KERNEL)\r
+#ifndef MACHINE_ARCH                    /* XXX For now */\r
+#ifndef __ARMEB__\r
+#define _MACHINE_ARCH   arm\r
+#define MACHINE_ARCH    "arm"\r
+#else\r
+#define _MACHINE_ARCH   armeb\r
+#define MACHINE_ARCH    "armeb"\r
+#endif /* __ARMEB__ */\r
+#endif /* MACHINE_ARCH */\r
+#else\r
+#undef _MACHINE\r
+#undef MACHINE\r
+#undef _MACHINE_ARCH\r
+#undef MACHINE_ARCH\r
+#define _MACHINE        arm\r
+#define MACHINE         "arm"\r
+#ifndef __ARMEB__\r
+#define _MACHINE_ARCH   arm\r
+#define MACHINE_ARCH    "arm"\r
+#else\r
+#define _MACHINE_ARCH   armeb\r
+#define MACHINE_ARCH    "armeb"\r
+#endif /* __ARMEB__ */\r
+#endif /* !_KERNEL */\r
+\r
+#define MID_MACHINE     MID_ARM6\r
+\r
+/*\r
+ * Round p (pointer or byte index) up to a correctly-aligned value\r
+ * for all data types (int, long, ...).   The result is u_int and\r
+ * must be cast to any desired pointer type.\r
+ *\r
+ * ALIGNED_POINTER is a boolean macro that checks whether an address\r
+ * is valid to fetch data elements of type t from on this architecture.\r
+ * This does not reflect the optimal alignment, just the possibility\r
+ * (within reasonable limits).\r
+ *\r
+ */\r
+#define ALIGNBYTES              (sizeof(int) - 1)\r
+#define ALIGN(p)                (((u_int)(p) + ALIGNBYTES) &~ ALIGNBYTES)\r
+#define ALIGNED_POINTER(p,t)    ((((u_long)(p)) & (sizeof(t)-1)) == 0)\r
+/* ARM-specific macro to align a stack pointer (downwards). */\r
+#define STACKALIGNBYTES         (8 - 1)\r
+#define STACKALIGN(p)           ((u_int)(p) &~ STACKALIGNBYTES)\r
+\r
+#define DEV_BSHIFT      9               /* log2(DEV_BSIZE) */\r
+#define DEV_BSIZE       (1 << DEV_BSHIFT)\r
+#define BLKDEV_IOSIZE   2048\r
+\r
+#ifndef MAXPHYS\r
+#define MAXPHYS         65536           /* max I/O transfer size */\r
+#endif\r
+\r
+/*\r
+ * Constants related to network buffer management.\r
+ * MCLBYTES must be no larger than NBPG (the software page size), and,\r
+ * on machines that exchange pages of input or output buffers with mbuf\r
+ * clusters (MAPPED_MBUFS), MCLBYTES must also be an integral multiple\r
+ * of the hardware page size.\r
+ */\r
+#define MSIZE           256             /* size of an mbuf */\r
+\r
+#ifndef MCLSHIFT\r
+#define MCLSHIFT        11              /* convert bytes to m_buf clusters */\r
+                                        /* 2K cluster can hold Ether frame */\r
+#endif  /* MCLSHIFT */\r
+\r
+#define MCLBYTES        (1 << MCLSHIFT) /* size of a m_buf cluster */\r
+\r
+#ifndef NMBCLUSTERS_MAX\r
+#define NMBCLUSTERS_MAX (0x2000000 / MCLBYTES)  /* Limit to 64MB for clusters */\r
+#endif\r
+\r
+/*\r
+ * Compatibility /dev/zero mapping.\r
+ */\r
+#ifdef _KERNEL\r
+#ifdef COMPAT_16\r
+#define COMPAT_ZERODEV(x)       (x == makedev(0, _DEV_ZERO_oARM))\r
+#endif\r
+#endif /* _KERNEL */\r
+\r
+#endif /* _ARM_PARAM_H_ */\r
index d42ca13e087859d1f89c35d54c03bc2a96899887..6628eb9e9403cdfaa34f2f11b80d54b1a1fe175f 100644 (file)
@@ -11,7 +11,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 **/\r
 #ifndef _MACHINE_SIGNAL_H\r
 #define _MACHINE_SIGNAL_H\r
-#include  <sys/common.h>\r
+#include  <sys/EfiCdefs.h>\r
 \r
 /** The type sig_atomic_t is the (possibly volatile-qualified) integer type of\r
     an object that can be accessed as an atomic entity, even in the presence\r
diff --git a/StdLib/Include/Arm/machine/types.h b/StdLib/Include/Arm/machine/types.h
new file mode 100644 (file)
index 0000000..a59d5be
--- /dev/null
@@ -0,0 +1,82 @@
+/** @file\r
+    Machine dependent type definitions.\r
+\r
+    Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>\r
+    This program and the accompanying materials are licensed and made available\r
+    under the terms and conditions of the BSD License that accompanies this\r
+    distribution.  The full text of the license may be found at\r
+    http://opensource.org/licenses/bsd-license.php.\r
+\r
+    THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+    WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+    Copyright (c) 1990 The Regents of the University of California.\r
+    All rights reserved.\r
+\r
+    Redistribution and use in source and binary forms, with or without\r
+    modification, are permitted provided that the following conditions\r
+    are met:\r
+    1. Redistributions of source code must retain the above copyright\r
+       notice, this list of conditions and the following disclaimer.\r
+    2. Redistributions in binary form must reproduce the above copyright\r
+       notice, this list of conditions and the following disclaimer in the\r
+       documentation and/or other materials provided with the distribution.\r
+    3. Neither the name of the University nor the names of its contributors\r
+       may be used to endorse or promote products derived from this software\r
+       without specific prior written permission.\r
+\r
+    THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\r
+    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
+    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE\r
+    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
+    SUCH DAMAGE.\r
+\r
+    types.h 7.5 (Berkeley) 3/9/91\r
+    NetBSD: types.h,v 1.49 2006/09/03 13:51:23 bjh21 Exp\r
+**/\r
+#ifndef _MACHTYPES_H_\r
+#define _MACHTYPES_H_\r
+\r
+#include <sys/EfiCdefs.h>\r
+#include <sys/featuretest.h>\r
+#include <machine/int_types.h>\r
+\r
+/* Handle the long and unsigned long data types which EFI doesn't directly support. */\r
+//typedef INTN              LONGN;\r
+//typedef UINTN             ULONGN;\r
+\r
+typedef PHYSICAL_ADDRESS  paddr_t;\r
+typedef UINT64            psize_t;\r
+typedef PHYSICAL_ADDRESS  vaddr_t;\r
+typedef UINT64            vsize_t;\r
+\r
+typedef INT32   pmc_evid_t;\r
+typedef UINT64  pmc_ctr_t;\r
+typedef INT32   register_t;\r
+\r
+typedef volatile INT32    __cpu_simple_lock_t;\r
+\r
+#define __SIMPLELOCK_LOCKED   1\r
+#define __SIMPLELOCK_UNLOCKED 0\r
+\r
+/* The ARMv7 does not have strict alignment requirements. */\r
+#define __NO_STRICT_ALIGNMENT\r
+//TODO: Fixme for the ARM architecture that requires strict alignment\r
+\r
+#define __HAVE_DEVICE_REGISTER\r
+#define __HAVE_CPU_COUNTER\r
+#define __HAVE_SYSCALL_INTERN\r
+#define __HAVE_MINIMAL_EMUL\r
+#define __HAVE_OLD_DISKLABEL\r
+#define __HAVE_GENERIC_SOFT_INTERRUPTS\r
+#define __HAVE_CPU_MAXPROC\r
+#define __HAVE_TIMECOUNTER\r
+#define __HAVE_GENERIC_TODR\r
+\r
+#endif  /* _MACHTYPES_H_ */\r
index 0ce4fd9d2d5d4ee23dd24e7ffec7e945e8a186d6..274991875ac2147b5e67a4f9bd49b5b1261a0ac8 100644 (file)
 \r
 #ifdef __GNUC__\r
 #if __STDC__\r
-    #ifndef   DONT_USE_STRONG_WEAK_ALIAS\r
-#define __strong_alias(alias,sym)               \\r
-    __asm(".global " _C_LABEL_STRING(#alias) "\n"     \\r
-      _C_LABEL_STRING(#alias) " = " _C_LABEL_STRING(#sym));\r
-#define __weak_alias(alias,sym)           \\r
-    __asm(".weak " _C_LABEL_STRING(#alias) "\n"     \\r
-      _C_LABEL_STRING(#alias) " = " _C_LABEL_STRING(#sym));\r
-\r
-/* Do not use __weak_extern, use __weak_reference instead */\r
-#define __weak_extern(sym)            \\r
-    __asm(".weak " _C_LABEL_STRING(#sym));\r
-\r
-#if __GNUC_PREREQ__(4, 0)\r
-#define __weak_reference(sym) __attribute__((__weakref__))\r
-#else\r
-#define __weak_reference(sym) ; __asm(".weak " _C_LABEL_STRING(#sym))\r
-#endif\r
-\r
-#define __warn_references(sym,msg)          \\r
-  __asm(".stabs \"" msg "\",30,0,0,0");       \\r
-  __asm(".stabs \"_" #sym "\",1,0,0,0");\r
+  #ifndef   DONT_USE_STRONG_WEAK_ALIAS\r
+    #define __strong_alias(alias,sym)               \\r
+        __asm(".global " _C_LABEL_STRING(#alias) "\n"     \\r
+          _C_LABEL_STRING(#alias) " = " _C_LABEL_STRING(#sym));\r
+    #define __weak_alias(alias,sym)           \\r
+        __asm(".weak " _C_LABEL_STRING(#alias) "\n"     \\r
+          _C_LABEL_STRING(#alias) " = " _C_LABEL_STRING(#sym));\r
+\r
+    /* Do not use __weak_extern, use __weak_reference instead */\r
+    #define __weak_extern(sym)            \\r
+        __asm(".weak " _C_LABEL_STRING(#sym));\r
+\r
+    #if __GNUC_PREREQ__(4, 0)\r
+      #define __weak_reference(sym) __attribute__((__weakref__))\r
     #else\r
-      #define __strong_alias(alias,sym)   /* NOTHING */\r
-      #define __weak_alias(alias,sym)     /* NOTHING */\r
-      #define __weak_extern(sym)          /* NOTHING */\r
-      #define __weak_reference(sym)       /* NOTHING */\r
+      #define __weak_reference(sym) ; __asm(".weak " _C_LABEL_STRING(#sym))\r
+    #endif\r
+\r
+    #define __warn_references(sym,msg)          \\r
+      __asm(".stabs \"" msg "\",30,0,0,0");       \\r
+      __asm(".stabs \"_" #sym "\",1,0,0,0");\r
+  #else\r
+    #define __strong_alias(alias,sym)   /* NOTHING */\r
+    #define __weak_alias(alias,sym)     /* NOTHING */\r
+    #define __weak_extern(sym)          /* NOTHING */\r
+    #define __weak_reference(sym)       /* NOTHING */\r
 \r
+    #if !defined(__CC_ARM)\r
       #define __warn_references(sym,msg)          \\r
               __asm(".stabs \"" msg "\",30,0,0,0");       \\r
               __asm(".stabs \"_" #sym "\",1,0,0,0");\r
+    #else\r
+      #define __warn_references(sym,msg)\r
     #endif\r
-#else /* __STDC__ */\r
-#define __weak_alias(alias,sym) ___weak_alias(_/**/alias,_/**/sym)\r
-#define ___weak_alias(alias,sym)          \\r
-    __asm(".weak alias\nalias = sym");\r
-/* Do not use __weak_extern, use __weak_reference instead */\r
-#define __weak_extern(sym) ___weak_extern(_/**/sym)\r
-#define ___weak_extern(sym)           \\r
-    __asm(".weak sym");\r
-\r
-#if __GNUC_PREREQ__(4, 0)\r
-#define __weak_reference(sym) __attribute__((__weakref__))\r
-#else\r
-#define ___weak_reference(sym)  ; __asm(".weak sym");\r
-#define __weak_reference(sym) ___weak_reference(_/**/sym)\r
-#endif\r
-\r
-#define __warn_references(sym,msg)          \\r
-  __asm(".stabs msg,30,0,0,0");         \\r
-  __asm(".stabs \"_/**/sym\",1,0,0,0");\r
+  #endif\r
+#else   /* __STDC__ */\r
+  #define __weak_alias(alias,sym) ___weak_alias(_/**/alias,_/**/sym)\r
+  #define ___weak_alias(alias,sym)          \\r
+      __asm(".weak alias\nalias = sym");\r
+  /* Do not use __weak_extern, use __weak_reference instead */\r
+  #define __weak_extern(sym) ___weak_extern(_/**/sym)\r
+  #define ___weak_extern(sym)           \\r
+      __asm(".weak sym");\r
+\r
+  #if __GNUC_PREREQ__(4, 0)\r
+    #define __weak_reference(sym) __attribute__((__weakref__))\r
+  #else\r
+    #define ___weak_reference(sym)  ; __asm(".weak sym");\r
+    #define __weak_reference(sym) ___weak_reference(_/**/sym)\r
+  #endif\r
+\r
+  #define __warn_references(sym,msg)          \\r
+    __asm(".stabs msg,30,0,0,0");         \\r
+    __asm(".stabs \"_/**/sym\",1,0,0,0");\r
 #endif /* __STDC__ */\r
 #else /* __GNUC__ */\r
-#define __warn_references(sym,msg)\r
+  #define __warn_references(sym,msg)\r
 #endif /* __GNUC__ */\r
 \r
 #if defined(__sh__)   /* XXX SH COFF */\r
index 3f436502704e9ea22576a3f456bad657d7aec412..a64f447aab58073f054434d9d63f8d532348f7f0 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: flt_rounds.c,v 1.3 2006/02/25 00:58:35 wiz Exp $       */\r
+/*  $NetBSD: flt_rounds.c,v 1.3 2006/02/25 00:58:35 wiz Exp $ */\r
 \r
 /*\r
  * Copyright (c) 1996 Mark Brinicombe\r
@@ -15,7 +15,7 @@
  * 3. All advertising materials mentioning features or use of this software\r
  *    must display the following acknowledgement:\r
  *      This product includes software developed by Mark Brinicombe\r
- *     for the NetBSD Project.\r
+ *  for the NetBSD Project.\r
  * 4. The name of the author may not be used to endorse or promote products\r
  *    derived from this software without specific prior written permission\r
  *\r
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
  */\r
 \r
-#include <sys/cdefs.h>\r
+#include <sys/EfiCdefs.h>\r
 #if defined(LIBC_SCCS) && !defined(lint)\r
 __RCSID("$NetBSD: flt_rounds.c,v 1.3 2006/02/25 00:58:35 wiz Exp $");\r
 #endif /* LIBC_SCCS and not lint */\r
 \r
 #include <sys/types.h>\r
-#include <ieeefp.h>\r
+//#include <ieeefp.h>\r
 \r
 static const int map[] = {\r
-       1,      /* round to nearest */\r
-       2,      /* round to positive infinity */\r
-       3,      /* round to negative infinity */\r
-       0       /* round to zero */\r
+  1,  /* round to nearest */\r
+  2,  /* round to positive infinity */\r
+  3,  /* round to negative infinity */\r
+  0 /* round to zero */\r
 };\r
 \r
 /*\r
  * Return the current FP rounding mode\r
  *\r
  * Returns:\r
- *     0 - round to zero\r
- *     1 - round to nearest\r
- *     2 - round to postive infinity\r
- *     3 - round to negative infinity\r
+ *  0 - round to zero\r
+ *  1 - round to nearest\r
+ *  2 - round to postive infinity\r
+ *  3 - round to negative infinity\r
  *\r
  * ok all we need to do is get the current FP rounding mode\r
  * index our map table and return the appropriate value.\r
@@ -77,5 +77,6 @@ int __flt_rounds(void);
 int\r
 __flt_rounds()\r
 {\r
-       return(map[fpgetround()]);\r
+  //return(map[fpgetround()]);\r
+  return 1; //TODO: FixMe\r
 }\r
index 717e2d815d53a8aac277f5c572a077efdd8c11c8..c352b22455695adef3e71a424965600fab9896a2 100644 (file)
@@ -25,7 +25,7 @@
   PLATFORM_VERSION               = 0.01\r
   DSC_SPECIFICATION              = 0x00010006\r
   OUTPUT_DIRECTORY               = Build/StdLib\r
-  SUPPORTED_ARCHITECTURES        = IA32|IPF|X64\r
+  SUPPORTED_ARCHITECTURES        = IA32|IPF|X64|ARM\r
   BUILD_TARGETS                  = DEBUG|RELEASE\r
   SKUID_IDENTIFIER               = DEFAULT\r
 \r
index 3f16fb9da85d93f2c162524ed38cdc3a05637294..5446ecd35f45d67583c73c50655308d9c8e5a08b 100644 (file)
   PalLib|MdePkg/Library/UefiPalLib/UefiPalLib.inf\r
   TimerLib|MdePkg/Library/SecPeiDxeTimerLibCpu/SecPeiDxeTimerLibCpu.inf\r
 \r
+[LibraryClasses.ARM.UEFI_APPLICATION]\r
+  NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf\r
+  TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf\r
+\r
+\r
 !else\r
   # Use this instance if Running in an Emulation Environment.\r
 [LibraryClasses.Common.UEFI_APPLICATION]\r
   TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf\r
+\r
+[LibraryClasses.ARM.UEFI_APPLICATION]\r
+  NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf\r
+\r
 !endif\r
 \r
 [Components]\r
 !ifndef $(EMULATE)\r
   # These Build Options are used when building the Standard Libraries to be run\r
   # on real hardware.\r
-  INTEL:*_*_*_CC_FLAGS      = /Qfreestanding\r
-   MSFT:*_*_*_CC_FLAGS      = /X /Zc:wchar_t\r
-    GCC:*_*_*_CC_FLAGS      = -nostdinc -nostdlib\r
+   INTEL:*_*_*_CC_FLAGS      = /Qfreestanding\r
+    MSFT:*_*_*_CC_FLAGS      = /X /Zc:wchar_t\r
+     GCC:*_*_*_CC_FLAGS      = -nostdinc -nostdlib\r
+    RVCT:*_*_*_CC_FLAGS      = --library_interface=none -J$(WORKSPACE)/StdLib/Include -J$(WORKSPACE)/StdLib/Include/Arm -DNT32dvm\r
+  ARMGCC:*_*_*_CC_FLAGS      = -nostdinc -nostdlib -Wno-unknown-pragmas -Wno-unused -Wno-format-zero-length -DNT32dvm\r
 \r
 !else\r
   # The Build Options, below, are only used when building the Standard Libraries\r
    MSFT:*_*_IA32_CC_FLAGS     = /Od /D NT32dvm\r
     GCC:*_*_IA32_CC_FLAGS     = -O0 -DNT32dvm\r
 !endif\r
+\r
+\r