2007-09-11 Mark Probst <mark.probst@gmail.com>
[mono.git] / mono / metadata / domain-internals.h
index 537d5a4fdbe99cb70cb0d39dec0935fa82ce27d2..bdbb7517c63f35ff30346b7b5b5f4b79cd23decb 100644 (file)
@@ -39,7 +39,26 @@ typedef struct {
        MonoArray *configuration_bytes;
 } MonoAppDomainSetup;
 
-typedef GArray MonoJitInfoTable;
+typedef struct _MonoJitInfoTable MonoJitInfoTable;
+typedef struct _MonoJitInfoTableChunk MonoJitInfoTableChunk;
+
+#define MONO_JIT_INFO_TABLE_CHUNK_SIZE         64
+
+struct _MonoJitInfoTableChunk
+{
+       int                    refcount;
+       volatile int           num_elements;
+       volatile gint8        *last_code_end;
+       MonoJitInfo * volatile data [MONO_JIT_INFO_TABLE_CHUNK_SIZE];
+};
+
+struct _MonoJitInfoTable
+{
+       int                     num_chunks;
+       MonoJitInfoTableChunk  *chunks [MONO_ZERO_LEN_ARRAY];
+};
+
+typedef GArray MonoAotModuleInfoTable;
 
 typedef struct {
        guint32  flags;
@@ -127,6 +146,7 @@ struct _MonoDomain {
        guint32            state;
        /* Needed by Thread:GetDomainID() */
        gint32             domain_id;
+       gint32             shadow_serial;
        GSList             *domain_assemblies;
        MonoAssembly       *entry_assembly;
        char               *friendly_name;
@@ -136,9 +156,12 @@ struct _MonoDomain {
        MonoInternalHashTable jit_code_hash;
        /* maps MonoMethod -> MonoJitDynamicMethodInfo */
        GHashTable         *dynamic_code_hash;
-       MonoJitInfoTable   *jit_info_table;
+       MonoJitInfoTable * 
+         volatile          jit_info_table;
        /* Used when loading assemblies */
        gchar **search_path;
+       gchar *private_bin_path;
+       
        /* Used by remoting proxies */
        MonoMethod         *create_proxy_for_type_method;
        MonoMethod         *private_invoke_method;