2 // Mono runtime native structs surfaced to managed code.
5 // Aleksey Kliger <aleksey@xamarin.com>
6 // Rodrigo Kumpera <kumpera@xamarin.com>
8 // Copyright 2016 Dot net foundation.
9 // Licensed under the MIT license. See LICENSE file in the project root for full license information.
13 using System.Runtime.InteropServices;
16 internal class RuntimeStructs {
17 // class-internals.h MonoRemoteClass
18 [StructLayout(LayoutKind.Sequential)]
19 internal unsafe struct RemoteClass {
20 internal IntPtr default_vtable;
21 internal IntPtr xdomain_vtable;
22 internal MonoClass* proxy_class;
23 internal IntPtr proxy_class_name;
24 internal uint interface_count;
25 // FIXME: How to represent variable-length array struct member?
26 // MonoClass* interfaces [];
29 internal struct MonoClass {
32 // class-internals.h MonoGenericParamInfo
33 internal unsafe struct GenericParamInfo {
34 internal MonoClass* pklass;
36 internal ushort flags;
38 internal MonoClass** constraints; /* NULL terminated */
42 internal unsafe struct GPtrArray {
43 internal IntPtr* data;
48 //Maps to metadata-internals.h:: MonoAssemblyName
49 internal unsafe struct MonoAssemblyName
51 const int MONO_PUBLIC_KEY_TOKEN_LENGTH = 17;
54 internal IntPtr culture;
55 internal IntPtr hash_value;
56 internal IntPtr public_key;
57 internal fixed byte public_key_token [MONO_PUBLIC_KEY_TOKEN_LENGTH];
58 internal uint hash_alg;
59 internal uint hash_len;
61 internal ushort major, minor, build, revision;