VSF Documented
types.h
Go to the documentation of this file.
1#ifndef __VSF_LINUX_SYS_TYPES_H__
2#define __VSF_LINUX_SYS_TYPES_H__
3
5
6// for __BEGIN_DECLS, __END_DECLS, DEF_WEAK and etc
7// Not all platform have /sys/cdefs.h, but some application need this.
8// so put some content of /sys/cdefs.h here
9#ifdef __cplusplus
10# define __BEGIN_DECLS extern "C" {
11# define __END_DECLS }
12#else
13# define __BEGIN_DECLS
14# define __END_DECLS
15#endif
16#ifndef DEF_WEAK
17# define DEF_WEAK(x)
18#endif
19
20// do not include vsf_utilities.h, because type.h is actually belong to compiler layer,
21// and compiler layer can not include vsf_utilities.h directly
22//#include "utilities/vsf_utilities.h"
23#define __VSF_HEADER_ONLY_SHOW_COMPILER_INFO__
25
26// stdint.h on Windows will require _WIN64 for size_t/ptrdiff_t/intptr_t
27// so define them here temporarily, and remove after stdint.h included
28#undef __WIN_TYPES_DEF_MSC_VER
29#if defined(__WIN__) && !defined(_WIN32) && !defined(_WIN64)
30# define _WIN32 1
31# ifdef __VSF64__
32# define _WIN64 1
33# endif
34# define __WIN_TYPES_DEF_MSC_VER
35#endif
36
37// for uint8_t, uint16_t, uint32_t, uint64_t
38#include <stdint.h>
39
40#ifdef __WIN_TYPES_DEF_MSC_VER
41# undef _WIN32
42# undef _WIN64
43# undef __WIN_TYPES_DEF_MSC_VER
44#endif
45
46#ifdef __cplusplus
47extern "C" {
48#endif
49
50#ifndef PATH_MAX
51# define PATH_MAX 260
52#endif
53#ifndef NAME_MAX
54# define NAME_MAX 255
55#endif
56
57#if __IS_COMPILER_IAR__
59# pragma diag_suppress=pe301
60#endif
61
62#if defined(__SIZE_TYPE__)
63typedef __SIZE_TYPE__ size_t;
64#elif defined(__CPU_X64__) || defined(__CPU_WEBASSEMBLY__)
65# ifdef __WIN__
66typedef unsigned long long size_t;
67# else
68typedef unsigned long int size_t;
69# endif
70#else
71# ifdef __VSF64__
72typedef unsigned long long size_t;
73# else
74typedef unsigned int size_t;
75# endif
76#endif
77
78#if defined(__CPU_X64__) || defined(__CPU_WEBASSEMBLY__)
79# ifdef __WIN__
80typedef long long ssize_t;
81# else
82typedef long ssize_t;
83# endif
84#else
85# ifdef __VSF64__
86typedef long long ssize_t;
87# ifndef SSIZE_MAX
88# define SSIZE_MAX LLONG_MAX
89# endif
90# else
91typedef int ssize_t;
92# ifndef SSIZE_MAX
93# define SSIZE_MAX INT_MAX
94# endif
95# endif
96#endif
97
98typedef unsigned char u_char;
99typedef unsigned short u_short;
100typedef unsigned long u_long;
101typedef unsigned int u_int;
102typedef unsigned char unchar;
103typedef unsigned short ushort;
104typedef unsigned int uint;
105typedef unsigned long ulong;
106
111
112typedef int key_t;
113typedef int pid_t;
114typedef int id_t;
115typedef unsigned int mode_t;
116typedef unsigned short umode_t;
117typedef unsigned int nlink_t;
118typedef unsigned int uid_t;
119typedef unsigned int gid_t;
120#ifdef __VSF64__
121typedef long long off_t;
122#else
123typedef long off_t;
124#endif
125typedef long long off64_t;
126typedef unsigned long dev_t;
127typedef unsigned long ino_t;
128typedef unsigned long long ino64_t;
129typedef unsigned long long sector_t;
130typedef unsigned int blksiz_t;
131typedef unsigned long blkcnt_t;
132typedef unsigned long long blkcnt64_t;
133typedef void * timer_t;
136typedef unsigned long fsfilcnt_t;
137typedef unsigned long long fsfilcnt64_t;
138typedef signed long long ktime_t;
139
140typedef char * caddr_t;
141
142typedef enum {
146} idtype_t;
147
148#if (VSF_LINUX_USE_SIMPLE_LIBC == ENABLED) && (VSF_LINUX_USE_SIMPLE_TIME == ENABLED)
149#ifndef __TIME_T
150# define __TIME_T long long
151#endif
153
154#ifndef __TIME64_T
155# define __TIME64_T long long
156#endif
158
159#ifndef __CLOCK_T
160# define __CLOCK_T long
161#endif
163#ifndef __USECONDS_T
164# define __USECONDS_T unsigned long
165#endif
167
168typedef enum {
170#define CLOCK_REALTIME CLOCK_REALTIME
172#define CLOCK_MONOTONIC CLOCK_MONOTONIC
173} clockid_t;
174
175#define CLOCKS_PER_SEC ((clock_t)1000000)
176#endif
177
178#if __IS_COMPILER_IAR__
180//# pragma diag_suppress=pe301
181#endif
182
183#ifdef __cplusplus
184}
185#endif
186
187#endif
__CLOCK_T clock_t
Definition types.h:162
uint32_t u_int32_t
Definition types.h:109
idtype_t
Definition types.h:142
@ P_PGID
Definition types.h:144
@ P_ALL
Definition types.h:143
@ P_PID
Definition types.h:145
unsigned long long ino64_t
Definition types.h:128
#define __CLOCK_T
Definition types.h:160
int pid_t
Definition types.h:113
int id_t
Definition types.h:114
clockid_t
Definition types.h:168
blkcnt_t fsblkcnt_t
Definition types.h:134
void * timer_t
Definition types.h:133
__TIME64_T time64_t
Definition types.h:157
#define __TIME64_T
Definition types.h:155
unsigned int blksiz_t
Definition types.h:130
__USECONDS_T useconds_t
Definition types.h:166
uint8_t u_int8_t
Definition types.h:107
uint16_t u_int16_t
Definition types.h:108
#define __TIME_T
Definition types.h:150
unsigned long long blkcnt64_t
Definition types.h:132
blkcnt64_t fsblkcnt64_t
Definition types.h:135
unsigned int uid_t
Definition types.h:118
#define CLOCK_MONOTONIC
Definition types.h:172
unsigned long ulong
Definition types.h:105
unsigned int gid_t
Definition types.h:119
unsigned int size_t
Definition types.h:74
#define __USECONDS_T
Definition types.h:164
unsigned long u_long
Definition types.h:100
unsigned int uint
Definition types.h:104
#define CLOCK_REALTIME
Definition types.h:170
unsigned long long fsfilcnt64_t
Definition types.h:137
char * caddr_t
Definition types.h:140
signed long long ktime_t
Definition types.h:138
int key_t
Definition types.h:112
unsigned short umode_t
Definition types.h:116
unsigned short u_short
Definition types.h:99
long long off64_t
Definition types.h:125
unsigned long blkcnt_t
Definition types.h:131
unsigned long fsfilcnt_t
Definition types.h:136
unsigned short ushort
Definition types.h:103
__TIME_T time_t
Definition types.h:152
unsigned int u_int
Definition types.h:101
unsigned long dev_t
Definition types.h:126
unsigned long long sector_t
Definition types.h:129
unsigned int mode_t
Definition types.h:115
unsigned int nlink_t
Definition types.h:117
unsigned char u_char
Definition types.h:98
unsigned char unchar
Definition types.h:102
int ssize_t
Definition types.h:91
long off_t
Definition types.h:123
unsigned long ino_t
Definition types.h:127
uint64_t u_int64_t
Definition types.h:110
unsigned short uint16_t
Definition stdint.h:7
unsigned uint32_t
Definition stdint.h:9
unsigned long long uint64_t
Definition stdint.h:11
unsigned char uint8_t
Definition stdint.h:5
Generated from commit: vsfteam/vsf@ecaa303