Merge pull request #2274 from esdrubal/udpclientreceive
[mono.git] / mono / metadata / marshal.h
index 40a23f7e102b1749224d0d97435a0d6470513130..494ff3d435ef5dbdbc99385fa2f90eea8ee6f162 100644 (file)
@@ -115,7 +115,10 @@ typedef enum {
        WRAPPER_SUBTYPE_GENERIC_ARRAY_HELPER,
        /* Subtypes of MONO_WRAPPER_DELEGATE_INVOKE */
        WRAPPER_SUBTYPE_DELEGATE_INVOKE_VIRTUAL,
-       WRAPPER_SUBTYPE_DELEGATE_INVOKE_BOUND
+       WRAPPER_SUBTYPE_DELEGATE_INVOKE_BOUND,
+       /* Subtypes of MONO_WRAPPER_UNKNOWN */
+       WRAPPER_SUBTYPE_GSHAREDVT_IN_SIG,
+       WRAPPER_SUBTYPE_GSHAREDVT_OUT_SIG,
 } WrapperSubtype;
 
 typedef struct {
@@ -139,7 +142,6 @@ typedef struct {
        MonoMethod *method;
        /* For WRAPPER_SUBTYPE_RUNTIME_INVOKE_NORMAL */
        MonoMethodSignature *sig;
-       gboolean pass_rgctx;
 } RuntimeInvokeWrapperInfo;
 
 typedef struct {
@@ -183,6 +185,10 @@ typedef struct {
        MonoMethod *method;
 } RemotingWrapperInfo;
 
+typedef struct {
+       MonoMethodSignature *sig;
+} GsharedvtWrapperInfo;
+
 /*
  * This structure contains additional information to uniquely identify a given wrapper
  * method. It can be retrieved by mono_marshal_get_wrapper_info () for certain types
@@ -221,6 +227,8 @@ typedef struct {
                UnboxWrapperInfo unbox;
                /* MONO_WRAPPER_REMOTING_INVOKE/MONO_WRAPPER_REMOTING_INVOKE_WITH_CHECK/MONO_WRAPPER_XDOMAIN_INVOKE */
                RemotingWrapperInfo remoting;
+               /* GSHAREDVT_IN_SIG/GSHAREDVT_OUT_SIG */
+               GsharedvtWrapperInfo gsharedvt;
        } d;
 } WrapperInfo;
 
@@ -338,11 +346,14 @@ MonoMethod *
 mono_marshal_get_delegate_invoke_internal (MonoMethod *method, gboolean callvirt, gboolean static_method_with_first_arg_bound, MonoMethod *target_method);
 
 MonoMethod *
-mono_marshal_get_runtime_invoke (MonoMethod *method, gboolean is_virtual, gboolean pass_rgctx);
+mono_marshal_get_runtime_invoke (MonoMethod *method, gboolean is_virtual);
 
 MonoMethod*
 mono_marshal_get_runtime_invoke_dynamic (void);
 
+MonoMethod *
+mono_marshal_get_runtime_invoke_for_sig (MonoMethodSignature *sig);
+
 MonoMethodSignature*
 mono_marshal_get_string_ctor_signature (MonoMethod *method);