Nico Huber | 0a31d5e | 2021-06-16 17:54:50 +0000 | [diff] [blame] | 1 | #ifndef _STDDEF_H |
| 2 | #define _STDDEF_H |
Stefan Reinauer | 6ceed09 | 2013-04-08 16:55:47 -0700 | [diff] [blame] | 3 | |
| 4 | #include <arch/types.h> |
Thomas Heijligen | 3f9613b | 2022-11-28 11:46:48 +0100 | [diff] [blame] | 5 | |
| 6 | #if !defined(offsetof) |
| 7 | #define offsetof(type, member) __builtin_offsetof(type, member) |
| 8 | #endif |
Stefan Reinauer | 6ceed09 | 2013-04-08 16:55:47 -0700 | [diff] [blame] | 9 | |
Nico Huber | 2eae410 | 2021-06-16 17:46:17 +0000 | [diff] [blame] | 10 | #ifndef __WCHAR_TYPE__ |
| 11 | #define __WCHAR_TYPE__ int |
| 12 | #endif |
| 13 | #ifndef __cplusplus |
| 14 | typedef __WCHAR_TYPE__ wchar_t; |
| 15 | #endif |
| 16 | |
Stefan Reinauer | 6ceed09 | 2013-04-08 16:55:47 -0700 | [diff] [blame] | 17 | #ifndef __SIZE_TYPE__ |
| 18 | #define __SIZE_TYPE__ unsigned long |
| 19 | #endif |
| 20 | typedef __SIZE_TYPE__ size_t; |
Stefan Reinauer | f8b3650 | 2013-05-02 14:02:28 -0700 | [diff] [blame] | 21 | /* There is a GCC macro for a size_t type, but not |
| 22 | * for a ssize_t type. Below construct tricks GCC |
| 23 | * into making __SIZE_TYPE__ signed. |
| 24 | */ |
| 25 | #define unsigned signed |
| 26 | typedef __SIZE_TYPE__ ssize_t; |
| 27 | #undef unsigned |
Stefan Reinauer | 6ceed09 | 2013-04-08 16:55:47 -0700 | [diff] [blame] | 28 | |
Nico Huber | 0a31d5e | 2021-06-16 17:54:50 +0000 | [diff] [blame] | 29 | #endif |