Making sure mono_marshal_free is used instead of g_free in mono_string_builder_to_utf8
[mono.git] / mono / mini / mini-amd64-gsharedvt.h
1 /*
2  * mini-exceptions-native-unwinder.c: libcorkscrew-based native unwinder
3  *
4  * Authors:
5  *   Zoltan Varga <vargaz@gmail.com>
6  *   Rodrigo Kumpera <kumpera@gmail.com>
7  *   Andi McClure <andi.mcclure@xamarin.com>
8  *
9  * Copyright 2015 Xamarin, Inc (http://www.xamarin.com)
10  * Licensed under the MIT license. See LICENSE file in the project root for full license information.
11  */
12 #ifndef MINI_AMD64_GSHAREDVT_H
13 #define MINI_AMD64_GSHAREDVT_H
14
15 typedef enum {
16         GSHAREDVT_ARG_NONE = 0,
17         GSHAREDVT_ARG_BYVAL_TO_BYREF,
18         GSHAREDVT_ARG_BYREF_TO_BYVAL,
19 } GSharedVtArgMarshal;
20
21 typedef enum {
22         GSHAREDVT_RET_NONE = 0,
23         GSHAREDVT_RET_I1,      // 1 byte integer
24         GSHAREDVT_RET_U1,      // 1 byte unsigned
25         GSHAREDVT_RET_I2,      // 2 byte integer
26         GSHAREDVT_RET_U2,      // 2 byte unsigned
27         GSHAREDVT_RET_I4,      // 4 byte integer
28         GSHAREDVT_RET_U4,      // 4 byte unsigned
29         GSHAREDVT_RET_I8,      // 8 byte integer
30         GSHAREDVT_RET_IREGS_1, // Load in first return register
31         GSHAREDVT_RET_R8,     // Double
32         GSHAREDVT_RET_NUM,
33 } GSharedVtRetMarshal;
34
35 static const char* ret_marshal_name[] = {
36         "GSHAREDVT_RET_NONE",
37         "GSHAREDVT_RET_I1",
38         "GSHAREDVT_RET_U1",
39         "GSHAREDVT_RET_I2",
40         "GSHAREDVT_RET_U2",
41         "GSHAREDVT_RET_I4",
42         "GSHAREDVT_RET_U4",
43         "GSHAREDVT_RET_I8",
44         "GSHAREDVT_RET_IREGS_1",
45         "GSHAREDVT_RET_R8",
46         "GSHAREDVT_RET_NUM",
47 };
48
49 #ifdef DEBUG_AMD64_GSHAREDVT
50 #define DEBUG_AMD64_GSHAREDVT_PRINT printf
51 #else
52 #define DEBUG_AMD64_GSHAREDVT_PRINT(...)
53 #endif
54
55 #endif /* MINI_AMD64_GSHAREDVT_H */