source: trunk/libs/newlib/src/newlib/libc/include/sys/_types.h @ 444

Last change on this file since 444 was 444, checked in by satin@…, 6 years ago

add newlib,libalmos-mkh, restructure shared_syscalls.h and mini-libc

File size: 4.8 KB
Line 
1/* ANSI C namespace clean utility typedefs */
2
3/* This file defines various typedefs needed by the system calls that support
4   the C library.  Basically, they're just the POSIX versions with an '_'
5   prepended.  Targets shall use <machine/_types.h> to define their own
6   internal types if desired.
7
8   There are three define patterns used for type definitions.  Lets assume
9   xyz_t is a user type.
10
11   The internal type definition uses __machine_xyz_t_defined.  It is defined by
12   <machine/_types.h> to disable a default definition in <sys/_types.h>. It
13   must not be used in other files.
14
15   User type definitions are guarded by __xyz_t_defined in glibc and
16   _XYZ_T_DECLARED in BSD compatible systems.
17*/
18
19#ifndef _SYS__TYPES_H
20#define _SYS__TYPES_H
21
22#include <newlib.h>
23#include <sys/config.h>
24#include <machine/_types.h>
25#include <sys/lock.h>
26
27#ifndef __machine_blkcnt_t_defined
28typedef long __blkcnt_t;
29#endif
30
31#ifndef __machine_blksize_t_defined
32typedef long __blksize_t;
33#endif
34
35#ifndef __machine_fsblkcnt_t_defined
36typedef __uint64_t __fsblkcnt_t;
37#endif
38
39#ifndef __machine_fsfilcnt_t_defined
40typedef __uint32_t __fsfilcnt_t;
41#endif
42
43#ifndef __machine_off_t_defined
44typedef long _off_t;
45#endif
46
47#if defined(__XMK__)
48typedef signed char __pid_t;
49#else
50typedef int __pid_t;
51#endif
52
53#ifndef __machine_dev_t_defined
54typedef short __dev_t;
55#endif
56
57#ifndef __machine_uid_t_defined
58typedef unsigned short __uid_t;
59#endif
60#ifndef __machine_gid_t_defined
61typedef unsigned short __gid_t;
62#endif
63
64#ifndef __machine_id_t_defined
65typedef __uint32_t __id_t;
66#endif
67
68#ifndef __machine_ino_t_defined
69#if (defined(__i386__) && (defined(GO32) || defined(__MSDOS__))) || \
70    defined(__sparc__) || defined(__SPU__)
71typedef unsigned long __ino_t;
72#else
73typedef unsigned short __ino_t;
74#endif
75#endif
76
77#ifndef __machine_mode_t_defined
78#if defined(__i386__) && (defined(GO32) || defined(__MSDOS__))
79typedef int __mode_t;
80#else
81#if defined(__sparc__) && !defined(__sparc_v9__)
82#ifdef __svr4__
83typedef unsigned long __mode_t;
84#else
85typedef unsigned short __mode_t;
86#endif
87#else
88typedef __uint32_t __mode_t;
89#endif
90#endif
91#endif
92
93#ifndef __machine_off64_t_defined
94__extension__ typedef long long _off64_t;
95#endif
96
97#if defined(__CYGWIN__) && !defined(__LP64__)
98typedef _off64_t __off_t;
99#else
100typedef _off_t __off_t;
101#endif
102
103typedef _off64_t __loff_t;
104
105#ifndef __machine_key_t_defined
106typedef long __key_t;
107#endif
108
109/*
110 * We need fpos_t for the following, but it doesn't have a leading "_",
111 * so we use _fpos_t instead.
112 */
113#ifndef __machine_fpos_t_defined
114typedef long _fpos_t;           /* XXX must match off_t in <sys/types.h> */
115                                /* (and must be `long' for now) */
116#endif
117
118#ifdef __LARGE64_FILES
119#ifndef __machine_fpos64_t_defined
120typedef _off64_t _fpos64_t;
121#endif
122#endif
123
124/* Defined by GCC provided <stddef.h> */
125#undef __size_t
126
127#ifndef __machine_size_t_defined
128#ifdef __SIZE_TYPE__
129typedef __SIZE_TYPE__ __size_t;
130#else
131#if defined(__INT_MAX__) && __INT_MAX__ == 2147483647
132typedef unsigned int __size_t;
133#else
134typedef unsigned long __size_t;
135#endif
136#endif
137#endif
138
139#ifndef __machine_ssize_t_defined
140#ifdef __SIZE_TYPE__
141/* If __SIZE_TYPE__ is defined (gcc) we define ssize_t based on size_t.
142   We simply change "unsigned" to "signed" for this single definition
143   to make sure ssize_t and size_t only differ by their signedness. */
144#define unsigned signed
145typedef __SIZE_TYPE__ _ssize_t;
146#undef unsigned
147#else
148#if defined(__INT_MAX__) && __INT_MAX__ == 2147483647
149typedef int _ssize_t;
150#else
151typedef long _ssize_t;
152#endif
153#endif
154#endif
155
156typedef _ssize_t __ssize_t;
157
158#define __need_wint_t
159#include <stddef.h>
160
161#ifndef __machine_mbstate_t_defined
162/* Conversion state information.  */
163typedef struct
164{
165  int __count;
166  union
167  {
168    wint_t __wch;
169    unsigned char __wchb[4];
170  } __value;            /* Value so far.  */
171} _mbstate_t;
172#endif
173
174#ifndef __machine_flock_t_defined
175typedef _LOCK_RECURSIVE_T _flock_t;
176#endif
177
178#ifndef __machine_iconv_t_defined
179/* Iconv descriptor type */
180typedef void *_iconv_t;
181#endif
182
183#ifndef __machine_clock_t_defined
184#define _CLOCK_T_       unsigned long   /* clock() */
185#endif
186
187typedef _CLOCK_T_       __clock_t;
188
189#if defined(_USE_LONG_TIME_T) || __LONG_MAX__ > 0x7fffffffL
190#define _TIME_T_ long
191#else
192#define _TIME_T_ __int_least64_t
193#endif
194typedef _TIME_T_        __time_t;
195
196#define _CLOCKID_T_     unsigned long
197typedef _CLOCKID_T_     __clockid_t;
198
199#define _TIMER_T_       unsigned long
200typedef _TIMER_T_       __timer_t;
201
202#ifndef __machine_sa_family_t_defined
203typedef __uint8_t       __sa_family_t;
204#endif
205
206#ifndef __machine_socklen_t_defined
207typedef __uint32_t      __socklen_t;
208#endif
209
210typedef unsigned short  __nlink_t;
211typedef long            __suseconds_t;  /* microseconds (signed) */
212typedef unsigned long   __useconds_t;   /* microseconds (unsigned) */
213
214#ifdef __GNUCLIKE_BUILTIN_VARARGS
215typedef __builtin_va_list       __va_list;
216#else
217typedef char *                  __va_list;
218#endif /* __GNUCLIKE_BUILTIN_VARARGS */
219
220#endif  /* _SYS__TYPES_H */
Note: See TracBrowser for help on using the repository browser.