| #ifndef _STDDEF_H |
| #define _STDDEF_H |
| |
| #include <arch/types.h> |
| |
| #if !defined(offsetof) |
| #define offsetof(type, member) __builtin_offsetof(type, member) |
| #endif |
| |
| #ifndef __WCHAR_TYPE__ |
| #define __WCHAR_TYPE__ int |
| #endif |
| #ifndef __cplusplus |
| typedef __WCHAR_TYPE__ wchar_t; |
| #endif |
| |
| #ifndef __SIZE_TYPE__ |
| #define __SIZE_TYPE__ unsigned long |
| #endif |
| typedef __SIZE_TYPE__ size_t; |
| /* There is a GCC macro for a size_t type, but not |
| * for a ssize_t type. Below construct tricks GCC |
| * into making __SIZE_TYPE__ signed. |
| */ |
| #define unsigned signed |
| typedef __SIZE_TYPE__ ssize_t; |
| #undef unsigned |
| |
| #endif |