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#ifdef __cplusplus
27extern "C" {
28#endif
29
30#ifndef PATH_MAX
31# define PATH_MAX 260
32#endif
33
34#if __IS_COMPILER_IAR__
36# pragma diag_suppress=pe301
37#endif
38
39#if defined(__SIZE_TYPE__)
40typedef __SIZE_TYPE__ size_t;
41#elif defined(__CPU_X64__) || defined(__CPU_WEBASSEMBLY__)
42# ifdef __WIN__
43typedef unsigned long long size_t;
44# else
45typedef unsigned long int size_t;
46# endif
47#else
48# ifdef __VSF64__
49typedef unsigned long long size_t;
50# else
51typedef unsigned int size_t;
52# endif
53#endif
54
55#if defined(__CPU_X64__) || defined(__CPU_WEBASSEMBLY__)
56# ifdef __WIN__
57typedef long long ssize_t;
58# else
59typedef long ssize_t;
60# endif
61#else
62# ifdef __VSF64__
63typedef long long ssize_t;
64# ifndef SSIZE_MAX
65# define SSIZE_MAX LLONG_MAX
66# endif
67# else
68typedef int ssize_t;
69# ifndef SSIZE_MAX
70# define SSIZE_MAX INT_MAX
71# endif
72# endif
73#endif
74
75typedef unsigned char u_char;
76typedef unsigned short u_short;
77typedef unsigned long u_long;
78typedef unsigned int u_int;
79typedef unsigned char unchar;
80typedef unsigned short ushort;
81typedef unsigned int uint;
82typedef unsigned long ulong;
83
84typedef int key_t;
85typedef int pid_t;
86typedef int id_t;
87typedef unsigned int mode_t;
88typedef unsigned short umode_t;
89typedef unsigned int nlink_t;
90typedef unsigned int uid_t;
91typedef unsigned int gid_t;
92#ifdef __VSF64__
93typedef long long off_t;
94#else
95typedef long off_t;
96#endif
97typedef long long off64_t;
98typedef unsigned long dev_t;
99typedef unsigned long ino_t;
100typedef unsigned long long ino64_t;
101typedef unsigned int blksiz_t;
102typedef unsigned long blkcnt_t;
103typedef unsigned long long blkcnt64_t;
104typedef void * timer_t;
107typedef unsigned long fsfilcnt_t;
108typedef unsigned long long fsfilcnt64_t;
109
110typedef char * caddr_t;
111
112typedef enum {
116} idtype_t;
117
118#if (VSF_LINUX_USE_SIMPLE_LIBC == ENABLED) && (VSF_LINUX_USE_SIMPLE_TIME == ENABLED)
119#ifndef __TIME_T
120# define __TIME_T long long
121#endif
123
124#ifndef __TIME64_T
125# define __TIME64_T long long
126#endif
128
129#ifndef __CLOCK_T
130# define __CLOCK_T long
131#endif
133#ifndef __USECONDS_T
134# define __USECONDS_T unsigned long
135#endif
137
138typedef enum {
140#define CLOCK_REALTIME CLOCK_REALTIME
142#define CLOCK_MONOTONIC CLOCK_MONOTONIC
143} clockid_t;
144
145#define CLOCKS_PER_SEC ((clock_t)1000000)
146#endif
147
148#if __IS_COMPILER_IAR__
150//# pragma diag_suppress=pe301
151#endif
152
153#ifdef __cplusplus
154}
155#endif
156
157#endif
__CLOCK_T clock_t
Definition types.h:132
idtype_t
Definition types.h:112
@ P_PGID
Definition types.h:114
@ P_ALL
Definition types.h:113
@ P_PID
Definition types.h:115
unsigned long long ino64_t
Definition types.h:100
#define __CLOCK_T
Definition types.h:130
int pid_t
Definition types.h:85
int id_t
Definition types.h:86
clockid_t
Definition types.h:138
blkcnt_t fsblkcnt_t
Definition types.h:105
void * timer_t
Definition types.h:104
__TIME64_T time64_t
Definition types.h:127
#define __TIME64_T
Definition types.h:125
unsigned int blksiz_t
Definition types.h:101
__USECONDS_T useconds_t
Definition types.h:136
#define __TIME_T
Definition types.h:120
unsigned long long blkcnt64_t
Definition types.h:103
blkcnt64_t fsblkcnt64_t
Definition types.h:106
unsigned int uid_t
Definition types.h:90
#define CLOCK_MONOTONIC
Definition types.h:142
unsigned long ulong
Definition types.h:82
unsigned int gid_t
Definition types.h:91
unsigned int size_t
Definition types.h:51
#define __USECONDS_T
Definition types.h:134
unsigned long u_long
Definition types.h:77
unsigned int uint
Definition types.h:81
#define CLOCK_REALTIME
Definition types.h:140
unsigned long long fsfilcnt64_t
Definition types.h:108
char * caddr_t
Definition types.h:110
int key_t
Definition types.h:84
unsigned short umode_t
Definition types.h:88
unsigned short u_short
Definition types.h:76
long long off64_t
Definition types.h:97
unsigned long blkcnt_t
Definition types.h:102
unsigned long fsfilcnt_t
Definition types.h:107
unsigned short ushort
Definition types.h:80
__TIME_T time_t
Definition types.h:122
unsigned int u_int
Definition types.h:78
unsigned long dev_t
Definition types.h:98
unsigned int mode_t
Definition types.h:87
unsigned int nlink_t
Definition types.h:89
unsigned char u_char
Definition types.h:75
unsigned char unchar
Definition types.h:79
int ssize_t
Definition types.h:68
long off_t
Definition types.h:95
unsigned long ino_t
Definition types.h:99