#define __alignof__(x)            1
#define offsetof(TYPE, MEMBER)    ((size_t) &((TYPE *)0)->MEMBER)
#define ARRAY_SIZE(A)             (sizeof(A) / sizeof(A[0]))
#define BUG_ON(C)                 if (C) exit(1)
#define GOTO(label, rc)           goto label
#define RETURN(x)                 return x
#define NVERSION(version)         (version >> 16) & 0xFF, (version >> 8) & 0xFF, version & 0xFF
#define container_of(ptr, type, member) ({                      \
        const typeof( ((type *)0)->member ) *__mptr = (ptr);    \
        (type *)( (char *)__mptr - offsetof(type,member) );})

#define __get_user(x, ptr)   ((x) = somevalue + sizeof(*ptr))

void panic(const char *fmt, ...) __attribute__((noreturn));