0
|
1 /*
|
|
2
|
|
3 Package: dyncall
|
|
4 Library: test
|
505
|
5 File: test/callback_suite/globals.h
|
0
|
6 Description:
|
|
7 License:
|
|
8
|
505
|
9 Copyright (c) 2011-2022 Daniel Adler <dadler@uni-goettingen.de>,
|
0
|
10 Tassilo Philipp <tphilipp@potion-studios.com>
|
|
11
|
|
12 Permission to use, copy, modify, and distribute this software for any
|
|
13 purpose with or without fee is hereby granted, provided that the above
|
|
14 copyright notice and this permission notice appear in all copies.
|
|
15
|
|
16 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
17 WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
18 MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
19 ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
20 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
21 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
22 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
23
|
|
24 */
|
|
25
|
|
26 #include "dyncall_value.h"
|
487
|
27
|
|
28
|
|
29 #define DEF_NON_VOID_TYPES \
|
|
30 X(B,DCbool) \
|
|
31 X(c,DCchar) X(C,DCuchar) X(s,DCshort) X(S,DCushort) \
|
|
32 X(i,DCint) X(I,DCuint) X(j,DClong) X(J,DCulong) \
|
|
33 X(l,DClonglong) X(L,DCulonglong) \
|
|
34 X(f,DCfloat) X(d,DCdouble) \
|
|
35 X(p,DCpointer) X(Z,DCpointer)
|
|
36
|
|
37 #define DEF_TYPES \
|
|
38 X(v,DCvoid) \
|
|
39 DEF_NON_VOID_TYPES
|
|
40
|
|
41
|
|
42 typedef struct DCValueSet_
|
|
43 {
|
|
44 #define X(CH,T) T CH;
|
|
45 DEF_NON_VOID_TYPES
|
|
46 #undef X
|
|
47 } DCValueSet;
|
505
|
48 extern DCValueSet* ValueMatrix;
|
|
49
|
|
50 /* arguments filled-in by callback handlers, and return value */
|
|
51 extern DCValue* Args;
|
|
52 extern DCValue Result;
|
487
|
53
|
0
|
54
|
505
|
55 typedef void (*funptr)(void*);
|
0
|
56
|
505
|
57 extern funptr G_funtab[];
|
|
58 extern const char * G_sigtab[];
|
|
59 extern int G_ncases;
|
|
60 extern int G_maxargs;
|
0
|
61
|
505
|
62 void init_test_data();
|
|
63 void deinit_test_data();
|
0
|
64
|
|
65 /* function of type and position */
|
505
|
66 void get_reference_arg(DCValue* output, char type, int argpos);
|
0
|
67 /* function of type (position = -1) */
|
505
|
68 void get_reference_result(DCValue* output, char type);
|
0
|
69
|
|
70
|