| #ifndef _TYPES_H_ |
| #define _TYPES_H_ |
| |
| #include <stdbool.h> |
| |
| #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) |
| |
| typedef unsigned char u8; |
| typedef unsigned short u16; |
| typedef unsigned int u32; |
| typedef unsigned long long u64; |
| typedef signed char s8; |
| typedef short s16; |
| typedef int s32; |
| typedef long long s64; |
| |
| /* required for opal-api.h */ |
| typedef u8 uint8_t; |
| typedef u16 uint16_t; |
| typedef u32 uint32_t; |
| typedef u64 uint64_t; |
| typedef s8 int8_t; |
| typedef s16 int16_t; |
| typedef s32 int32_t; |
| typedef s64 int64_t; |
| |
| #define min(x,y) ({ \ |
| typeof(x) _x = (x); \ |
| typeof(y) _y = (y); \ |
| (void) (&_x == &_y); \ |
| _x < _y ? _x : _y; }) |
| |
| #define max(x,y) ({ \ |
| typeof(x) _x = (x); \ |
| typeof(y) _y = (y); \ |
| (void) (&_x == &_y); \ |
| _x > _y ? _x : _y; }) |
| |
| #define min_t(type, a, b) min(((type) a), ((type) b)) |
| #define max_t(type, a, b) max(((type) a), ((type) b)) |
| |
| typedef int bool; |
| |
| #ifndef true |
| #define true 1 |
| #endif |
| |
| #ifndef false |
| #define false 0 |
| #endif |
| #endif /* _TYPES_H_ */ |