1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _LINUX_LIMITS_H
3#define _LINUX_LIMITS_H
4
5#include <uapi/linux/limits.h>
6#include <linux/types.h>
7
8#define USHRT_MAX ((unsigned short)~0U)
9#define SHRT_MAX ((short)(USHRT_MAX >> 1))
10#define SHRT_MIN ((short)(-SHRT_MAX - 1))
11#define INT_MAX ((int)(~0U >> 1))
12#define INT_MIN (-INT_MAX - 1)
13#define UINT_MAX (~0U)
14#define LONG_MAX ((long)(~0UL >> 1))
15#define LONG_MIN (-LONG_MAX - 1)
16#define ULONG_MAX (~0UL)
17#define LLONG_MAX ((long long)(~0ULL >> 1))
18#define LLONG_MIN (-LLONG_MAX - 1)
19#define ULLONG_MAX (~0ULL)
20#define SIZE_MAX (~(size_t)0)
21#define PHYS_ADDR_MAX (~(phys_addr_t)0)
22
23#define U8_MAX ((u8)~0U)
24#define S8_MAX ((s8)(U8_MAX >> 1))
25#define S8_MIN ((s8)(-S8_MAX - 1))
26#define U16_MAX ((u16)~0U)
27#define S16_MAX ((s16)(U16_MAX >> 1))
28#define S16_MIN ((s16)(-S16_MAX - 1))
29#define U32_MAX ((u32)~0U)
30#define S32_MAX ((s32)(U32_MAX >> 1))
31#define S32_MIN ((s32)(-S32_MAX - 1))
32#define U64_MAX ((u64)~0ULL)
33#define S64_MAX ((s64)(U64_MAX >> 1))
34#define S64_MIN ((s64)(-S64_MAX - 1))
35
36#endif /* _LINUX_LIMITS_H */
37