xref: /linux-6.15/include/linux/limits.h (revision 3c9d017c)
154d50897SMasahiro Yamada /* SPDX-License-Identifier: GPL-2.0 */
254d50897SMasahiro Yamada #ifndef _LINUX_LIMITS_H
354d50897SMasahiro Yamada #define _LINUX_LIMITS_H
454d50897SMasahiro Yamada 
554d50897SMasahiro Yamada #include <uapi/linux/limits.h>
654d50897SMasahiro Yamada #include <linux/types.h>
73e0e9f8cSVincenzo Frascino #include <vdso/limits.h>
854d50897SMasahiro Yamada 
954d50897SMasahiro Yamada #define SIZE_MAX	(~(size_t)0)
10dabba872SPasha Tatashin #define SSIZE_MAX	((ssize_t)(SIZE_MAX >> 1))
1154d50897SMasahiro Yamada #define PHYS_ADDR_MAX	(~(phys_addr_t)0)
1254d50897SMasahiro Yamada 
13*3c9d017cSAndy Shevchenko #define RESOURCE_SIZE_MAX	((resource_size_t)~0)
14*3c9d017cSAndy Shevchenko 
1554d50897SMasahiro Yamada #define U8_MAX		((u8)~0U)
1654d50897SMasahiro Yamada #define S8_MAX		((s8)(U8_MAX >> 1))
1754d50897SMasahiro Yamada #define S8_MIN		((s8)(-S8_MAX - 1))
1854d50897SMasahiro Yamada #define U16_MAX		((u16)~0U)
1954d50897SMasahiro Yamada #define S16_MAX		((s16)(U16_MAX >> 1))
2054d50897SMasahiro Yamada #define S16_MIN		((s16)(-S16_MAX - 1))
2154d50897SMasahiro Yamada #define U32_MAX		((u32)~0U)
223f50f132SJohn Fastabend #define U32_MIN		((u32)0)
2354d50897SMasahiro Yamada #define S32_MAX		((s32)(U32_MAX >> 1))
2454d50897SMasahiro Yamada #define S32_MIN		((s32)(-S32_MAX - 1))
2554d50897SMasahiro Yamada #define U64_MAX		((u64)~0ULL)
2654d50897SMasahiro Yamada #define S64_MAX		((s64)(U64_MAX >> 1))
2754d50897SMasahiro Yamada #define S64_MIN		((s64)(-S64_MAX - 1))
2854d50897SMasahiro Yamada 
2954d50897SMasahiro Yamada #endif /* _LINUX_LIMITS_H */
30