Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

linux/kernel.h: split *_MAX and *_MIN macros into <linux/limits.h>

<linux/kernel.h> tends to be cluttered because we often put various sort
of unrelated stuff in it. So, we have split out a sensible chunk of
code into a separate header from time to time.

This commit splits out the *_MAX and *_MIN defines.

The standard header <limits.h> contains various MAX, MIN constants
including numerial limits. [1]

I think it makes sense to move in-kernel MAX, MIN constants into
include/linux/limits.h.

We already have include/uapi/linux/limits.h to contain some user-space
constants. I changed its include guard to _UAPI_LINUX_LIMITS_H. This
change has no impact to the user-space because
scripts/headers_install.sh rips off the '_UAPI' prefix from the include
guards of exported headers.

[1] http://pubs.opengroup.org/onlinepubs/009604499/basedefs/limits.h.html

Link: http://lkml.kernel.org/r/1549156242-20806-2-git-send-email-yamada.masahiro@socionext.com
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Alex Elder <elder@linaro.org>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Zhang Yanmin <yanmin.zhang@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Masahiro Yamada and committed by
Linus Torvalds
54d50897 2dc0e68d

+39 -30
+1 -28
include/linux/kernel.h
··· 4 4 5 5 6 6 #include <stdarg.h> 7 + #include <linux/limits.h> 7 8 #include <linux/linkage.h> 8 9 #include <linux/stddef.h> 9 10 #include <linux/types.h> ··· 17 16 #include <asm/byteorder.h> 18 17 #include <asm/div64.h> 19 18 #include <uapi/linux/kernel.h> 20 - 21 - #define USHRT_MAX ((unsigned short)~0U) 22 - #define SHRT_MAX ((short)(USHRT_MAX>>1)) 23 - #define SHRT_MIN ((short)(-SHRT_MAX - 1)) 24 - #define INT_MAX ((int)(~0U>>1)) 25 - #define INT_MIN (-INT_MAX - 1) 26 - #define UINT_MAX (~0U) 27 - #define LONG_MAX ((long)(~0UL>>1)) 28 - #define LONG_MIN (-LONG_MAX - 1) 29 - #define ULONG_MAX (~0UL) 30 - #define LLONG_MAX ((long long)(~0ULL>>1)) 31 - #define LLONG_MIN (-LLONG_MAX - 1) 32 - #define ULLONG_MAX (~0ULL) 33 - #define SIZE_MAX (~(size_t)0) 34 - #define PHYS_ADDR_MAX (~(phys_addr_t)0) 35 - 36 - #define U8_MAX ((u8)~0U) 37 - #define S8_MAX ((s8)(U8_MAX>>1)) 38 - #define S8_MIN ((s8)(-S8_MAX - 1)) 39 - #define U16_MAX ((u16)~0U) 40 - #define S16_MAX ((s16)(U16_MAX>>1)) 41 - #define S16_MIN ((s16)(-S16_MAX - 1)) 42 - #define U32_MAX ((u32)~0U) 43 - #define S32_MAX ((s32)(U32_MAX>>1)) 44 - #define S32_MIN ((s32)(-S32_MAX - 1)) 45 - #define U64_MAX ((u64)~0ULL) 46 - #define S64_MAX ((s64)(U64_MAX>>1)) 47 - #define S64_MIN ((s64)(-S64_MAX - 1)) 48 19 49 20 #define STACK_MAGIC 0xdeadbeef 50 21
+36
include/linux/limits.h
··· 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 */
+2 -2
include/uapi/linux/limits.h
··· 1 1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 - #ifndef _LINUX_LIMITS_H 3 - #define _LINUX_LIMITS_H 2 + #ifndef _UAPI_LINUX_LIMITS_H 3 + #define _UAPI_LINUX_LIMITS_H 4 4 5 5 #define NR_OPEN 1024 6 6