+#define MONO_PUBLIC_KEY_TOKEN_LENGTH 17
+
+#define MONO_PROCESSOR_ARCHITECTURE_NONE 0
+#define MONO_PROCESSOR_ARCHITECTURE_MSIL 1
+#define MONO_PROCESSOR_ARCHITECTURE_X86 2
+#define MONO_PROCESSOR_ARCHITECTURE_IA64 3
+#define MONO_PROCESSOR_ARCHITECTURE_AMD64 4
+
+struct _MonoAssemblyName {
+ const char *name;
+ const char *culture;
+ const char *hash_value;
+ const mono_byte* public_key;
+ // string of 16 hex chars + 1 NULL
+ mono_byte public_key_token [MONO_PUBLIC_KEY_TOKEN_LENGTH];
+ uint32_t hash_alg;
+ uint32_t hash_len;
+ uint32_t flags;
+ uint16_t major, minor, build, revision, arch;
+};
+
+struct MonoTypeNameParse {
+ char *name_space;
+ char *name;
+ MonoAssemblyName assembly;
+ GList *modifiers; /* 0 -> byref, -1 -> pointer, > 0 -> array rank */
+ GPtrArray *type_arguments;
+ GList *nested;
+};
+