linux/include/linux/types.h
<<
>>
Prefs
   1#ifndef _LINUX_TYPES_H
   2#define _LINUX_TYPES_H
   3
   4#ifdef  __KERNEL__
   5
   6#define BITS_TO_LONGS(bits) \
   7        (((bits)+BITS_PER_LONG-1)/BITS_PER_LONG)
   8#define DECLARE_BITMAP(name,bits) \
   9        unsigned long name[BITS_TO_LONGS(bits)]
  10
  11#define BITS_PER_BYTE 8
  12#endif
  13
  14#include <linux/posix_types.h>
  15#include <asm/types.h>
  16
  17#ifndef __KERNEL_STRICT_NAMES
  18
  19typedef __u32 __kernel_dev_t;
  20
  21typedef __kernel_fd_set         fd_set;
  22typedef __kernel_dev_t          dev_t;
  23typedef __kernel_ino_t          ino_t;
  24typedef __kernel_mode_t         mode_t;
  25typedef __kernel_nlink_t        nlink_t;
  26typedef __kernel_off_t          off_t;
  27typedef __kernel_pid_t          pid_t;
  28typedef __kernel_daddr_t        daddr_t;
  29typedef __kernel_key_t          key_t;
  30typedef __kernel_suseconds_t    suseconds_t;
  31typedef __kernel_timer_t        timer_t;
  32typedef __kernel_clockid_t      clockid_t;
  33typedef __kernel_mqd_t          mqd_t;
  34
  35#ifdef __KERNEL__
  36typedef __kernel_uid32_t        uid_t;
  37typedef __kernel_gid32_t        gid_t;
  38typedef __kernel_uid16_t        uid16_t;
  39typedef __kernel_gid16_t        gid16_t;
  40
  41#ifdef CONFIG_UID16
  42/* This is defined by include/asm-{arch}/posix_types.h */
  43typedef __kernel_old_uid_t      old_uid_t;
  44typedef __kernel_old_gid_t      old_gid_t;
  45#endif /* CONFIG_UID16 */
  46
  47/* libc5 includes this file to define uid_t, thus uid_t can never change
  48 * when it is included by non-kernel code
  49 */
  50#else
  51typedef __kernel_uid_t          uid_t;
  52typedef __kernel_gid_t          gid_t;
  53#endif /* __KERNEL__ */
  54
  55#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
  56typedef __kernel_loff_t         loff_t;
  57#endif
  58
  59/*
  60 * The following typedefs are also protected by individual ifdefs for
  61 * historical reasons:
  62 */
  63#ifndef _SIZE_T
  64#define _SIZE_T
  65typedef __kernel_size_t         size_t;
  66#endif
  67
  68#ifndef _SSIZE_T
  69#define _SSIZE_T
  70typedef __kernel_ssize_t        ssize_t;
  71#endif
  72
  73#ifndef _PTRDIFF_T
  74#define _PTRDIFF_T
  75typedef __kernel_ptrdiff_t      ptrdiff_t;
  76#endif
  77
  78#ifndef _TIME_T
  79#define _TIME_T
  80typedef __kernel_time_t         time_t;
  81#endif
  82
  83#ifndef _CLOCK_T
  84#define _CLOCK_T
  85typedef __kernel_clock_t        clock_t;
  86#endif
  87
  88#ifndef _CADDR_T
  89#define _CADDR_T
  90typedef __kernel_caddr_t        caddr_t;
  91#endif
  92
  93/* bsd */
  94typedef unsigned char           u_char;
  95typedef unsigned short          u_short;
  96typedef unsigned int            u_int;
  97typedef unsigned long           u_long;
  98
  99/* sysv */
 100typedef unsigned char           unchar;
 101typedef unsigned short          ushort;
 102typedef unsigned int            uint;
 103typedef unsigned long           ulong;
 104
 105#ifndef __BIT_TYPES_DEFINED__
 106#define __BIT_TYPES_DEFINED__
 107
 108typedef         __u8            u_int8_t;
 109typedef         __s8            int8_t;
 110typedef         __u16           u_int16_t;
 111typedef         __s16           int16_t;
 112typedef         __u32           u_int32_t;
 113typedef         __s32           int32_t;
 114
 115#endif /* !(__BIT_TYPES_DEFINED__) */
 116
 117typedef         __u8            uint8_t;
 118typedef         __u16           uint16_t;
 119typedef         __u32           uint32_t;
 120
 121#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
 122typedef         __u64           uint64_t;
 123typedef         __u64           u_int64_t;
 124typedef         __s64           int64_t;
 125#endif
 126
 127/* this is a special 64bit data type that is 8-byte aligned */
 128#define aligned_u64 unsigned long long __attribute__((aligned(8)))
 129
 130/*
 131 * The type used for indexing onto a disc or disc partition.
 132 * If required, asm/types.h can override it and define
 133 * HAVE_SECTOR_T
 134 */
 135#ifndef HAVE_SECTOR_T
 136typedef unsigned long sector_t;
 137#endif
 138
 139#ifndef HAVE_BLKCNT_T
 140typedef unsigned long blkcnt_t;
 141#endif
 142
 143/*
 144 * The type of an index into the pagecache.  Use a #define so asm/types.h
 145 * can override it.
 146 */
 147#ifndef pgoff_t
 148#define pgoff_t unsigned long
 149#endif
 150
 151#endif /* __KERNEL_STRICT_NAMES */
 152
 153/*
 154 * Below are truly Linux-specific types that should never collide with
 155 * any application/library that wants linux/types.h.
 156 */
 157
 158#ifdef __CHECKER__
 159#define __bitwise__ __attribute__((bitwise))
 160#else
 161#define __bitwise__
 162#endif
 163#ifdef __CHECK_ENDIAN__
 164#define __bitwise __bitwise__
 165#else
 166#define __bitwise
 167#endif
 168
 169typedef __u16 __bitwise __le16;
 170typedef __u16 __bitwise __be16;
 171typedef __u32 __bitwise __le32;
 172typedef __u32 __bitwise __be32;
 173#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
 174typedef __u64 __bitwise __le64;
 175typedef __u64 __bitwise __be64;
 176#endif
 177
 178#ifdef __KERNEL__
 179typedef unsigned __bitwise__ gfp_t;
 180
 181#ifdef CONFIG_RESOURCES_64BIT
 182typedef u64 resource_size_t;
 183#else
 184typedef u32 resource_size_t;
 185#endif
 186
 187#endif  /* __KERNEL__ */
 188
 189struct ustat {
 190        __kernel_daddr_t        f_tfree;
 191        __kernel_ino_t          f_tinode;
 192        char                    f_fname[6];
 193        char                    f_fpack[6];
 194};
 195
 196#endif /* _LINUX_TYPES_H */
 197
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.