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