]>
Commit | Line | Data |
---|---|---|
5ae3e846 UD |
1 | /* Copyright (C) 1991, 92, 94, 95, 96, 97 Free Software Foundation, Inc. |
2 | This file is part of the GNU C Library. | |
3 | ||
4 | The GNU C Library is free software; you can redistribute it and/or | |
5 | modify it under the terms of the GNU Library General Public License as | |
6 | published by the Free Software Foundation; either version 2 of the | |
7 | License, or (at your option) any later version. | |
8 | ||
9 | The GNU C Library is distributed in the hope that it will be useful, | |
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
12 | Library General Public License for more details. | |
13 | ||
14 | You should have received a copy of the GNU Library General Public | |
15 | License along with the GNU C Library; see the file COPYING.LIB. If not, | |
16 | write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
17 | Boston, MA 02111-1307, USA. */ | |
18 | ||
19 | /* | |
20 | * Never include this file directly; use <sys/types.h> instead. | |
21 | */ | |
22 | ||
23 | #ifndef _BITS_TYPES_H | |
24 | #define _BITS_TYPES_H 1 | |
25 | ||
26 | #include <features.h> | |
27 | ||
28 | /* Convenience types. */ | |
29 | typedef unsigned char __u_char; | |
30 | typedef unsigned short __u_short; | |
31 | typedef unsigned int __u_int; | |
32 | typedef unsigned long __u_long; | |
33 | typedef unsigned long int __u_quad_t; | |
34 | typedef long int __quad_t; | |
35 | typedef signed char __int8_t; | |
36 | typedef unsigned char __uint8_t; | |
37 | typedef signed short int __int16_t; | |
38 | typedef unsigned short int __uint16_t; | |
39 | typedef signed int __int32_t; | |
40 | typedef unsigned int __uint32_t; | |
41 | typedef signed long int __int64_t; | |
42 | typedef unsigned long int __uint64_t; | |
43 | typedef __quad_t *__qaddr_t; | |
44 | ||
f41c8091 | 45 | typedef __u_long __dev_t; /* Type of device numbers. */ |
5ae3e846 UD |
46 | typedef __u_int __uid_t; /* Type of user identifications. */ |
47 | typedef __u_int __gid_t; /* Type of group identifications. */ | |
48 | typedef __u_int __ino_t; /* Type of file serial numbers. */ | |
49 | typedef __u_int __mode_t; /* Type of file attribute bitmasks. */ | |
50 | typedef __u_int __nlink_t; /* Type of file link counts. */ | |
51 | typedef long int __off_t; /* Type of file sizes and offsets. */ | |
52 | typedef __quad_t __loff_t; /* Type of file sizes and offsets. */ | |
53 | typedef int __pid_t; /* Type of process identifications. */ | |
2604afb1 | 54 | typedef long long int __ssize_t; /* Type of a byte count, or error. */ |
5ae3e846 UD |
55 | |
56 | typedef struct | |
57 | { | |
58 | int __val[2]; | |
59 | } __fsid_t; /* Type of file system IDs. */ | |
60 | ||
61 | /* Everythin' else. */ | |
62 | typedef int __daddr_t; /* The type of a disk address. */ | |
63 | typedef char *__caddr_t; | |
64 | typedef long int __time_t; | |
65 | typedef long int __swblk_t; /* Type of a swap block maybe? */ | |
66 | \f | |
67 | typedef long int __clock_t; | |
68 | ||
69 | /* One element in the file descriptor mask array. */ | |
70 | typedef unsigned long int __fd_mask; | |
71 | ||
72 | /* Due to incaution, we may have gotten these from a kernel header file. */ | |
73 | #undef __FD_SETSIZE | |
74 | #undef __NFDBITS | |
75 | #undef __FDMASK | |
76 | ||
77 | /* Number of descriptors that can fit in an `fd_set'. */ | |
78 | #define __FD_SETSIZE 1024 | |
79 | ||
80 | /* It's easier to assume 8-bit bytes than to get CHAR_BIT. */ | |
81 | #define __NFDBITS (8 * sizeof (__fd_mask)) | |
82 | #define __FDELT(d) ((d) / __NFDBITS) | |
83 | #define __FDMASK(d) (1 << ((d) % __NFDBITS)) | |
84 | ||
85 | /* fd_set for select and pselect. */ | |
86 | typedef struct | |
87 | { | |
88 | /* XPG4.2 requires this member name. */ | |
89 | __fd_mask fds_bits[__FD_SETSIZE / __NFDBITS]; | |
90 | } __fd_set; | |
91 | ||
92 | ||
93 | typedef int __key_t; | |
94 | ||
95 | #endif /* bits/types.h */ |