move the "meat" into the wiki, this file just contains pointers now
[ghc.git] / includes / Dotnet.h
1 /*
2 * Types and definitions to support GHC .NET interop.
3 *
4 * (c) 2003, sof.
5 *
6 */
7 #ifndef __DOTNET_H__
8 #define __DOTNET_H__
9
10 typedef enum {
11 Dotnet_Byte = 0,
12 Dotnet_Boolean,
13 Dotnet_Char,
14 Dotnet_Double,
15 Dotnet_Float,
16 Dotnet_Int,
17 Dotnet_Int8,
18 Dotnet_Int16,
19 Dotnet_Int32,
20 Dotnet_Int64,
21 Dotnet_Word8,
22 Dotnet_Word16,
23 Dotnet_Word32,
24 Dotnet_Word64,
25 Dotnet_Ptr,
26 Dotnet_Unit,
27 Dotnet_Object,
28 Dotnet_String
29 } DotnetType;
30
31 typedef union {
32 unsigned char arg_byte;
33 unsigned int arg_bool;
34 unsigned char arg_char;
35 int arg_int;
36 signed char arg_int8;
37 signed short arg_int16;
38 signed int arg_int32;
39 #if defined(_MSC_VER)
40 signed __int64 arg_int64;
41 #else
42 signed long long arg_int64;
43 #endif
44 float arg_float;
45 double arg_double;
46 unsigned char arg_word8;
47 unsigned short arg_word16;
48 unsigned int arg_word32;
49 #if defined(_MSC_VER)
50 unsigned __int64 arg_word64;
51 #else
52 unsigned long long arg_word64;
53 #endif
54 void* arg_ptr;
55 void* arg_obj;
56 void* arg_str;
57 } DotnetArgVal;
58
59 typedef struct {
60 DotnetArgVal arg;
61 DotnetType arg_type;
62 } DotnetArg;
63
64 #endif /* __DOTNET_H__ */