812a0f6cfa7cc3d9300837f9208f783c59fe01e5
[dragonfly.git] / sys / sys / stdint.h
1 /*
2  * This file is in the public domain.
3  * $FreeBSD: src/sys/sys/inttypes.h,v 1.2 1999/08/28 00:51:47 peter Exp $
4  *
5  * Note: since portions of these header files can be included with various
6  * other combinations of defines, we cannot surround the whole header file
7  * with an #ifndef sequence.  Elements are individually protected.
8  */
9
10 #ifndef _SYS_STDINT_H_
11 #define _SYS_STDINT_H_
12
13 #include <sys/cdefs.h>
14 #include <machine/stdint.h>
15
16 /*
17  * wchar_t and rune_t have to be of the same type. rune_t is meant
18  * for internal use only.
19  *
20  * wchar_t, wint_t and rune_t are signed, to allow EOF (-1) to naturally
21  * assigned.
22  *
23  * ANSI specifies ``int'' as argument for the is*() and to*() routines.
24  * Keeping wchar_t and rune_t as ``int'' instead of the more natural
25  * ``long'' helps ANSI conformance. ISO 10646 will most likely end up
26  * as 31 bit standard and all supported architectures have
27  * sizeof(int) >= 4. Unless compiler has overridden it with -fshort-wchar.
28  */
29 #ifndef __cplusplus
30 #if defined(__SIZEOF_WCHAR_T__) && __SIZEOF_WCHAR_T__ == 2
31 typedef unsigned short  __wchar_t;
32 #else
33 typedef int             __wchar_t;
34 #endif
35 #endif
36 #ifndef ___WINT_T_DECLARED
37 typedef int             __wint_t;
38 #define ___WINT_T_DECLARED
39 #endif
40 #ifndef ___RUNE_T_DECLARED
41 typedef int             __rune_t;
42 #define ___RUNE_T_DECLARED
43 #endif
44 typedef void            *__wctrans_t;
45 typedef void            *__wctype_t;
46
47 /*
48  * mbstate_t is an opaque object to keep conversion state, during multibyte
49  * stream conversions.  The content must not be referenced by user programs.
50  */
51 typedef union {
52         __uint8_t __mbstate8[128];
53         __int64_t __mbstateL;   /* for alignment */
54 } __mbstate_t;
55
56 typedef __int64_t       __off_t;
57 typedef __int32_t       __pid_t;
58
59 #endif  /* SYS_STDINT_H */