/programs/develop/libraries/newlib/include/machine/_default_types.h |
---|
0,0 → 1,121 |
/* |
* $Id: _default_types.h,v 1.2 2008/06/11 22:14:54 jjohnstn Exp $ |
*/ |
#ifndef _MACHINE__DEFAULT_TYPES_H |
#define _MACHINE__DEFAULT_TYPES_H |
#ifdef __cplusplus |
extern "C" { |
#endif |
/* |
* Guess on types by examining *_MIN / *_MAX defines. |
*/ |
#if defined(__GNUC__) && ((__GNUC__ >= 4) || (__GNUC__ >= 3 ) \ |
&& defined(__GNUC_MINOR__) && (__GNUC_MINOR__ > 2 )) |
/* GCC >= 3.3.0 has __<val>__ implicitly defined. */ |
#define __EXP(x) __##x##__ |
#else |
/* Fall back to POSIX versions from <limits.h> */ |
#define __EXP(x) x |
#include <limits.h> |
#endif |
#if __EXP(SCHAR_MAX) == 0x7f |
typedef signed char __int8_t ; |
typedef unsigned char __uint8_t ; |
#define ___int8_t_defined 1 |
#endif |
#if __EXP(INT_MAX) == 0x7fff |
typedef signed int __int16_t; |
typedef unsigned int __uint16_t; |
#define ___int16_t_defined 1 |
#elif __EXP(SHRT_MAX) == 0x7fff |
typedef signed short __int16_t; |
typedef unsigned short __uint16_t; |
#define ___int16_t_defined 1 |
#elif __EXP(SCHAR_MAX) == 0x7fff |
typedef signed char __int16_t; |
typedef unsigned char __uint16_t; |
#define ___int16_t_defined 1 |
#endif |
#if ___int16_t_defined |
typedef __int16_t __int_least16_t; |
typedef __uint16_t __uint_least16_t; |
#define ___int_least16_t_defined 1 |
#if !___int8_t_defined |
typedef __int16_t __int_least8_t; |
typedef __uint16_t __uint_least8_t; |
#define ___int_least8_t_defined 1 |
#endif |
#endif |
#if __EXP(INT_MAX) == 0x7fffffffL |
typedef signed int __int32_t; |
typedef unsigned int __uint32_t; |
#define ___int32_t_defined 1 |
#elif __EXP(LONG_MAX) == 0x7fffffffL |
typedef signed long __int32_t; |
typedef unsigned long __uint32_t; |
#define ___int32_t_defined 1 |
#elif __EXP(SHRT_MAX) == 0x7fffffffL |
typedef signed short __int32_t; |
typedef unsigned short __uint32_t; |
#define ___int32_t_defined 1 |
#elif __EXP(SCHAR_MAX) == 0x7fffffffL |
typedef signed char __int32_t; |
typedef unsigned char __uint32_t; |
#define ___int32_t_defined 1 |
#endif |
#if ___int32_t_defined |
typedef __int32_t __int_least32_t; |
typedef __uint32_t __uint_least32_t; |
#define ___int_least32_t_defined 1 |
#if !___int8_t_defined |
typedef __int32_t __int_least8_t; |
typedef __uint32_t __uint_least8_t; |
#define ___int_least8_t_defined 1 |
#endif |
#if !___int16_t_defined |
typedef __int32_t __int_least16_t; |
typedef __uint32_t __uint_least16_t; |
#define ___int_least16_t_defined 1 |
#endif |
#endif |
#if __EXP(LONG_MAX) > 0x7fffffff |
typedef signed long __int64_t; |
typedef unsigned long __uint64_t; |
#define ___int64_t_defined 1 |
/* GCC has __LONG_LONG_MAX__ */ |
#elif defined(__LONG_LONG_MAX__) && (__LONG_LONG_MAX__ > 0x7fffffff) |
typedef signed long long __int64_t; |
typedef unsigned long long __uint64_t; |
#define ___int64_t_defined 1 |
/* POSIX mandates LLONG_MAX in <limits.h> */ |
#elif defined(LLONG_MAX) && (LLONG_MAX > 0x7fffffff) |
typedef signed long long __int64_t; |
typedef unsigned long long __uint64_t; |
#define ___int64_t_defined 1 |
#elif __EXP(INT_MAX) > 0x7fffffff |
typedef signed int __int64_t; |
typedef unsigned int __uint64_t; |
#define ___int64_t_defined 1 |
#endif |
#undef __EXP |
#ifdef __cplusplus |
} |
#endif |
#endif /* _MACHINE__DEFAULT_TYPES_H */ |
/programs/develop/libraries/newlib/include/machine/_types.h |
---|
0,0 → 1,8 |
/* |
* $Id: _types.h,v 1.3 2007/09/07 21:16:25 jjohnstn Exp $ |
*/ |
#ifndef _MACHINE__TYPES_H |
#define _MACHINE__TYPES_H |
#include <machine/_default_types.h> |
#endif |
/programs/develop/libraries/newlib/include/machine/ansi.h |
---|
0,0 → 1,0 |
/* dummy header file to support BSD compiler */ |
/programs/develop/libraries/newlib/include/machine/endian.h |
---|
0,0 → 1,20 |
#ifndef __MACHINE_ENDIAN_H__ |
#include <sys/config.h> |
#ifndef BIG_ENDIAN |
#define BIG_ENDIAN 4321 |
#endif |
#ifndef LITTLE_ENDIAN |
#define LITTLE_ENDIAN 1234 |
#endif |
#ifndef BYTE_ORDER |
#if defined(__IEEE_LITTLE_ENDIAN) || defined(__IEEE_BYTES_LITTLE_ENDIAN) |
#define BYTE_ORDER LITTLE_ENDIAN |
#else |
#define BYTE_ORDER BIG_ENDIAN |
#endif |
#endif |
#endif /* __MACHINE_ENDIAN_H__ */ |
/programs/develop/libraries/newlib/include/machine/fastmath.h |
---|
0,0 → 1,100 |
#ifdef __sysvnecv70_target |
double EXFUN(fast_sin,(double)); |
double EXFUN(fast_cos,(double)); |
double EXFUN(fast_tan,(double)); |
double EXFUN(fast_asin,(double)); |
double EXFUN(fast_acos,(double)); |
double EXFUN(fast_atan,(double)); |
double EXFUN(fast_sinh,(double)); |
double EXFUN(fast_cosh,(double)); |
double EXFUN(fast_tanh,(double)); |
double EXFUN(fast_asinh,(double)); |
double EXFUN(fast_acosh,(double)); |
double EXFUN(fast_atanh,(double)); |
double EXFUN(fast_abs,(double)); |
double EXFUN(fast_sqrt,(double)); |
double EXFUN(fast_exp2,(double)); |
double EXFUN(fast_exp10,(double)); |
double EXFUN(fast_expe,(double)); |
double EXFUN(fast_log10,(double)); |
double EXFUN(fast_log2,(double)); |
double EXFUN(fast_loge,(double)); |
#define sin(x) fast_sin(x) |
#define cos(x) fast_cos(x) |
#define tan(x) fast_tan(x) |
#define asin(x) fast_asin(x) |
#define acos(x) fast_acos(x) |
#define atan(x) fast_atan(x) |
#define sinh(x) fast_sinh(x) |
#define cosh(x) fast_cosh(x) |
#define tanh(x) fast_tanh(x) |
#define asinh(x) fast_asinh(x) |
#define acosh(x) fast_acosh(x) |
#define atanh(x) fast_atanh(x) |
#define abs(x) fast_abs(x) |
#define sqrt(x) fast_sqrt(x) |
#define exp2(x) fast_exp2(x) |
#define exp10(x) fast_exp10(x) |
#define expe(x) fast_expe(x) |
#define log10(x) fast_log10(x) |
#define log2(x) fast_log2(x) |
#define loge(x) fast_loge(x) |
#ifdef _HAVE_STDC |
/* These functions are in assembler, they really do take floats. This |
can only be used with a real ANSI compiler */ |
float EXFUN(fast_sinf,(float)); |
float EXFUN(fast_cosf,(float)); |
float EXFUN(fast_tanf,(float)); |
float EXFUN(fast_asinf,(float)); |
float EXFUN(fast_acosf,(float)); |
float EXFUN(fast_atanf,(float)); |
float EXFUN(fast_sinhf,(float)); |
float EXFUN(fast_coshf,(float)); |
float EXFUN(fast_tanhf,(float)); |
float EXFUN(fast_asinhf,(float)); |
float EXFUN(fast_acoshf,(float)); |
float EXFUN(fast_atanhf,(float)); |
float EXFUN(fast_absf,(float)); |
float EXFUN(fast_sqrtf,(float)); |
float EXFUN(fast_exp2f,(float)); |
float EXFUN(fast_exp10f,(float)); |
float EXFUN(fast_expef,(float)); |
float EXFUN(fast_log10f,(float)); |
float EXFUN(fast_log2f,(float)); |
float EXFUN(fast_logef,(float)); |
#define sinf(x) fast_sinf(x) |
#define cosf(x) fast_cosf(x) |
#define tanf(x) fast_tanf(x) |
#define asinf(x) fast_asinf(x) |
#define acosf(x) fast_acosf(x) |
#define atanf(x) fast_atanf(x) |
#define sinhf(x) fast_sinhf(x) |
#define coshf(x) fast_coshf(x) |
#define tanhf(x) fast_tanhf(x) |
#define asinhf(x) fast_asinhf(x) |
#define acoshf(x) fast_acoshf(x) |
#define atanhf(x) fast_atanhf(x) |
#define absf(x) fast_absf(x) |
#define sqrtf(x) fast_sqrtf(x) |
#define exp2f(x) fast_exp2f(x) |
#define exp10f(x) fast_exp10f(x) |
#define expef(x) fast_expef(x) |
#define log10f(x) fast_log10f(x) |
#define log2f(x) fast_log2f(x) |
#define logef(x) fast_logef(x) |
#endif |
/* Override the functions defined in math.h */ |
#endif /* __sysvnecv70_target */ |
/programs/develop/libraries/newlib/include/machine/ieeefp.h |
---|
0,0 → 1,371 |
#ifndef __IEEE_BIG_ENDIAN |
#ifndef __IEEE_LITTLE_ENDIAN |
/* This file can define macros to choose variations of the IEEE float |
format: |
_FLT_LARGEST_EXPONENT_IS_NORMAL |
Defined if the float format uses the largest exponent for finite |
numbers rather than NaN and infinity representations. Such a |
format cannot represent NaNs or infinities at all, but it's FLT_MAX |
is twice the IEEE value. |
_FLT_NO_DENORMALS |
Defined if the float format does not support IEEE denormals. Every |
float with a zero exponent is taken to be a zero representation. |
??? At the moment, there are no equivalent macros above for doubles and |
the macros are not fully supported by --enable-newlib-hw-fp. |
__IEEE_BIG_ENDIAN |
Defined if the float format is big endian. This is mutually exclusive |
with __IEEE_LITTLE_ENDIAN. |
__IEEE_LITTLE_ENDIAN |
Defined if the float format is little endian. This is mutually exclusive |
with __IEEE_BIG_ENDIAN. |
Note that one of __IEEE_BIG_ENDIAN or __IEEE_LITTLE_ENDIAN must be specified for a |
platform or error will occur. |
__IEEE_BYTES_LITTLE_ENDIAN |
This flag is used in conjunction with __IEEE_BIG_ENDIAN to describe a situation |
whereby multiple words of an IEEE floating point are in big endian order, but the |
words themselves are little endian with respect to the bytes. |
_DOUBLE_IS_32BITS |
This is used on platforms that support double by using the 32-bit IEEE |
float type. |
_FLOAT_ARG |
This represents what type a float arg is passed as. It is used when the type is |
not promoted to double. |
*/ |
#if (defined(__arm__) || defined(__thumb__)) && !defined(__MAVERICK__) |
/* ARM traditionally used big-endian words; and within those words the |
byte ordering was big or little endian depending upon the target. |
Modern floating-point formats are naturally ordered; in this case |
__VFP_FP__ will be defined, even if soft-float. */ |
#ifdef __VFP_FP__ |
# ifdef __ARMEL__ |
# define __IEEE_LITTLE_ENDIAN |
# else |
# define __IEEE_BIG_ENDIAN |
# endif |
#else |
# define __IEEE_BIG_ENDIAN |
# ifdef __ARMEL__ |
# define __IEEE_BYTES_LITTLE_ENDIAN |
# endif |
#endif |
#endif |
#ifdef __hppa__ |
#define __IEEE_BIG_ENDIAN |
#endif |
#ifdef __SPU__ |
#define __IEEE_BIG_ENDIAN |
#define isfinite(__y) \ |
(__extension__ ({int __cy; \ |
(sizeof (__y) == sizeof (float)) ? (1) : \ |
(__cy = fpclassify(__y)) != FP_INFINITE && __cy != FP_NAN;})) |
#define isinf(__x) ((sizeof (__x) == sizeof (float)) ? (0) : __isinfd(__x)) |
#define isnan(__x) ((sizeof (__x) == sizeof (float)) ? (0) : __isnand(__x)) |
/* |
* Macros for use in ieeefp.h. We can't just define the real ones here |
* (like those above) as we have name space issues when this is *not* |
* included via generic the ieeefp.h. |
*/ |
#define __ieeefp_isnanf(x) 0 |
#define __ieeefp_isinff(x) 0 |
#define __ieeefp_finitef(x) 1 |
#endif |
#ifdef __sparc__ |
#ifdef __LITTLE_ENDIAN_DATA__ |
#define __IEEE_LITTLE_ENDIAN |
#else |
#define __IEEE_BIG_ENDIAN |
#endif |
#endif |
#if defined(__m68k__) || defined(__mc68000__) |
#define __IEEE_BIG_ENDIAN |
#endif |
#if defined(__mc68hc11__) || defined(__mc68hc12__) || defined(__mc68hc1x__) |
#define __IEEE_BIG_ENDIAN |
#ifdef __HAVE_SHORT_DOUBLE__ |
# define _DOUBLE_IS_32BITS |
#endif |
#endif |
#if defined (__H8300__) || defined (__H8300H__) || defined (__H8300S__) || defined (__H8500__) || defined (__H8300SX__) |
#define __IEEE_BIG_ENDIAN |
#define _FLOAT_ARG float |
#define _DOUBLE_IS_32BITS |
#endif |
#if defined (__xc16x__) || defined (__xc16xL__) || defined (__xc16xS__) |
#define __IEEE_LITTLE_ENDIAN |
#define _FLOAT_ARG float |
#define _DOUBLE_IS_32BITS |
#endif |
#ifdef __sh__ |
#ifdef __LITTLE_ENDIAN__ |
#define __IEEE_LITTLE_ENDIAN |
#else |
#define __IEEE_BIG_ENDIAN |
#endif |
#if defined(__SH2E__) || defined(__SH3E__) || defined(__SH4_SINGLE_ONLY__) || defined(__SH2A_SINGLE_ONLY__) |
#define _DOUBLE_IS_32BITS |
#endif |
#endif |
#ifdef _AM29K |
#define __IEEE_BIG_ENDIAN |
#endif |
#ifdef _WIN32 |
#define __IEEE_LITTLE_ENDIAN |
#endif |
#ifdef __i386__ |
#define __IEEE_LITTLE_ENDIAN |
#endif |
#ifdef __i960__ |
#define __IEEE_LITTLE_ENDIAN |
#endif |
#ifdef __lm32__ |
#define __IEEE_BIG_ENDIAN |
#endif |
#ifdef __M32R__ |
#define __IEEE_BIG_ENDIAN |
#endif |
#if defined(_C4x) || defined(_C3x) |
#define __IEEE_BIG_ENDIAN |
#define _DOUBLE_IS_32BITS |
#endif |
#ifdef __TMS320C6X__ |
#ifdef _BIG_ENDIAN |
#define __IEEE_BIG_ENDIAN |
#else |
#define __IEEE_LITTLE_ENDIAN |
#endif |
#endif |
#ifdef __TIC80__ |
#define __IEEE_LITTLE_ENDIAN |
#endif |
#ifdef __MIPSEL__ |
#define __IEEE_LITTLE_ENDIAN |
#endif |
#ifdef __MIPSEB__ |
#define __IEEE_BIG_ENDIAN |
#endif |
#ifdef __MMIX__ |
#define __IEEE_BIG_ENDIAN |
#endif |
#ifdef __D30V__ |
#define __IEEE_BIG_ENDIAN |
#endif |
/* necv70 was __IEEE_LITTLE_ENDIAN. */ |
#ifdef __W65__ |
#define __IEEE_LITTLE_ENDIAN |
#define _DOUBLE_IS_32BITS |
#endif |
#if defined(__Z8001__) || defined(__Z8002__) |
#define __IEEE_BIG_ENDIAN |
#endif |
#ifdef __m88k__ |
#define __IEEE_BIG_ENDIAN |
#endif |
#ifdef __mn10300__ |
#define __IEEE_LITTLE_ENDIAN |
#endif |
#ifdef __mn10200__ |
#define __IEEE_LITTLE_ENDIAN |
#define _DOUBLE_IS_32BITS |
#endif |
#ifdef __v800 |
#define __IEEE_LITTLE_ENDIAN |
#endif |
#ifdef __v850 |
#define __IEEE_LITTLE_ENDIAN |
#endif |
#ifdef __D10V__ |
#define __IEEE_BIG_ENDIAN |
#if __DOUBLE__ == 32 |
#define _DOUBLE_IS_32BITS |
#endif |
#endif |
#ifdef __PPC__ |
#if (defined(_BIG_ENDIAN) && _BIG_ENDIAN) || (defined(_AIX) && _AIX) |
#define __IEEE_BIG_ENDIAN |
#else |
#if (defined(_LITTLE_ENDIAN) && _LITTLE_ENDIAN) || (defined(__sun__) && __sun__) || (defined(_WIN32) && _WIN32) |
#define __IEEE_LITTLE_ENDIAN |
#endif |
#endif |
#endif |
#ifdef __xstormy16__ |
#define __IEEE_LITTLE_ENDIAN |
#endif |
#ifdef __arc__ |
#ifdef __big_endian__ |
#define __IEEE_BIG_ENDIAN |
#else |
#define __IEEE_LITTLE_ENDIAN |
#endif |
#endif |
#ifdef __CRX__ |
#define __IEEE_LITTLE_ENDIAN |
#endif |
#ifdef __fr30__ |
#define __IEEE_BIG_ENDIAN |
#endif |
#ifdef __mcore__ |
#define __IEEE_BIG_ENDIAN |
#endif |
#ifdef __mt__ |
#define __IEEE_BIG_ENDIAN |
#endif |
#ifdef __frv__ |
#define __IEEE_BIG_ENDIAN |
#endif |
#ifdef __moxie__ |
#define __IEEE_BIG_ENDIAN |
#endif |
#ifdef __ia64__ |
#ifdef __BIG_ENDIAN__ |
#define __IEEE_BIG_ENDIAN |
#else |
#define __IEEE_LITTLE_ENDIAN |
#endif |
#endif |
#ifdef __AVR__ |
#define __IEEE_LITTLE_ENDIAN |
#define _DOUBLE_IS_32BITS |
#endif |
#if defined(__or32__) || defined(__or1k__) || defined(__or16__) |
#define __IEEE_BIG_ENDIAN |
#endif |
#ifdef __IP2K__ |
#define __IEEE_BIG_ENDIAN |
#define __SMALL_BITFIELDS |
#define _DOUBLE_IS_32BITS |
#endif |
#ifdef __iq2000__ |
#define __IEEE_BIG_ENDIAN |
#endif |
#ifdef __MAVERICK__ |
#ifdef __ARMEL__ |
# define __IEEE_LITTLE_ENDIAN |
#else /* must be __ARMEB__ */ |
# define __IEEE_BIG_ENDIAN |
#endif /* __ARMEL__ */ |
#endif /* __MAVERICK__ */ |
#ifdef __m32c__ |
#define __IEEE_LITTLE_ENDIAN |
#define __SMALL_BITFIELDS |
#endif |
#ifdef __CRIS__ |
#define __IEEE_LITTLE_ENDIAN |
#endif |
#ifdef __BFIN__ |
#define __IEEE_LITTLE_ENDIAN |
#endif |
#ifdef __x86_64__ |
#define __IEEE_LITTLE_ENDIAN |
#endif |
#ifdef __mep__ |
#ifdef __LITTLE_ENDIAN__ |
#define __IEEE_LITTLE_ENDIAN |
#else |
#define __IEEE_BIG_ENDIAN |
#endif |
#endif |
#ifdef __MICROBLAZE__ |
#define __IEEE_BIG_ENDIAN |
#endif |
#ifdef __RX__ |
#ifdef __RX_BIG_ENDIAN__ |
#define __IEEE_BIG_ENDIAN |
#else |
#define __IEEE_LITTLE_ENDIAN |
#endif |
#ifndef __RX_64BIT_DOUBLES__ |
#define _DOUBLE_IS_32BITS |
#endif |
#ifdef __RX_16BIT_INTS__ |
#define __SMALL_BITFIELDS |
#endif |
#endif |
#ifndef __IEEE_BIG_ENDIAN |
#ifndef __IEEE_LITTLE_ENDIAN |
#error Endianess not declared!! |
#endif /* not __IEEE_LITTLE_ENDIAN */ |
#endif /* not __IEEE_BIG_ENDIAN */ |
#endif /* not __IEEE_LITTLE_ENDIAN */ |
#endif /* not __IEEE_BIG_ENDIAN */ |
/programs/develop/libraries/newlib/include/machine/malloc.h |
---|
0,0 → 1,8 |
#ifndef _MACHMALLOC_H_ |
#define _MACHMALLOC_H_ |
/* place holder so platforms may add malloc.h extensions */ |
#endif /* _MACHMALLOC_H_ */ |
/programs/develop/libraries/newlib/include/machine/param.h |
---|
0,0 → 1,0 |
/* Place holder for machine-specific param.h. */ |
/programs/develop/libraries/newlib/include/machine/setjmp-dj.h |
---|
0,0 → 1,43 |
/* |
* Copyright (C) 1991 DJ Delorie |
* All rights reserved. |
* |
* Redistribution and use in source and binary forms is permitted |
* provided that the above copyright notice and following paragraph are |
* duplicated in all such forms. |
* |
* This file is distributed WITHOUT ANY WARRANTY; without even the implied |
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
*/ |
/* Modified to use SETJMP_DJ_H rather than SETJMP_H to avoid |
conflicting with setjmp.h. Ian Taylor, Cygnus support, April, |
1993. */ |
#ifndef _SETJMP_DJ_H_ |
#define _SETJMP_DJ_H_ |
#ifdef __cplusplus |
extern "C" { |
#endif |
typedef struct { |
unsigned long eax; |
unsigned long ebx; |
unsigned long ecx; |
unsigned long edx; |
unsigned long esi; |
unsigned long edi; |
unsigned long ebp; |
unsigned long esp; |
unsigned long eip; |
} jmp_buf[1]; |
extern int setjmp(jmp_buf); |
extern void longjmp(jmp_buf, int); |
#ifdef __cplusplus |
} |
#endif |
#endif |
/programs/develop/libraries/newlib/include/machine/setjmp.h |
---|
0,0 → 1,349 |
_BEGIN_STD_C |
#if defined(__arm__) || defined(__thumb__) |
/* |
* All callee preserved registers: |
* v1 - v7, fp, ip, sp, lr, f4, f5, f6, f7 |
*/ |
#define _JBLEN 23 |
#endif |
#if defined(__AVR__) |
#define _JBLEN 24 |
#endif |
#ifdef __sparc__ |
/* |
* onsstack,sigmask,sp,pc,npc,psr,g1,o0,wbcnt (sigcontext). |
* All else recovered by under/over(flow) handling. |
*/ |
#define _JBLEN 13 |
#endif |
#ifdef __BFIN__ |
#define _JBLEN 40 |
#endif |
/* necv70 was 9 as well. */ |
#if defined(__m68k__) || defined(__mc68000__) |
/* |
* onsstack,sigmask,sp,pc,psl,d2-d7,a2-a6, |
* fp2-fp7 for 68881. |
* All else recovered by under/over(flow) handling. |
*/ |
#define _JBLEN 34 |
#endif |
#if defined(__mc68hc11__) || defined(__mc68hc12__) || defined(__mc68hc1x__) |
/* |
* D, X, Y are not saved. |
* Only take into account the pseudo soft registers (max 32). |
*/ |
#define _JBLEN 32 |
#endif |
#if defined(__Z8001__) || defined(__Z8002__) |
/* 16 regs + pc */ |
#define _JBLEN 20 |
#endif |
#ifdef _AM29K |
/* |
* onsstack,sigmask,sp,pc,npc,psr,g1,o0,wbcnt (sigcontext). |
* All else recovered by under/over(flow) handling. |
*/ |
#define _JBLEN 9 |
#endif |
#if defined(__CYGWIN__) && !defined (_JBLEN) |
#define _JBLEN (13 * 4) |
#elif defined (__i386__) |
#if defined(__unix__) || defined(__rtems__) |
# define _JBLEN 9 |
#else |
#include "setjmp-dj.h" |
#endif |
#endif |
#ifdef __x86_64__ |
#define _JBTYPE long long |
#define _JBLEN 8 |
#endif |
#ifdef __i960__ |
#define _JBLEN 35 |
#endif |
#ifdef __M32R__ |
/* Only 8 words are currently needed. 10 gives us some slop if we need |
to expand. */ |
#define _JBLEN 10 |
#endif |
#ifdef __mips__ |
#ifdef __mips64 |
#define _JBTYPE long long |
#endif |
#ifdef __mips_soft_float |
#define _JBLEN 11 |
#else |
#define _JBLEN 23 |
#endif |
#endif |
#ifdef __m88000__ |
#define _JBLEN 21 |
#endif |
#ifdef __H8300__ |
#define _JBLEN 5 |
#define _JBTYPE int |
#endif |
#ifdef __H8300H__ |
/* same as H8/300 but registers are twice as big */ |
#define _JBLEN 5 |
#define _JBTYPE long |
#endif |
#if defined (__H8300S__) || defined (__H8300SX__) |
/* same as H8/300 but registers are twice as big */ |
#define _JBLEN 5 |
#define _JBTYPE long |
#endif |
#ifdef __H8500__ |
#define _JBLEN 4 |
#endif |
#ifdef __sh__ |
#if __SH5__ |
#define _JBLEN 50 |
#define _JBTYPE long long |
#else |
#define _JBLEN 20 |
#endif /* __SH5__ */ |
#endif |
#ifdef __v800 |
#define _JBLEN 28 |
#endif |
#ifdef __PPC__ |
#ifdef __ALTIVEC__ |
#define _JBLEN 64 |
#else |
#define _JBLEN 32 |
#endif |
#define _JBTYPE double |
#endif |
#ifdef __MICROBLAZE__ |
#define _JBLEN 20 |
#define _JBTYPE unsigned int |
#endif |
#ifdef __hppa__ |
/* %r30, %r2-%r18, %r27, pad, %fr12-%fr15. |
Note space exists for the FP registers, but they are not |
saved. */ |
#define _JBLEN 28 |
#endif |
#if defined(__mn10300__) || defined(__mn10200__) |
#ifdef __AM33_2__ |
#define _JBLEN 26 |
#else |
/* A guess */ |
#define _JBLEN 10 |
#endif |
#endif |
#ifdef __v850 |
/* I think our setjmp is saving 15 regs at the moment. Gives us one word |
slop if we need to expand. */ |
#define _JBLEN 16 |
#endif |
#if defined(_C4x) |
#define _JBLEN 10 |
#endif |
#if defined(_C3x) |
#define _JBLEN 9 |
#endif |
#ifdef __TMS320C6X__ |
#define _JBLEN 13 |
#endif |
#ifdef __TIC80__ |
#define _JBLEN 13 |
#endif |
#ifdef __D10V__ |
#define _JBLEN 8 |
#endif |
#ifdef __D30V__ |
#define _JBLEN ((64 /* GPR */ + (2*2) /* ACs */ + 18 /* CRs */) / 2) |
#define _JBTYPE double |
#endif |
#ifdef __frv__ |
#define _JBLEN (68/2) /* room for 68 32-bit regs */ |
#define _JBTYPE double |
#endif |
#ifdef __moxie__ |
#define _JBLEN 16 |
#endif |
#ifdef __CRX__ |
#define _JBLEN 9 |
#endif |
#ifdef __fr30__ |
#define _JBLEN 10 |
#endif |
#ifdef __iq2000__ |
#define _JBLEN 32 |
#endif |
#ifdef __mcore__ |
#define _JBLEN 16 |
#endif |
#ifdef __MMIX__ |
/* Using a layout compatible with GCC's built-in. */ |
#define _JBLEN 5 |
#define _JBTYPE unsigned long |
#endif |
#ifdef __mt__ |
#define _JBLEN 16 |
#endif |
#ifdef __SPU__ |
#define _JBLEN 50 |
#define _JBTYPE __vector signed int |
#endif |
#ifdef __xstormy16__ |
/* 4 GPRs plus SP plus PC. */ |
#define _JBLEN 8 |
#endif |
#ifdef __mep__ |
/* 16 GPRs, pc, hi, lo */ |
#define _JBLEN 19 |
#endif |
#ifdef __CRIS__ |
#define _JBLEN 18 |
#endif |
#ifdef __lm32__ |
#define _JBLEN 19 |
#endif |
#ifdef __m32c__ |
#if defined(__r8c_cpu__) || defined(__m16c_cpu__) |
#define _JBLEN (22/2) |
#else |
#define _JBLEN (34/2) |
#endif |
#define _JBTYPE unsigned short |
#endif /* __m32c__ */ |
#ifdef __RX__ |
#define _JBLEN 0x44 |
#endif |
#ifdef _JBLEN |
#ifdef _JBTYPE |
typedef _JBTYPE jmp_buf[_JBLEN]; |
#else |
typedef int jmp_buf[_JBLEN]; |
#endif |
#endif |
_END_STD_C |
#if defined(__CYGWIN__) || defined(__rtems__) |
#include <signal.h> |
#ifdef __cplusplus |
extern "C" { |
#endif |
/* POSIX sigsetjmp/siglongjmp macros */ |
#ifdef _JBTYPE |
typedef _JBTYPE sigjmp_buf[_JBLEN+1+(sizeof (sigset_t)/sizeof (_JBTYPE))]; |
#else |
typedef int sigjmp_buf[_JBLEN+1+(sizeof (sigset_t)/sizeof (int))]; |
#endif |
#define _SAVEMASK _JBLEN |
#define _SIGMASK (_JBLEN+1) |
#ifdef __CYGWIN__ |
# define _CYGWIN_WORKING_SIGSETJMP |
#endif |
#ifdef _POSIX_THREADS |
#define __SIGMASK_FUNC pthread_sigmask |
#else |
#define __SIGMASK_FUNC sigprocmask |
#endif |
#if defined(__GNUC__) |
#define sigsetjmp(env, savemask) \ |
__extension__ \ |
({ \ |
sigjmp_buf *_sjbuf = &(env); \ |
((*_sjbuf)[_SAVEMASK] = savemask,\ |
__SIGMASK_FUNC (SIG_SETMASK, 0, (sigset_t *)((*_sjbuf) + _SIGMASK)),\ |
setjmp (*_sjbuf)); \ |
}) |
#define siglongjmp(env, val) \ |
__extension__ \ |
({ \ |
sigjmp_buf *_sjbuf = &(env); \ |
((((*_sjbuf)[_SAVEMASK]) ? \ |
__SIGMASK_FUNC (SIG_SETMASK, (sigset_t *)((*_sjbuf) + _SIGMASK), 0)\ |
: 0), \ |
longjmp (*_sjbuf, val)); \ |
}) |
#else /* !__GNUC__ */ |
#define sigsetjmp(env, savemask) ((env)[_SAVEMASK] = savemask,\ |
__SIGMASK_FUNC (SIG_SETMASK, 0, (sigset_t *) ((env) + _SIGMASK)),\ |
setjmp (env)) |
#define siglongjmp(env, val) ((((env)[_SAVEMASK])?\ |
__SIGMASK_FUNC (SIG_SETMASK, (sigset_t *) ((env) + _SIGMASK), 0):0),\ |
longjmp (env, val)) |
#endif |
/* POSIX _setjmp/_longjmp, maintained for XSI compatibility. These |
are equivalent to sigsetjmp/siglongjmp when not saving the signal mask. |
New applications should use sigsetjmp/siglongjmp instead. */ |
#ifdef __CYGWIN__ |
extern void _longjmp(jmp_buf, int); |
extern int _setjmp(jmp_buf); |
#else |
#define _setjmp(env) sigsetjmp ((env), 0) |
#define _longjmp(env, val) siglongjmp ((env), (val)) |
#endif |
#ifdef __cplusplus |
} |
#endif |
#endif /* __CYGWIN__ or __rtems__ */ |
/programs/develop/libraries/newlib/include/machine/stdlib.h |
---|
0,0 → 1,8 |
#ifndef _MACHSTDLIB_H_ |
#define _MACHSTDLIB_H_ |
/* place holder so platforms may add stdlib.h extensions */ |
#endif /* _MACHSTDLIB_H_ */ |
/programs/develop/libraries/newlib/include/machine/termios.h |
---|
0,0 → 1,0 |
#define __MAX_BAUD B4000000 |
/programs/develop/libraries/newlib/include/machine/time.h |
---|
0,0 → 1,19 |
#ifndef _MACHTIME_H_ |
#define _MACHTIME_H_ |
#if defined(__rtems__) |
#define _CLOCKS_PER_SEC_ sysconf(_SC_CLK_TCK) |
#else /* !__rtems__ */ |
#if defined(__arm__) || defined(__thumb__) |
#define _CLOCKS_PER_SEC_ 100 |
#endif |
#endif /* !__rtems__ */ |
#ifdef __SPU__ |
#include <sys/types.h> |
int nanosleep (const struct timespec *, struct timespec *); |
#endif |
#endif /* _MACHTIME_H_ */ |
/programs/develop/libraries/newlib/include/machine/types.h |
---|
0,0 → 1,30 |
#ifndef _MACHTYPES_H_ |
#define _MACHTYPES_H_ |
/* |
* The following section is RTEMS specific and is needed to more |
* closely match the types defined in the BSD machine/types.h. |
* This is needed to let the RTEMS/BSD TCP/IP stack compile. |
*/ |
#if defined(__rtems__) |
#include <machine/_types.h> |
#endif |
#define _CLOCK_T_ unsigned long /* clock() */ |
#define _TIME_T_ long /* time() */ |
#define _CLOCKID_T_ unsigned long |
#define _TIMER_T_ unsigned long |
#ifndef _HAVE_SYSTYPES |
typedef long int __off_t; |
typedef int __pid_t; |
#ifdef __GNUC__ |
__extension__ typedef long long int __loff_t; |
#else |
typedef long int __loff_t; |
#endif |
#endif |
#endif /* _MACHTYPES_H_ */ |
/programs/develop/libraries/newlib/include/machine/. |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |