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