diff options
Diffstat (limited to 'include/linux/kernel.h')
| -rw-r--r-- | include/linux/kernel.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 00cec4dc0ae2..953352a88336 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h | |||
| @@ -248,6 +248,37 @@ int __must_check kstrtos16(const char *s, unsigned int base, s16 *res); | |||
| 248 | int __must_check kstrtou8(const char *s, unsigned int base, u8 *res); | 248 | int __must_check kstrtou8(const char *s, unsigned int base, u8 *res); |
| 249 | int __must_check kstrtos8(const char *s, unsigned int base, s8 *res); | 249 | int __must_check kstrtos8(const char *s, unsigned int base, s8 *res); |
| 250 | 250 | ||
| 251 | int __must_check kstrtoull_from_user(const char __user *s, size_t count, unsigned int base, unsigned long long *res); | ||
| 252 | int __must_check kstrtoll_from_user(const char __user *s, size_t count, unsigned int base, long long *res); | ||
| 253 | int __must_check kstrtoul_from_user(const char __user *s, size_t count, unsigned int base, unsigned long *res); | ||
| 254 | int __must_check kstrtol_from_user(const char __user *s, size_t count, unsigned int base, long *res); | ||
| 255 | int __must_check kstrtouint_from_user(const char __user *s, size_t count, unsigned int base, unsigned int *res); | ||
| 256 | int __must_check kstrtoint_from_user(const char __user *s, size_t count, unsigned int base, int *res); | ||
| 257 | int __must_check kstrtou16_from_user(const char __user *s, size_t count, unsigned int base, u16 *res); | ||
| 258 | int __must_check kstrtos16_from_user(const char __user *s, size_t count, unsigned int base, s16 *res); | ||
| 259 | int __must_check kstrtou8_from_user(const char __user *s, size_t count, unsigned int base, u8 *res); | ||
| 260 | int __must_check kstrtos8_from_user(const char __user *s, size_t count, unsigned int base, s8 *res); | ||
| 261 | |||
| 262 | static inline int __must_check kstrtou64_from_user(const char __user *s, size_t count, unsigned int base, u64 *res) | ||
| 263 | { | ||
| 264 | return kstrtoull_from_user(s, count, base, res); | ||
| 265 | } | ||
| 266 | |||
| 267 | static inline int __must_check kstrtos64_from_user(const char __user *s, size_t count, unsigned int base, s64 *res) | ||
| 268 | { | ||
| 269 | return kstrtoll_from_user(s, count, base, res); | ||
| 270 | } | ||
| 271 | |||
| 272 | static inline int __must_check kstrtou32_from_user(const char __user *s, size_t count, unsigned int base, u32 *res) | ||
| 273 | { | ||
| 274 | return kstrtouint_from_user(s, count, base, res); | ||
| 275 | } | ||
| 276 | |||
| 277 | static inline int __must_check kstrtos32_from_user(const char __user *s, size_t count, unsigned int base, s32 *res) | ||
| 278 | { | ||
| 279 | return kstrtoint_from_user(s, count, base, res); | ||
| 280 | } | ||
| 281 | |||
| 251 | extern unsigned long simple_strtoul(const char *,char **,unsigned int); | 282 | extern unsigned long simple_strtoul(const char *,char **,unsigned int); |
| 252 | extern long simple_strtol(const char *,char **,unsigned int); | 283 | extern long simple_strtol(const char *,char **,unsigned int); |
| 253 | extern unsigned long long simple_strtoull(const char *,char **,unsigned int); | 284 | extern unsigned long long simple_strtoull(const char *,char **,unsigned int); |
| @@ -283,6 +314,7 @@ extern char *get_options(const char *str, int nints, int *ints); | |||
| 283 | extern unsigned long long memparse(const char *ptr, char **retptr); | 314 | extern unsigned long long memparse(const char *ptr, char **retptr); |
| 284 | 315 | ||
| 285 | extern int core_kernel_text(unsigned long addr); | 316 | extern int core_kernel_text(unsigned long addr); |
| 317 | extern int core_kernel_data(unsigned long addr); | ||
| 286 | extern int __kernel_text_address(unsigned long addr); | 318 | extern int __kernel_text_address(unsigned long addr); |
| 287 | extern int kernel_text_address(unsigned long addr); | 319 | extern int kernel_text_address(unsigned long addr); |
| 288 | extern int func_ptr_is_kernel_text(void *ptr); | 320 | extern int func_ptr_is_kernel_text(void *ptr); |
| @@ -637,6 +669,13 @@ struct sysinfo { | |||
| 637 | char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding: libc5 uses this.. */ | 669 | char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding: libc5 uses this.. */ |
| 638 | }; | 670 | }; |
| 639 | 671 | ||
| 672 | #ifdef __CHECKER__ | ||
| 673 | #define BUILD_BUG_ON_NOT_POWER_OF_2(n) | ||
| 674 | #define BUILD_BUG_ON_ZERO(e) (0) | ||
| 675 | #define BUILD_BUG_ON_NULL(e) ((void*)0) | ||
| 676 | #define BUILD_BUG_ON(condition) | ||
| 677 | #else /* __CHECKER__ */ | ||
| 678 | |||
| 640 | /* Force a compilation error if a constant expression is not a power of 2 */ | 679 | /* Force a compilation error if a constant expression is not a power of 2 */ |
| 641 | #define BUILD_BUG_ON_NOT_POWER_OF_2(n) \ | 680 | #define BUILD_BUG_ON_NOT_POWER_OF_2(n) \ |
| 642 | BUILD_BUG_ON((n) == 0 || (((n) & ((n) - 1)) != 0)) | 681 | BUILD_BUG_ON((n) == 0 || (((n) & ((n) - 1)) != 0)) |
| @@ -673,6 +712,7 @@ extern int __build_bug_on_failed; | |||
| 673 | if (condition) __build_bug_on_failed = 1; \ | 712 | if (condition) __build_bug_on_failed = 1; \ |
| 674 | } while(0) | 713 | } while(0) |
| 675 | #endif | 714 | #endif |
| 715 | #endif /* __CHECKER__ */ | ||
| 676 | 716 | ||
| 677 | /* Trap pasters of __FUNCTION__ at compile-time */ | 717 | /* Trap pasters of __FUNCTION__ at compile-time */ |
| 678 | #define __FUNCTION__ (__func__) | 718 | #define __FUNCTION__ (__func__) |
