linux/tools/include/linux/types.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef _TOOLS_LINUX_TYPES_H_
   3#define _TOOLS_LINUX_TYPES_H_
   4
   5#include <stdbool.h>
   6#include <stddef.h>
   7#include <stdint.h>
   8
   9#ifndef __SANE_USERSPACE_TYPES__
  10#define __SANE_USERSPACE_TYPES__        /* For PPC64, to get LL64 types */
  11#endif
  12
  13#include <asm/types.h>
  14#include <asm/posix_types.h>
  15
  16struct page;
  17struct kmem_cache;
  18
  19typedef enum {
  20        GFP_KERNEL,
  21        GFP_ATOMIC,
  22        __GFP_HIGHMEM,
  23        __GFP_HIGH
  24} gfp_t;
  25
  26/*
  27 * We define u64 as uint64_t for every architecture
  28 * so that we can print it with "%"PRIx64 without getting warnings.
  29 *
  30 * typedef __u64 u64;
  31 * typedef __s64 s64;
  32 */
  33typedef uint64_t u64;
  34typedef int64_t s64;
  35
  36typedef __u32 u32;
  37typedef __s32 s32;
  38
  39typedef __u16 u16;
  40typedef __s16 s16;
  41
  42typedef __u8  u8;
  43typedef __s8  s8;
  44
  45#ifdef __CHECKER__
  46#define __bitwise__ __attribute__((bitwise))
  47#else
  48#define __bitwise__
  49#endif
  50#define __bitwise __bitwise__
  51
  52#define __force
  53#define __user
  54#define __must_check
  55#define __cold
  56
  57typedef __u16 __bitwise __le16;
  58typedef __u16 __bitwise __be16;
  59typedef __u32 __bitwise __le32;
  60typedef __u32 __bitwise __be32;
  61typedef __u64 __bitwise __le64;
  62typedef __u64 __bitwise __be64;
  63
  64typedef __u16 __bitwise __sum16;
  65typedef __u32 __bitwise __wsum;
  66
  67typedef struct {
  68        int counter;
  69} atomic_t;
  70
  71#ifndef __aligned_u64
  72# define __aligned_u64 __u64 __attribute__((aligned(8)))
  73#endif
  74
  75struct list_head {
  76        struct list_head *next, *prev;
  77};
  78
  79struct hlist_head {
  80        struct hlist_node *first;
  81};
  82
  83struct hlist_node {
  84        struct hlist_node *next, **pprev;
  85};
  86
  87#endif /* _TOOLS_LINUX_TYPES_H_ */
  88