]> pd.if.org Git - pdclib/commitdiff
Started introducting "personality".
authorsolar <unknown>
Wed, 3 Dec 2003 04:44:55 +0000 (04:44 +0000)
committersolar <unknown>
Wed, 3 Dec 2003 04:44:55 +0000 (04:44 +0000)
19 files changed:
includes/complex.h
includes/errno.h
includes/fenv.h
includes/float.h
includes/inttypes.h
includes/limits.h
includes/math.h
includes/setjmp.h
includes/signal.h
includes/stdarg.h
includes/stddef.h
includes/stdint.h
includes/stdio.h
includes/stdlib.h
includes/string.h
includes/tgmath.h
includes/time.h
includes/wchar.h
includes/wctype.h

index d4cc9ea990bd7ba5b34a23ddda34db0c06f1fc98..6e7ac5ed5ec7867db01f6d156a5a9a52b7e3250b 100644 (file)
@@ -10,6 +10,8 @@
 #ifndef __COMPLEX_H
 #define __COMPLEX_H __COMPLEX_H
 
+#include "personality.h"
+
 // ----------------------------------------------------------------------------
 // DEFINES
 
@@ -19,8 +21,9 @@
 
 #define _Complex_I  ( const float _Complex ) { 0, 1 }
 
-// TODO: imaginary is only defined if implementation supports _Imaginary.
+#ifdef __PERSONALITY_SUPPORTS_IMAGINARY
 #define imaginary   _Imaginary
+#endif // __PERSONALITY_SUPPORTS_IMAGINARY
 
 #ifdef imaginary
 #define _Imaginary_I ( ( const float _Imaginary ) 1 )
index 0569284da550613d2501614a804705919c517bf1..e85d3024b670f3dd31f750c1d08e23b0228a3e72 100644 (file)
@@ -10,6 +10,8 @@
 #ifndef __ERRNO_H
 #define __ERRNO_H __ERRNO_H
 
+// TODO: Documentation
+
 // ----------------------------------------------------------------------------
 // DECLARATIONS
 
index 33e8beaeba9a724d332655261238eacd79f3bb37..b6c11a06b91c8e938e2f758d454c6fbf51b85932 100644 (file)
@@ -10,6 +10,8 @@
 #ifndef __FENV_H
 #define __FENV_H __FENV_H
 
+// TODO: Documentation, checking for personality
+
 // ----------------------------------------------------------------------------
 // MACROS
 
index a23f32486394733969afbb3c675769e926379c19..2a5a836a9275807a43ad9308cc8a5b2f334f1db4 100644 (file)
@@ -10,6 +10,8 @@
 #ifndef __FLOAT_H
 #define __FLOAT_H __FLOAT_H
 
+// This file is part of the platform personality (see personality.txt).
+
 #define FLT_RADIX       // TODO
 #define FLT_ROUNDS      // TODO
 #define FLT_EVAL_METHOD // TODO
index 4f9f9ce69940c9d138229ab294ba544b096d897c..2b4eafef71c26772bbbe45231b17c421c5729235 100644 (file)
@@ -10,6 +10,8 @@
 #ifndef __INTTYPES_H
 #define __INTTYPES_H __INTTYPES_H
 
+// TODO: Documentation
+
 // ----------------------------------------------------------------------------
 // TYPEDEFS
 
index 302eb3af2663f0d9a8bd7bf36c76d73abf689dce..7d14a9330007371d87b118ae0695f3a7abe0242e 100644 (file)
 #ifndef __LIMITS_H
 #define __LIMITS_H __LIMITS_H
 
+// ISO/IEC 9899:1999, ยง5.2.4.2.1
+// The values given below shall be replaced by constant expressions suitable
+// for use in #if preprocessing directives. Moreover, except for CHAR_BIT and
+// MB_LEN_MAX, the following shall be replaced by expressions that have the
+// same type as would an expression that is an object of the corresponding type
+// converted according to the integer promotions. Their implementation-defined
+// values shall be equal or greater in magnitude (absolute value) to those
+// shown, with the same sign.
+
+// This file is part of the platform personality (see personality.txt).
+
 // Limits of type 'char'
-#define CHAR_BIT   // TODO
-#define CHAR_MAX   // TODO
-#define CHAR_MIN   // TODO
-#define SCHAR_MAX  // TODO
-#define SCHAR_MIN  // TODO
-#define UCHAR_MAX  // TODO
+#define CHAR_BIT   //    8
+#define CHAR_MAX   // SCHAR_MAX / UCHAR_MAX
+#define CHAR_MIN   // SCHAR_MIN / 0
+#define SCHAR_MAX  // +127
+#define SCHAR_MIN  // -127
+#define UCHAR_MAX  //  255 (2^CHAR_BIT - 1)
 
 // Multibyte characters
-#define MB_LEN_MAX // TODO
+#define MB_LEN_MAX //    1
 
 // Limits of type 'short int'
-#define SHRT_MAX   // TODO
-#define SHRT_MIN   // TODO
-#define USHRT_MAX  // TODO
+#define SHRT_MAX   // +32767
+#define SHRT_MIN   // -32767
+#define USHRT_MAX  //  65535
 
 // Limits of type 'int'
-#define INT_MAX    // TODO
-#define INT_MIN    // TODO
-#define UINT_MAX   // TODO
+#define INT_MAX    // +32767
+#define INT_MIN    // -32767
+#define UINT_MAX   //  65535
 
 // Limits of type 'long int'
-#define LONG_MAX   // TODO
-#define LONG_MIN   // TODO
-#define ULONG_MAX  // TODO
+#define LONG_MAX   // +2147483647
+#define LONG_MIN   // -2147483647
+#define ULONG_MAX  //  4294967295
 
 // Limits of type 'long long int'
-#define LLONG_MAX  // TODO
-#define LLONG_MIN  // TODO
-#define ULLONG_MAX // TODO
+#define LLONG_MAX  // +9223372036854775807
+#define LLONG_MIN  // -9223372036854775807
+#define ULLONG_MAX // 18446744073709551615
 
 #endif // __LIMITS_H
index a3252b2ccb4c40d7eaf07b284dad9a8f37123fac..ee4dff7ef0fbe668c7023079e32a56a100b8e4c3 100644 (file)
 #ifndef __MATH_H
 #define __MATH_H __MATH_H
 
+// TODO: Documentation
+
 // ----------------------------------------------------------------------------
 // DEFINES
 
-#define HUGE_VAL  // TODO
-#define HUGE_VALF // TODO
-#define HUGE_VALL // TODO
+#define HUGE_VAL  // TODO - personality?
+#define HUGE_VALF // TODO - personality?
+#define HUGE_VALL // TODO - personality?
 
-#define INFINITY // TODO
-#define NAN      // TODO
+#define INFINITY // TODO - personality?
+#define NAN      // TODO - personality?
 
-#define FP_FAST_FMA  // TODO
-#define FP_FAST_FMAF // TODO
-#define FP_FAST_FMAL // TODO
+#define FP_FAST_FMA  // TODO - personality?
+#define FP_FAST_FMAF // TODO - personality?
+#define FP_FAST_FMAL // TODO - personality?
 
-#define FP_INFINITE  // TODO
-#define FP_NAN       // TODO
-#define FP_NORMAL    // TODO
-#define FP_SUBNORMAL // TODO
-#define FP_ZERO      // TODO
+#define FP_INFINITE  // TODO - personality?
+#define FP_NAN       // TODO - personality?
+#define FP_NORMAL    // TODO - personality?
+#define FP_SUBNORMAL // TODO - personality?
+#define FP_ZERO      // TODO - personality?
 
-#define FP_ILOGB0   // TODO
-#define FP_ILOGBNAN // TODO
+#define FP_ILOGB0   // TODO - personality?
+#define FP_ILOGBNAN // TODO - personality?
 
-#define MATH_ERRNO       1
-#define MATH_ERREXCEPT   2
-#define math_errhandling // TODO
+#define MATH_ERRNO       1 // personality?
+#define MATH_ERREXCEPT   2 // personality?
+#define math_errhandling // TODO - personality?
 
 // --------------------------------------------------------------------------
 // TYPEDEFS
 
-typedef double_t; // TODO
-typedef float_t;  // TODO
+typedef double_t; // TODO - personality?
+typedef float_t;  // TODO - personality?
 
 // --------------------------------------------------------------------------
 // MACROS
index dda36ea156ce6cee62b35f6a0f634825400c3e58..cb938a96d3f6e09993062af0796a3197a978fa9c 100644 (file)
 #ifndef __SETJMP_H
 #define __SETJMP_H __SETJMP_H
 
+// TODO: Documentation
+
 // ----------------------------------------------------------------------------
 // TYPEDEFS
 
-struct jmp_buf[1];
+struct jmp_buf[1]; // TODO
 
 // ----------------------------------------------------------------------------
 // FUNCTIONS
 
-// TODO
-int setjmp(jmp_buf env);
-
-// TODO
-void longjmp(jmp_buf env, int val);
+int setjmp( jmp_buf env );
+void longjmp( jmp_buf env, int val );
 
 #endif // __SETJMP_H
index bfc9888276e14d2426d810049e5dab110de38cc2..3f516852b67364a5e0bdd71fb08ec3a80b3be40a 100644 (file)
 #ifndef __SIGNAL_H
 #define __SIGNAL_H __SIGNAL_H
 
+// TODO: Documentation
+
 // ----------------------------------------------------------------------------
 // MACROS
 
-#define SIGABRT // TODO
-#define SIGFPE  // TODO
-#define SIGILL  // TODO
-#define SIGINT  // TODO
-#define SIGSEGV // TODO
-#define SIGTERM // TODO
-#define SIG_DFL // TODO
-#define SIG_ERR // TODO
-#define SIG_IGN // TODO
+#define SIGABRT // TODO - personality?
+#define SIGFPE  // TODO - personality?
+#define SIGILL  // TODO - personality?
+#define SIGINT  // TODO - personality?
+#define SIGSEGV // TODO - personality?
+#define SIGTERM // TODO - personality?
+#define SIG_DFL // TODO - personality?
+#define SIG_ERR // TODO - personality?
+#define SIG_IGN // TODO - personality?
 
 // ----------------------------------------------------------------------------
 // TYPEDEFS
 
-typedef sig_atomic_t; // TODO
+typedef sig_atomic_t; // TODO - personality?
 
 // ----------------------------------------------------------------------------
 // FUNCTIONS
index 4c40142d1f05ec7f7a59dbd97197213c5375ee06..5d2270535968835b6d685a56cde6011d40adce93 100644 (file)
@@ -13,7 +13,7 @@
 // ----------------------------------------------------------------------------
 // TYPEDEFS
 
-typedef do-type va_list;
+typedef do-type va_list; // TODO
 
 // ----------------------------------------------------------------------------
 // MACROS
index 32bfb329bec664f3633838455d1f3d1e8a4edb24..1c138c7b91324e75b5657d14369a05ae9f3154ac 100644 (file)
 #ifndef __STDDEF_H
 #define __STDDEF_H __STDDEF_H
 
+// TODO: Documentation
+
 // ----------------------------------------------------------------------------
 // MACROS
 
 #define NULL  0
-#define offsetof( s-type, mbr ) // TODO
+#define offsetof( s-type, mbr ) // TODO - personality?
 
 // ----------------------------------------------------------------------------
 // TYPEDEFS
 
-typedef ptrdiff_t; // TODO
-typedef size_t;    // TODO
+typedef ptrdiff_t; // TODO - personality?
+typedef size_t;    // TODO - personality?
 
 #ifndef __cplusplus
-typedef wchar_t;
+typedef wchar_t;   // TODO - personality?
 #endif // __cplusplus
 
 #endif // __STDDEF_H
index ef21b9cdda92feb4084224a111efc3b71a672eed..4b2a7577de1ec3e071ae49e23eb307cd9fa1409e 100644 (file)
 #ifndef __STDINT_H
 #define __STDINT_H __STDINT_H
 
+// This file is part of the platform personality (see personality.txt).
+
+// TODO: Documentation
+
 // ----------------------------------------------------------------------------
 // TYPEDEFS
 
index 5469de06ff93d4358a1b4794c752134555270bac..a4049ebaafdcd498b6669c36d2d44edcfa23d186 100644 (file)
@@ -10,6 +10,8 @@
 #ifndef __STDIO_H
 #define __STDIO_H __STDIO_H
 
+// TODO: Documentation, checking macros for personality
+
 // ----------------------------------------------------------------------------
 // MACROS
 
@@ -34,9 +36,9 @@
 // ----------------------------------------------------------------------------
 // TYPEDEFS
 
-typedef FILE;   // TODO
-typedef fpos_t; // TODO
-typedef size_t; // TODO
+typedef FILE;   // TODO - personality?
+typedef fpos_t; // TODO - personality?
+typedef size_t; // TODO - personality?
 
 // ----------------------------------------------------------------------------
 // FUNCTIONS
index c0efa68273dff2c5228ec7c517dfb06494ceacb4..610f71c4ca40b6aabc7d7a1e44d824872ac3e236 100644 (file)
@@ -10,6 +10,8 @@
 #ifndef __STDLIB_H
 #define __STDLIB_H __STDLIB_H
 
+// TODO: Documentation, C++ handling
+
 // ----------------------------------------------------------------------------
 // MACROS
 
@@ -39,10 +41,10 @@ typedef struct
     long long remainder;
 } lldiv_t;
 
-typedef size_t; // TODO
+typedef size_t; // TODO - personality?
 
 #ifndef __cplusplus
-typedef wchar_t; // TODO
+typedef wchar_t; // TODO - personality?
 #endif // __cplusplus
 
 // ----------------------------------------------------------------------------
@@ -115,4 +117,6 @@ __cppwrapper( int atexit( void (*func) ( void ) ) { /* TODO */ }; )
 __cppwrapper( void * bsearch( const void * key, const void * base, size_t nelem, size_t size, int (*cmp) ( const void * ck, const void * ce) ) { /* TODO */ }; )
 __cppwrapper( void qsort( void * base, size_t nelem, size_t size, int (*cmp) ( const void * e1, const void * e2) ) { /* TODO */ }; )
 
+#undef __cppwrapper
+
 #endif // __STDLIB_H
index 2fa5284dd3a4029020cb8e5896206028e83fc680..c6ebcd37733bdf22b13401153cb89900e616b4ab 100644 (file)
@@ -10,6 +10,8 @@
 #ifndef __STRING_H
 #define __STRING_H __STRING_H
 
+// TODO: Documentation, C++ handling
+
 // ----------------------------------------------------------------------------
 // MACROS
 
@@ -18,7 +20,7 @@
 // ----------------------------------------------------------------------------
 // TYPEDEFS
 
-typedef size_t;
+typedef size_t; // TODO - personality?
 
 // ----------------------------------------------------------------------------
 // FUNCTIONS
index 503107df91ee8cb752e9a3c050ffcfef18cf4849..dc3125df065b57a5bdad9f1b7a91e1773e545319 100644 (file)
@@ -10,6 +10,8 @@
 #ifndef __TGMATH_H
 #define __TGMATH_H __TGMATH_H
 
+// TODO: Generics support, C++ handling
+
 #include <complex.h>
 #include <math.h>
 
index db2eb7c7237a9b91bb55135f73177c36570445c1..bc5742c8a5ced53370e20d76829b7e8c785e8904 100644 (file)
 #ifndef __TIME_H
 #define __TIME_H __TIME_H
 
+// TODO: Documentation.
+
 // ----------------------------------------------------------------------------
 // MACROS
 
-#define CLOCKS_PER_SEC // TODO
+#define CLOCKS_PER_SEC // TODO - personality?
 #define NULL           0
 
 // ----------------------------------------------------------------------------
 // TYPES
 
-typedef clock_t;
-typedef size_t;
-typedef time_t;
-struct tm;
+typedef clock_t; // TODO - personality?
+typedef size_t;  // TODO - personality?
+typedef time_t;  // TODO - personality?
+struct tm;       // TODO - personality?
 
 // ----------------------------------------------------------------------------
 // FUNCTIONS
index 4ac64c5e269c30716caa1360ac803d6c36132fd5..300b0f04c1ed88bcb524e41e3b008822be129ed2 100644 (file)
 #ifndef __WCHAR_H
 #define __WCHAR_H __WCHAR_H
 
+// TODO: Documentation, C++ handling
+
 // ----------------------------------------------------------------------------
 // MACROS
 
 #define NULL       0
-#define WCHAR_MAX  // TODO
-#define WCHAR_MIN  // TODO
-#define WEOF       // TODO
+#define WCHAR_MAX  // TODO - personality?
+#define WCHAR_MIN  // TODO - personality?
+#define WEOF       // TODO - personality?
 
 // ----------------------------------------------------------------------------
 // TYPEDEFS
 
-typedef mbstate_t;
-typedef size_t;
-typedef wint_t;
-struct tm;
+typedef mbstate_t; // TODO - personality?
+typedef size_t;    // TODO - personality?
+typedef wint_t;    // TODO - personality?
+struct tm;         // TODO - personality?
 
 #ifndef __cplusplus
-typedef wchar_t;
+typedef wchar_t;   // TODO - personality?
 #endif // __cplusplus
 
 // ----------------------------------------------------------------------------
index 32485b9a4d15f06a50e798818574ecb19a78c722..1c50bfc2810ec21c6e6f94b659456bf0e4ff8936 100644 (file)
 #ifndef __WCTYPE_H
 #define __WCTYPE_H __WCTYPE_H
 
+// TODO: Documentation
+
 // ----------------------------------------------------------------------------
 // TYPEDEFS
 
-typedef wctrans_t;
-typedef wctype_t;
-typedef wint_t;
+typedef wctrans_t; // TODO - personality?
+typedef wctype_t;  // TODO - personality?
+typedef wint_t;    // TODO - personality?
 
 // ----------------------------------------------------------------------------
 // FUNCTIONS