linux-old/include/linux/types.h History
<<
>>
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#define CLEAR_BITMAP(name,bits) \
  12        memset(name, 0, BITS_TO_LONGS(bits)*sizeof(unsigned long))
  13#endif
  14
  15#include <linux/posix_types.h>
  16#include <asm/types.h>
  17
  18#ifndef __KERNEL_STRICT_NAMES
  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;
  30
  31#ifdef __KERNEL__
  32typedef __kernel_uid32_t        uid_t;
  33typedef __kernel_gid32_t        gid_t;
  34typedef __kernel_uid16_t        uid16_t;
  35typedef __kernel_gid16_t        gid16_t;
  36
  37#ifdef CONFIG_UID16
  38/* This is defined by include/asm-{arch}/posix_types.h */
  39typedef __kernel_old_uid_t      old_uid_t;
  40typedef __kernel_old_gid_t      old_gid_t;
  41#endif /* CONFIG_UID16 */
  42
  43/* libc5 includes this file to define uid_t, thus uid_t can never change
  44 * when it is included by non-kernel code
  45 */
  46#else
  47typedef __kernel_uid_t          uid_t;
  48typedef __kernel_gid_t          gid_t;
  49#endif /* __KERNEL__ */
  50
  51#if defined(__GNUC__)
  52typedef __kernel_loff_t         loff_t;
  53#endif
  54
  55/*
  56 * The following typedefs are also protected by individual ifdefs for
  57 * historical reasons:
  58 */
  59#ifndef _SIZE_T
  60#define _SIZE_T
  61typedef __kernel_size_t         size_t;
  62#endif
  63
  64#ifndef _SSIZE_T
  65#define _SSIZE_T
  66typedef __kernel_ssize_t        ssize_t;
  67#endif
  68
  69#ifndef _PTRDIFF_T
  70#define _PTRDIFF_T
  71typedef __kernel_ptrdiff_t      ptrdiff_t;
  72#endif
  73
  74#ifndef _TIME_T
  75#define _TIME_T
  76typedef __kernel_time_t         time_t;
  77#endif
  78
  79#ifndef _CLOCK_T
  80#define _CLOCK_T
  81typedef __kernel_clock_t        clock_t;
  82#endif
  83
  84#ifndef _CADDR_T
  85#define _CADDR_T
  86typedef __kernel_caddr_t        caddr_t;
  87#endif
  88
  89/* bsd */
  90typedef unsigned char           u_char;
  91typedef unsigned short          u_short;
  92typedef unsigned int            u_int;
  93typedef unsigned long           u_long;
  94
  95/* sysv */
  96typedef unsigned char           unchar;
  97typedef unsigned short          ushort;
  98typedef unsigned int            uint;
  99typedef unsigned long           ulong;
 100
 101#ifndef __BIT_TYPES_DEFINED__
 102#define __BIT_TYPES_DEFINED__
 103
 104typedef         __u8            u_int8_t;
 105typedef         __s8            int8_t;
 106typedef         __u16           u_int16_t;
 107typedef         __s16           int16_t;
 108typedef         __u32           u_int32_t;
 109typedef         __s32           int32_t;
 110
 111#endif /* !(__BIT_TYPES_DEFINED__) */
 112
 113typedef         __u8            uint8_t;
 114typedef         __u16           uint16_t;
 115typedef         __u32           uint32_t;
 116
 117#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
 118typedef         __u64           uint64_t;
 119typedef         __u64           u_int64_t;
 120typedef         __s64           int64_t;
 121#endif
 122
 123#endif /* __KERNEL_STRICT_NAMES */
 124
 125/*
 126 * Below are truly Linux-specific types that should never collide with
 127 * any application/library that wants linux/types.h.
 128 */
 129
 130struct ustat {
 131        __kernel_daddr_t        f_tfree;
 132        __kernel_ino_t          f_tinode;
 133        char                    f_fname[6];
 134        char                    f_fpack[6];
 135};
 136
 137#endif /* _LINUX_TYPES_H */
 138
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.