#ifndef __COMPLEX_H
 #define __COMPLEX_H __COMPLEX_H
 
+#include "personality.h"
+
 // ----------------------------------------------------------------------------
 // DEFINES
 
 
 #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 )
 
 #ifndef __ERRNO_H
 #define __ERRNO_H __ERRNO_H
 
+// TODO: Documentation
+
 // ----------------------------------------------------------------------------
 // DECLARATIONS
 
 
 #ifndef __FENV_H
 #define __FENV_H __FENV_H
 
+// TODO: Documentation, checking for personality
+
 // ----------------------------------------------------------------------------
 // MACROS
 
 
 #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
 
 #ifndef __INTTYPES_H
 #define __INTTYPES_H __INTTYPES_H
 
+// TODO: Documentation
+
 // ----------------------------------------------------------------------------
 // TYPEDEFS
 
 
 #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
 
 #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
 
 #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
 
 #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
 
 // ----------------------------------------------------------------------------
 // TYPEDEFS
 
-typedef do-type va_list;
+typedef do-type va_list; // TODO
 
 // ----------------------------------------------------------------------------
 // MACROS
 
 #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
 
 #ifndef __STDINT_H
 #define __STDINT_H __STDINT_H
 
+// This file is part of the platform personality (see personality.txt).
+
+// TODO: Documentation
+
 // ----------------------------------------------------------------------------
 // TYPEDEFS
 
 
 #ifndef __STDIO_H
 #define __STDIO_H __STDIO_H
 
+// TODO: Documentation, checking macros for personality
+
 // ----------------------------------------------------------------------------
 // MACROS
 
 // ----------------------------------------------------------------------------
 // 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
 
 #ifndef __STDLIB_H
 #define __STDLIB_H __STDLIB_H
 
+// TODO: Documentation, C++ handling
+
 // ----------------------------------------------------------------------------
 // MACROS
 
     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
 
 // ----------------------------------------------------------------------------
 __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
 
 #ifndef __STRING_H
 #define __STRING_H __STRING_H
 
+// TODO: Documentation, C++ handling
+
 // ----------------------------------------------------------------------------
 // MACROS
 
 // ----------------------------------------------------------------------------
 // TYPEDEFS
 
-typedef size_t;
+typedef size_t; // TODO - personality?
 
 // ----------------------------------------------------------------------------
 // FUNCTIONS
 
 #ifndef __TGMATH_H
 #define __TGMATH_H __TGMATH_H
 
+// TODO: Generics support, C++ handling
+
 #include <complex.h>
 #include <math.h>
 
 
 #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
 
 #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
 
 // ----------------------------------------------------------------------------
 
 #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