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