-
Notifications
You must be signed in to change notification settings - Fork 149
/
Copy pathglibconfig.bi
311 lines (274 loc) · 9.26 KB
/
glibconfig.bi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
'' FreeBASIC binding for glib-2.44.1
''
'' based on the C header files:
'' GLIB - Library of useful routines for C programming
'' Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
''
'' This library is free software; you can redistribute it and/or
'' modify it under the terms of the GNU Lesser General Public
'' License as published by the Free Software Foundation; either
'' version 2 of the License, or (at your option) any later version.
''
'' This library is distributed in the hope that it will be useful,
'' but WITHOUT ANY WARRANTY; without even the implied warranty of
'' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
'' Lesser General Public License for more details.
''
'' You should have received a copy of the GNU Lesser General Public
'' License along with this library; if not, see <http://www.gnu.org/licenses/>.
''
'' translated to FreeBASIC by:
'' (C) 2011, 2012 Thomas[ dot ]Freiherr[ at ]gmx[ dot ]net
'' Copyright © 2015 FreeBASIC development team
#pragma once
#if defined(__FB_64BIT__) and defined(__FB_UNIX__)
#include once "crt/long.bi"
#endif
#include once "crt/limits.bi"
#define __GLIBCONFIG_H__
#define GLIB_HAVE_ALLOCA_H
#define GLIB_USING_SYSTEM_PRINTF
#define G_MINFLOAT FLT_MIN
#define G_MAXFLOAT FLT_MAX
#define G_MINDOUBLE DBL_MIN
#define G_MAXDOUBLE DBL_MAX
#define G_MINSHORT SHRT_MIN
#define G_MAXSHORT SHRT_MAX
#define G_MAXUSHORT USHRT_MAX
#define G_MININT INT_MIN
#define G_MAXINT INT_MAX
#define G_MAXUINT UINT_MAX
#define G_MINLONG LONG_MIN
#define G_MAXLONG LONG_MAX
#define G_MAXULONG ULONG_MAX
type gint8 as byte
type guint8 as ubyte
type gint16 as short
type guint16 as ushort
#define G_GINT16_MODIFIER "h"
#define G_GINT16_FORMAT "hi"
#define G_GUINT16_FORMAT "hu"
type gint32 as long
type guint32 as ulong
#define G_GINT32_MODIFIER ""
#define G_GINT32_FORMAT "i"
#define G_GUINT32_FORMAT "u"
const G_HAVE_GINT64 = 1
#if (not defined(__FB_64BIT__)) or (defined(__FB_WIN32__) and defined(__FB_64BIT__))
type gint64 as longint
type guint64 as ulongint
#define G_GINT64_CONSTANT(val) val##LL
#define G_GUINT64_CONSTANT(val) val##ULL
#endif
#if (not defined(__FB_64BIT__)) and defined(__FB_UNIX__)
#define G_GINT64_MODIFIER "ll"
#define G_GINT64_FORMAT "lli"
#define G_GUINT64_FORMAT "llu"
#elseif defined(__FB_WIN32__)
#define G_GINT64_MODIFIER "I64"
#define G_GINT64_FORMAT "I64i"
#define G_GUINT64_FORMAT "I64u"
#endif
#ifndef __FB_64BIT__
const GLIB_SIZEOF_VOID_P = 4
#elseif defined(__FB_WIN32__) and defined(__FB_64BIT__)
const GLIB_SIZEOF_VOID_P = 8
#endif
#if (not defined(__FB_64BIT__)) or (defined(__FB_WIN32__) and defined(__FB_64BIT__))
const GLIB_SIZEOF_LONG = 4
#endif
#ifndef __FB_64BIT__
const GLIB_SIZEOF_SIZE_T = 4
#ifdef __FB_UNIX__
const GLIB_SIZEOF_SSIZE_T = 4
#endif
type gssize as long
type gsize as ulong
#define G_GSIZE_MODIFIER ""
#define G_GSSIZE_MODIFIER ""
#define G_GSIZE_FORMAT "u"
#define G_GSSIZE_FORMAT "i"
#define G_MAXSIZE G_MAXUINT
#define G_MINSSIZE G_MININT
#define G_MAXSSIZE G_MAXINT
#elseif defined(__FB_64BIT__) and defined(__FB_UNIX__)
type gint64 as clong
type guint64 as culong
#define G_GINT64_CONSTANT(val) val##L
#define G_GUINT64_CONSTANT(val) val##UL
#define G_GINT64_MODIFIER "l"
#define G_GINT64_FORMAT "li"
#define G_GUINT64_FORMAT "lu"
const GLIB_SIZEOF_VOID_P = 8
const GLIB_SIZEOF_LONG = 8
#endif
#ifdef __FB_64BIT__
const GLIB_SIZEOF_SIZE_T = 8
#endif
#if defined(__FB_64BIT__) and defined(__FB_UNIX__)
const GLIB_SIZEOF_SSIZE_T = 8
type gssize as clong
type gsize as culong
#define G_GSIZE_MODIFIER "l"
#define G_GSSIZE_MODIFIER "l"
#define G_GSIZE_FORMAT "lu"
#define G_GSSIZE_FORMAT "li"
#define G_MAXSIZE G_MAXULONG
#define G_MINSSIZE G_MINLONG
#define G_MAXSSIZE G_MAXLONG
#elseif defined(__FB_WIN32__) and defined(__FB_64BIT__)
type gssize as longint
type gsize as ulongint
#define G_GSIZE_MODIFIER "I64"
#define G_GSSIZE_MODIFIER "I64"
#define G_GSIZE_FORMAT "I64u"
#define G_GSSIZE_FORMAT "I64d"
#define G_MAXSIZE G_MAXUINT64
#define G_MINSSIZE G_MININT64
#define G_MAXSSIZE G_MAXINT64
#endif
type goffset as gint64
#define G_MINOFFSET G_MININT64
#define G_MAXOFFSET G_MAXINT64
#define G_GOFFSET_MODIFIER G_GINT64_MODIFIER
#define G_GOFFSET_FORMAT G_GINT64_FORMAT
#define G_GOFFSET_CONSTANT(val) G_GINT64_CONSTANT(val)
#if (not defined(__FB_64BIT__)) and defined(__FB_UNIX__)
#define GPOINTER_TO_INT(p) cast(gint, cast(gint, (p)))
#define GPOINTER_TO_UINT(p) cast(guint, cast(guint, (p)))
#define GINT_TO_POINTER(i) cast(gpointer, cast(gint, (i)))
#define GUINT_TO_POINTER(u) cast(gpointer, cast(guint, (u)))
#elseif defined(__FB_WIN32__) and (not defined(__FB_64BIT__))
#define GPOINTER_TO_INT(p) cast(gint, (p))
#define GPOINTER_TO_UINT(p) cast(guint, (p))
#define GINT_TO_POINTER(i) cast(gpointer, (i))
#define GUINT_TO_POINTER(u) cast(gpointer, (u))
#endif
#ifndef __FB_64BIT__
type gintptr as long
type guintptr as ulong
#define G_GINTPTR_MODIFIER ""
#define G_GINTPTR_FORMAT "i"
#define G_GUINTPTR_FORMAT "u"
#elseif defined(__FB_64BIT__) and defined(__FB_UNIX__)
#define GPOINTER_TO_INT(p) cast(gint, cast(glong, (p)))
#define GPOINTER_TO_UINT(p) cast(guint, cast(gulong, (p)))
#define GINT_TO_POINTER(i) cast(gpointer, cast(glong, (i)))
#define GUINT_TO_POINTER(u) cast(gpointer, cast(gulong, (u)))
type gintptr as clong
type guintptr as culong
#define G_GINTPTR_MODIFIER "l"
#define G_GINTPTR_FORMAT "li"
#define G_GUINTPTR_FORMAT "lu"
#else
#define GPOINTER_TO_INT(p) cast(gint, cast(gint64, (p)))
#define GPOINTER_TO_UINT(p) cast(guint, cast(guint64, (p)))
#define GINT_TO_POINTER(i) cast(gpointer, cast(gint64, (i)))
#define GUINT_TO_POINTER(u) cast(gpointer, cast(guint64, (u)))
type gintptr as longint
type guintptr as ulongint
#define G_GINTPTR_MODIFIER "I64"
#define G_GINTPTR_FORMAT "I64i"
#define G_GUINTPTR_FORMAT "I64u"
#endif
#define g_memmove(dest, src, len) scope : memmove((dest), (src), (len)) : end scope
const GLIB_MAJOR_VERSION = 2
const GLIB_MINOR_VERSION = 44
const GLIB_MICRO_VERSION = 1
#ifdef __FB_UNIX__
#define G_OS_UNIX
#else
#define G_OS_WIN32
#endif
#if defined(__FB_WIN32__) or defined(__FB_CYGWIN__)
#define G_PLATFORM_WIN32
#endif
#ifdef __FB_CYGWIN__
#define G_WITH_CYGWIN
#endif
#define G_VA_COPY va_copy
#if defined(__FB_64BIT__) and defined(__FB_UNIX__)
const G_VA_COPY_AS_ARRAY = 1
#endif
const G_HAVE_ISO_VARARGS = 1
const G_HAVE_GNUC_VARARGS = 1
const G_HAVE_GROWING_STACK = 0
#ifdef __FB_UNIX__
const G_HAVE_GNUC_VISIBILITY = 1
#else
#define G_GNUC_INTERNAL
#endif
#define G_THREADS_ENABLED
#ifdef __FB_UNIX__
#define G_THREADS_IMPL_POSIX
#else
#define G_THREADS_IMPL_WIN32
#endif
#define G_ATOMIC_LOCK_FREE
#define GINT16_TO_LE(val) cast(gint16, (val))
#define GUINT16_TO_LE(val) cast(guint16, (val))
#define GINT16_TO_BE(val) cast(gint16, GUINT16_SWAP_LE_BE(val))
#define GUINT16_TO_BE(val) GUINT16_SWAP_LE_BE(val)
#define GINT32_TO_LE(val) cast(gint32, (val))
#define GUINT32_TO_LE(val) cast(guint32, (val))
#define GINT32_TO_BE(val) cast(gint32, GUINT32_SWAP_LE_BE(val))
#define GUINT32_TO_BE(val) GUINT32_SWAP_LE_BE(val)
#define GINT64_TO_LE(val) cast(gint64, (val))
#define GUINT64_TO_LE(val) cast(guint64, (val))
#define GINT64_TO_BE(val) cast(gint64, GUINT64_SWAP_LE_BE(val))
#define GUINT64_TO_BE(val) GUINT64_SWAP_LE_BE(val)
#if defined(__FB_64BIT__) and defined(__FB_UNIX__)
#define GLONG_TO_LE(val) cast(glong, GINT64_TO_LE(val))
#define GULONG_TO_LE(val) cast(gulong, GUINT64_TO_LE(val))
#define GLONG_TO_BE(val) cast(glong, GINT64_TO_BE(val))
#define GULONG_TO_BE(val) cast(gulong, GUINT64_TO_BE(val))
#else
#define GLONG_TO_LE(val) cast(glong, GINT32_TO_LE(val))
#define GULONG_TO_LE(val) cast(gulong, GUINT32_TO_LE(val))
#define GLONG_TO_BE(val) cast(glong, GINT32_TO_BE(val))
#define GULONG_TO_BE(val) cast(gulong, GUINT32_TO_BE(val))
#endif
#define GINT_TO_LE(val) cast(gint, GINT32_TO_LE(val))
#define GUINT_TO_LE(val) cast(guint, GUINT32_TO_LE(val))
#define GINT_TO_BE(val) cast(gint, GINT32_TO_BE(val))
#define GUINT_TO_BE(val) cast(guint, GUINT32_TO_BE(val))
#ifdef __FB_64BIT__
#define GSIZE_TO_LE(val) cast(gsize, GUINT64_TO_LE(val))
#define GSSIZE_TO_LE(val) cast(gssize, GINT64_TO_LE(val))
#define GSIZE_TO_BE(val) cast(gsize, GUINT64_TO_BE(val))
#define GSSIZE_TO_BE(val) cast(gssize, GINT64_TO_BE(val))
#else
#define GSIZE_TO_LE(val) cast(gsize, GUINT32_TO_LE(val))
#define GSSIZE_TO_LE(val) cast(gssize, GINT32_TO_LE(val))
#define GSIZE_TO_BE(val) cast(gsize, GUINT32_TO_BE(val))
#define GSSIZE_TO_BE(val) cast(gssize, GINT32_TO_BE(val))
#endif
#define GLIB_SYSDEF_POLLIN =1
#define GLIB_SYSDEF_POLLOUT =4
#define GLIB_SYSDEF_POLLPRI =2
#define GLIB_SYSDEF_POLLHUP =16
#define GLIB_SYSDEF_POLLERR =8
#define GLIB_SYSDEF_POLLNVAL =32
#if defined(__FB_WIN32__) or defined(__FB_CYGWIN__)
#define G_MODULE_SUFFIX "dll"
type GPid as any ptr
#else
#define G_MODULE_SUFFIX "so"
type GPid as long
#endif
const GLIB_SYSDEF_AF_UNIX = 1
const GLIB_SYSDEF_AF_INET = 2
#ifdef __FB_LINUX__
const GLIB_SYSDEF_AF_INET6 = 10
#elseif defined(__FB_FREEBSD__)
const GLIB_SYSDEF_AF_INET6 = 28
#elseif defined(__FB_OPENBSD__) or defined(__FB_NETBSD__)
const GLIB_SYSDEF_AF_INET6 = 24
#elseif defined(__FB_DARWIN__)
const GLIB_SYSDEF_AF_INET6 = 30
#else
const GLIB_SYSDEF_AF_INET6 = 23
#endif
const GLIB_SYSDEF_MSG_OOB = 1
const GLIB_SYSDEF_MSG_PEEK = 2
const GLIB_SYSDEF_MSG_DONTROUTE = 4