diff options
| author | Masahiro Yamada <yamada.masahiro@socionext.com> | 2019-03-07 19:27:14 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-03-07 21:31:59 -0500 |
| commit | 54d50897d544c874562253e2a8f70dfcad22afe8 (patch) | |
| tree | dbdfb1f5ca6b8784cce49139fe235c821265028e /include/linux/limits.h | |
| parent | 2dc0e68d5ada6d29554c760bee498c2612530d12 (diff) | |
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>
Diffstat (limited to 'include/linux/limits.h')
| -rw-r--r-- | include/linux/limits.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/include/linux/limits.h b/include/linux/limits.h new file mode 100644 index 000000000000..76afcd24ff8c --- /dev/null +++ b/include/linux/limits.h | |||
| @@ -0,0 +1,36 @@ | |||
| 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 */ | ||
