#define _GNU_SOURCE #ifndef TYPES_H #define TYPES_H #include #ifdef KERNEL_SCOPE #include // IWYU pragma: export #include // IWYU pragma: export #include typedef __u8 uint8_t; typedef __u16 uint16_t; typedef __u32 uint32_t; typedef __u64 uint64_t; typedef __i8 int8_t; typedef __i16 int16_t; typedef __i32 int32_t; typedef __i64 int64_t; #else /* USERSPACE_SCOPE */ #include // IWYU pragma: export #include // IWYU pragma: export #include // IWYU pragma: export #endif /* SCOPES */ // Network specific structures #ifdef KERNEL_SPACE #include // IWYU pragma: export #include // IWYU pragma: export #include // IWYU pragma: export #include // IWYU pragma: export #include // IWYU pragma: export /* from */ #define IP_RF 0x8000 /* reserved fragment flag */ #define IP_DF 0x4000 /* dont fragment flag */ #define IP_MF 0x2000 /* more fragments flag */ #define IP_OFFMASK 0x1fff /* mask for fragmenting bits */ #else #define USER_SPACE #include // IWYU pragma: export #include // IWYU pragma: export #include // IWYU pragma: export #include // IWYU pragma: export #endif #define max(a,b)__extension__\ ({ \ __typeof__ (a) _a = (a); \ __typeof__ (b) _b = (b); \ _a > _b ? _a : _b; \ }) #define min(a,b)__extension__\ ({ \ __typeof__ (a) _a = (a); \ __typeof__ (b) _b = (b); \ _a < _b ? _a : _b; \ }) #endif /* TYPES_H */