summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/include/sys/types.h
blob: a3d2bf4be0e9d9ae76c510906228dbe72a7cb14a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#ifndef _SYS_TYPES_H
#define _SYS_TYPES_H

#include <inttypes.h>
#include <stddef.h>

typedef unsigned long int blkcnt_t;	/* Used for file block counts */
typedef unsigned long int blksize_t;	/* Used for block sizes */
typedef unsigned long int clock_t;	/* Used for system times in
					   clock ticks or CLOCKS_PER_SEC
					   (see <time.h>). */

/* TODO:
     clockid_t
             Used for clock ID type in the clock and timer functions.
     fsblkcnt_t
             Used for file system block counts
     fsfilcnt_t
             Used for file system file counts
     pthread_attr_t
             Used to identify a thread attribute object.
     pthread_cond_t
             Used for condition variables.
     pthread_condattr_t
             Used to identify a condition attribute object.
     pthread_key_t
             Used for thread-specific data keys.
     pthread_mutex_t
             Used for mutexes.
     pthread_mutexattr_t
             Used to identify a mutex attribute object.
     pthread_once_t
             Used for dynamic package initialisation.
     pthread_rwlock_t
             Used for read-write locks.
     pthread_rwlockattr_t
             Used for read-write lock attributes.
     pthread_t
             Used to identify a thread.
     timer_t
             Used for timer ID returned by timer_create().
*/

#if defined(__alpha__) || defined(__mips__) || defined(__powerpc__) || defined(__hppa__) || defined(__sparc64__) \
 || defined(__x86_64__) || defined(__ia64__)
typedef unsigned int uid_t;		/* Used for user IDs. */
typedef unsigned int gid_t;		/* Used for group IDs. */
typedef unsigned int dev_t;		/* Used for device IDs. */
#else
typedef unsigned short uid_t;		/* Used for user IDs. */
typedef unsigned short gid_t;		/* Used for group IDs. */
typedef unsigned short dev_t;		/* Used for device IDs. */
#endif

#if defined(__alpha__) || defined(__mips__) || defined(__powerpc__) || defined(__sparc64__) \
 || defined(__x86_64__) || defined(__ia64__)
typedef unsigned int mode_t;		/* Used for some file attributes. */
#else
typedef unsigned short mode_t;		/* Used for some file attributes. */
#endif

#if defined(__alpha__) || defined(__mips__) || defined(__sparc64__) \
 || defined(__x86_64__) || defined(__ia64__)
typedef unsigned int nlink_t;		/* Used for link counts. */
#else
typedef unsigned short nlink_t;		/* Used for link counts. */
#endif

typedef signed int id_t;		/* Used as a general identifier; can be
					   used to contain at least a pid_t,
					   uid_t or a gid_t. */
typedef unsigned long ino_t;		/* Used for file serial numbers. */
typedef signed int key_t;		/* Used for interprocess communication. */
typedef signed int pid_t;		/* Used for process IDs and process group IDs. */
typedef signed long ssize_t;		/* Used for a count of bytes or an error indication. */
typedef signed long suseconds_t;	/* Used for time in microseconds. */
typedef signed long time_t;		/* Used for time in seconds. */
typedef signed long useconds_t;		/* Used for time in microseconds. */

/* non-susv2 types: */
__extension__ typedef signed long long loff_t;	/* 64-bit offset */

__extension__ typedef signed long long off64_t;
#if defined _FILE_OFFSET_BITS && _FILE_OFFSET_BITS == 64
typedef off64_t off_t;
#else
typedef signed long off_t;             /* Used for file sizes. */
#endif

__extension__ typedef unsigned long long ino64_t;
__extension__ typedef signed long long blkcnt64_t;

typedef uint32_t uid32_t;
typedef uint32_t gid32_t;

typedef long int fpos_t;

#define __socklen_t_defined
typedef unsigned int socklen_t;
typedef unsigned short sa_family_t;

#ifdef _BSD_SOURCE
/* die, BSD, die! */
typedef uint16_t nshort;
typedef uint32_t ntime;
typedef uint32_t nlong;
typedef uint32_t ulong;
typedef uint16_t n_short;
typedef uint32_t n_time;
typedef uint32_t n_long;
# ifndef __dietlibc_u_char_defined
typedef char* caddr_t;
typedef uint32_t u_long;
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
# define __dietlibc_u_char_defined
# endif
typedef unsigned char uchar;
typedef unsigned short ushort;
typedef unsigned int uint;
#endif

#ifdef _GNU_SOURCE
typedef uint8_t u_int8_t;
typedef uint16_t u_int16_t;
typedef uint32_t u_int32_t;
#ifndef __STRICT_ANSI__
typedef uint64_t u_int64_t;
#endif
#endif

#endif