1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef _TYPES_H_ 3 #define _TYPES_H_ 4 5 #include <stdbool.h> 6 7 #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) 8 9 typedef unsigned char u8; 10 typedef unsigned short u16; 11 typedef unsigned int u32; 12 typedef unsigned long long u64; 13 typedef signed char s8; 14 typedef short s16; 15 typedef int s32; 16 typedef long long s64; 17 18 /* required for opal-api.h */ 19 typedef u8 uint8_t; 20 typedef u16 uint16_t; 21 typedef u32 uint32_t; 22 typedef u64 uint64_t; 23 typedef s8 int8_t; 24 typedef s16 int16_t; 25 typedef s32 int32_t; 26 typedef s64 int64_t; 27 28 #define min(x,y) ({ \ 29 typeof(x) _x = (x); \ 30 typeof(y) _y = (y); \ 31 (void) (&_x == &_y); \ 32 _x < _y ? _x : _y; }) 33 34 #define max(x,y) ({ \ 35 typeof(x) _x = (x); \ 36 typeof(y) _y = (y); \ 37 (void) (&_x == &_y); \ 38 _x > _y ? _x : _y; }) 39 40 #define min_t(type, a, b) min(((type) a), ((type) b)) 41 #define max_t(type, a, b) max(((type) a), ((type) b)) 42 43 typedef int bool; 44 45 #ifndef true 46 #define true 1 47 #endif 48 49 #ifndef false 50 #define false 0 51 #endif 52 #endif /* _TYPES_H_ */ 53