File Index
Files and directories
Sign in
FILE

types.h

File preview with syntax highlighting.

linux-6.19.14/tools/include/linux/types.h C
  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
 45typedef unsigned long long	ullong;
 46
 47#ifdef __CHECKER__
 48#define __bitwise	__attribute__((bitwise))
 49#else
 50#define __bitwise
 51#endif
 52
 53#define __force
 54/* This is defined in linux/compiler_types.h and is left for backward
 55 * compatibility.
 56 */
 57#ifndef __user
 58#define __user
 59#endif
 60#define __must_check
 61#define __cold
 62
 63typedef __u16 __bitwise __le16;
 64typedef __u16 __bitwise __be16;
 65typedef __u32 __bitwise __le32;
 66typedef __u32 __bitwise __be32;
 67typedef __u64 __bitwise __le64;
 68typedef __u64 __bitwise __be64;
 69
 70typedef __u16 __bitwise __sum16;
 71typedef __u32 __bitwise __wsum;
 72
 73#ifdef CONFIG_PHYS_ADDR_T_64BIT
 74typedef u64 phys_addr_t;
 75#else
 76typedef u32 phys_addr_t;
 77#endif
 78
 79typedef struct {
 80	int counter;
 81} atomic_t;
 82
 83typedef struct {
 84	long counter;
 85} atomic_long_t;
 86
 87#ifndef __aligned_u64
 88# define __aligned_u64 __u64 __attribute__((aligned(8)))
 89#endif
 90
 91#ifndef __aligned_be64
 92# define __aligned_be64 __be64 __attribute__((aligned(8)))
 93#endif
 94
 95#ifndef __aligned_le64
 96# define __aligned_le64 __le64 __attribute__((aligned(8)))
 97#endif
 98
 99struct list_head {
100	struct list_head *next, *prev;
101};
102
103struct hlist_head {
104	struct hlist_node *first;
105};
106
107struct hlist_node {
108	struct hlist_node *next, **pprev;
109};
110
111#endif /* _TOOLS_LINUX_TYPES_H_ */
~/ Read-only file preview.