]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - c_src/include/linux/kernel.h
Move c_src dirs back to toplevel
[bcachefs-tools-debian] / c_src / include / linux / kernel.h
diff --git a/c_src/include/linux/kernel.h b/c_src/include/linux/kernel.h
deleted file mode 100644 (file)
index ef0b1a7..0000000
+++ /dev/null
@@ -1,267 +0,0 @@
-#ifndef __TOOLS_LINUX_KERNEL_H
-#define __TOOLS_LINUX_KERNEL_H
-
-#include <assert.h>
-#include <errno.h>
-#include <stdarg.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <limits.h>
-
-#include <linux/bug.h>
-#include <linux/byteorder.h>
-#include <linux/compiler.h>
-#include <linux/math.h>
-#include <linux/minmax.h>
-
-#define BIT(nr)                        (1UL << (nr))
-#define BIT_ULL(nr)            (1ULL << (nr))
-
-#define __ARG_PLACEHOLDER_1 0,
-#define __take_second_arg(__ignored, val, ...) val
-
-#define __and(x, y)                    ___and(x, y)
-#define ___and(x, y)                   ____and(__ARG_PLACEHOLDER_##x, y)
-#define ____and(arg1_or_junk, y)       __take_second_arg(arg1_or_junk y, 0)
-
-#define __or(x, y)                     ___or(x, y)
-#define ___or(x, y)                    ____or(__ARG_PLACEHOLDER_##x, y)
-#define ____or(arg1_or_junk, y)                __take_second_arg(arg1_or_junk 1, y)
-
-#define __is_defined(x)                        ___is_defined(x)
-#define ___is_defined(val)             ____is_defined(__ARG_PLACEHOLDER_##val)
-#define ____is_defined(arg1_or_junk)   __take_second_arg(arg1_or_junk 1, 0)
-
-/*
- * IS_BUILTIN(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y', 0
- * otherwise. For boolean options, this is equivalent to
- * IS_ENABLED(CONFIG_FOO).
- */
-#define IS_BUILTIN(option) __is_defined(option)
-
-/*
- * IS_MODULE(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'm', 0
- * otherwise.
- */
-#define IS_MODULE(option) __is_defined(option##_MODULE)
-
-/*
- * IS_REACHABLE(CONFIG_FOO) evaluates to 1 if the currently compiled
- * code can call a function defined in code compiled based on CONFIG_FOO.
- * This is similar to IS_ENABLED(), but returns false when invoked from
- * built-in code when CONFIG_FOO is set to 'm'.
- */
-#define IS_REACHABLE(option) __or(IS_BUILTIN(option), \
-                               __and(IS_MODULE(option), __is_defined(MODULE)))
-
-/*
- * IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y' or 'm',
- * 0 otherwise.
- */
-#define IS_ENABLED(option) __or(IS_BUILTIN(option), IS_MODULE(option))
-#define EXPORT_SYMBOL(sym)
-
-#define U8_MAX         ((u8)~0U)
-#define S8_MAX         ((s8)(U8_MAX>>1))
-#define S8_MIN         ((s8)(-S8_MAX - 1))
-#define U16_MAX                ((u16)~0U)
-#define S16_MAX                ((s16)(U16_MAX>>1))
-#define S16_MIN                ((s16)(-S16_MAX - 1))
-#define U32_MAX                ((u32)~0U)
-#define S32_MAX                ((s32)(U32_MAX>>1))
-#define S32_MIN                ((s32)(-S32_MAX - 1))
-#define U64_MAX                ((u64)~0ULL)
-#define S64_MAX                ((s64)(U64_MAX>>1))
-#define S64_MIN                ((s64)(-S64_MAX - 1))
-
-#define ALIGN(x, a)    __ALIGN_MASK(x, (typeof(x))(a)-1)
-#define __ALIGN_MASK(x, mask)  (((x)+(mask))&~(mask))
-
-#define PTR_ALIGN(p, a)                ((typeof(p))ALIGN((unsigned long)(p), (a)))
-#define IS_ALIGNED(x, a)               (((x) & ((typeof(x))(a) - 1)) == 0)
-
-#define __must_be_array(a)     BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0]))
-#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
-
-#ifndef offsetof
-#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
-#endif
-
-#ifndef container_of
-/**
- * container_of - cast a member of a structure out to the containing structure
- * @ptr:       the pointer to the member.
- * @type:      the type of the container struct this is embedded in.
- * @member:    the name of the member within the struct.
- *
- */
-#define container_of(ptr, type, member) ({                     \
-       const typeof(((type *)0)->member) * __mptr = (ptr);     \
-       (type *)((char *)__mptr - offsetof(type, member)); })
-#endif
-
-#ifndef __struct_group
-#define __struct_group(TAG, NAME, ATTRS, MEMBERS...) \
-       union { \
-               struct { MEMBERS } ATTRS; \
-               struct TAG { MEMBERS } ATTRS NAME; \
-       }
-#endif
-
-#define struct_group(NAME, MEMBERS...) \
-       __struct_group(/* no tag */, NAME, /* no attrs */, MEMBERS)
-
-#define swap(a, b) \
-       do { typeof(a) __tmp = (a); (a) = (b); (b) = __tmp; } while (0)
-
-/* This counts to 12. Any more, it will return 13th argument. */
-#define __COUNT_ARGS(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _n, X...) _n
-#define COUNT_ARGS(X...) __COUNT_ARGS(, ##X, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)
-
-#define _RET_IP_               (unsigned long)__builtin_return_address(0)
-#define _THIS_IP_  ({ __label__ __here; __here: (unsigned long)&&__here; })
-
-#define might_sleep()
-
-#define cpu_relax()            barrier()
-#define cpu_relax_lowlatency() barrier()
-
-#define panic(fmt, ...)                                        \
-do {                                                   \
-       printf(fmt, ##__VA_ARGS__);                     \
-       BUG();                                          \
-} while (0)
-
-int __must_check _kstrtoul(const char *s, unsigned int base, unsigned long *res);
-int __must_check _kstrtol(const char *s, unsigned int base, long *res);
-
-int __must_check kstrtoull(const char *s, unsigned int base, unsigned long long *res);
-int __must_check kstrtoll(const char *s, unsigned int base, long long *res);
-
-/**
- * kstrtoul - convert a string to an unsigned long
- * @s: The start of the string. The string must be null-terminated, and may also
- *  include a single newline before its terminating null. The first character
- *  may also be a plus sign, but not a minus sign.
- * @base: The number base to use. The maximum supported base is 16. If base is
- *  given as 0, then the base of the string is automatically detected with the
- *  conventional semantics - If it begins with 0x the number will be parsed as a
- *  hexadecimal (case insensitive), if it otherwise begins with 0, it will be
- *  parsed as an octal number. Otherwise it will be parsed as a decimal.
- * @res: Where to write the result of the conversion on success.
- *
- * Returns 0 on success, -ERANGE on overflow and -EINVAL on parsing error.
- * Used as a replacement for the obsolete simple_strtoull. Return code must
- * be checked.
-*/
-static inline int __must_check kstrtoul(const char *s, unsigned int base, unsigned long *res)
-{
-       /*
-        * We want to shortcut function call, but
-        * __builtin_types_compatible_p(unsigned long, unsigned long long) = 0.
-        */
-       if (sizeof(unsigned long) == sizeof(unsigned long long) &&
-           __alignof__(unsigned long) == __alignof__(unsigned long long))
-               return kstrtoull(s, base, (unsigned long long *)res);
-       else
-               return _kstrtoul(s, base, res);
-}
-
-/**
- * kstrtol - convert a string to a long
- * @s: The start of the string. The string must be null-terminated, and may also
- *  include a single newline before its terminating null. The first character
- *  may also be a plus sign or a minus sign.
- * @base: The number base to use. The maximum supported base is 16. If base is
- *  given as 0, then the base of the string is automatically detected with the
- *  conventional semantics - If it begins with 0x the number will be parsed as a
- *  hexadecimal (case insensitive), if it otherwise begins with 0, it will be
- *  parsed as an octal number. Otherwise it will be parsed as a decimal.
- * @res: Where to write the result of the conversion on success.
- *
- * Returns 0 on success, -ERANGE on overflow and -EINVAL on parsing error.
- * Used as a replacement for the obsolete simple_strtoull. Return code must
- * be checked.
- */
-static inline int __must_check kstrtol(const char *s, unsigned int base, long *res)
-{
-       /*
-        * We want to shortcut function call, but
-        * __builtin_types_compatible_p(long, long long) = 0.
-        */
-       if (sizeof(long) == sizeof(long long) &&
-           __alignof__(long) == __alignof__(long long))
-               return kstrtoll(s, base, (long long *)res);
-       else
-               return _kstrtol(s, base, res);
-}
-
-int __must_check kstrtouint(const char *s, unsigned int base, unsigned int *res);
-int __must_check kstrtoint(const char *s, unsigned int base, int *res);
-
-static inline int __must_check kstrtou64(const char *s, unsigned int base, u64 *res)
-{
-       return kstrtoull(s, base, res);
-}
-
-static inline int __must_check kstrtos64(const char *s, unsigned int base, s64 *res)
-{
-       return kstrtoll(s, base, res);
-}
-
-static inline int __must_check kstrtou32(const char *s, unsigned int base, u32 *res)
-{
-       return kstrtouint(s, base, res);
-}
-
-static inline int __must_check kstrtos32(const char *s, unsigned int base, s32 *res)
-{
-       return kstrtoint(s, base, res);
-}
-
-struct printbuf;
-extern void prt_u64(struct printbuf *out, u64 num);
-
-extern __printf(2, 0) void prt_vprintf(struct printbuf *out, const char *fmt, va_list args);
-extern __printf(2, 3) void prt_printf(struct printbuf *out, const char *fmt, ...);
-
-static const char hex_asc[] = "0123456789abcdef";
-#define hex_asc_lo(x)  hex_asc[((x) & 0x0f)]
-#define hex_asc_hi(x)  hex_asc[((x) & 0xf0) >> 4]
-static const char hex_asc_upper[] = "0123456789ABCDEF";
-#define hex_asc_upper_lo(x)    hex_asc_upper[((x) & 0x0f)]
-#define hex_asc_upper_hi(x)    hex_asc_upper[((x) & 0xf0) >> 4]
-
-/* The hash is always the low bits of hash_len */
-#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
- #define HASH_LEN_DECLARE u32 hash; u32 len
-#else
- #define HASH_LEN_DECLARE u32 len; u32 hash
-#endif
-
-struct qstr {
-       union {
-               struct {
-                       HASH_LEN_DECLARE;
-               };
-               u64 hash_len;
-       };
-       const unsigned char *name;
-};
-
-#define QSTR_INIT(n,l) { { { .len = l } }, .name = n }
-
-#define POISON_FREE 0x6b
-
-static inline void dump_stack(void) {}
-
-#define unsafe_memcpy(dst, src, bytes, justification)          \
-       memcpy(dst, src, bytes)
-
-#ifdef __DECLARE_FLEX_ARRAY
-#define DECLARE_FLEX_ARRAY(TYPE, NAME) __DECLARE_FLEX_ARRAY(TYPE, NAME)
-#else
-#define DECLARE_FLEX_ARRAY(T, member)        T member[0]
-#endif
-
-#endif