dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Dotgnu-pnet-commits] CVS: pnet/include il_engine.h,1.26,1.27


From: Gopal.V <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnet/include il_engine.h,1.26,1.27
Date: Sat, 16 Nov 2002 14:00:42 -0500

Update of /cvsroot/dotgnu-pnet/pnet/include
In directory subversions:/tmp/cvs-serv1970/include

Modified Files:
        il_engine.h 
Log Message:
enable addition of runtime internal calls


Index: il_engine.h
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/include/il_engine.h,v
retrieving revision 1.26
retrieving revision 1.27
diff -C2 -r1.26 -r1.27
*** il_engine.h 12 Aug 2002 09:50:11 -0000      1.26
--- il_engine.h 16 Nov 2002 19:00:39 -0000      1.27
***************
*** 87,90 ****
--- 87,140 ----
  
  /*
+  * Structure of an "internalcall" method table entry.
+  */
+ typedef struct
+ {
+       const char         *methodName;
+       const char         *signature;
+       void           *func;
+ #if !defined(HAVE_LIBFFI)
+       void           *marshal;
+ #endif
+ 
+ } ILMethodTableEntry;
+ 
+ /*
+  * Structure that keeps track of a process local internalcall
+  * NOTE: Keep in sync with int_table.c declaration
+  */
+ typedef struct _tagILEngineInternalClassInfo ILEngineInternalClassInfo;
+ struct _tagILEngineInternalClassInfo
+ {
+       char *name;
+       char *namespace;
+       ILMethodTableEntry *entry;
+ };
+ 
+ 
+ /*
+  * Helper macros for defining "internalcall" method tables.
+  */
+ #define       IL_METHOD_BEGIN(name)   \
+                       static ILMethodTableEntry const name[] = {
+ #if defined(HAVE_LIBFFI)
+ #define       IL_METHOD(name,sig,func,marshal)        \
+                       {(name), (sig), (void *)(func)},
+ #define       IL_CONSTRUCTOR(name,sig,func,marshal,allocFunc,allocMarshal)    
\
+                       {(name), (sig), (void *)(func)}, \
+                       {(name), 0, (void *)(allocFunc)},
+ #define       IL_METHOD_END                   \
+                       {0, 0, 0}};
+ #else
+ #define       IL_METHOD(name,sig,func,marshal)        \
+                       {(name), (sig), (void *)(func), (void *)(marshal)},
+ #define       IL_CONSTRUCTOR(name,sig,func,marshal,allocFunc,allocMarshal)    
\
+                       {(name), (sig), (void *)(func), (void *)(marshal)}, \
+                       {(name), 0, (void *)(allocFunc), (void 
*)(allocMarshal)},
+ #define       IL_METHOD_END                   \
+                       {0, 0, 0, 0}};
+ #endif
+ 
+ /*
   * Function type that is used by debuggers for hooking breakpoints.
   */
***************
*** 230,233 ****
--- 280,289 ----
  void ILExecProcessWatchAll(ILExecProcess *process, int flag);
  
+ /* 
+  * Add a new set of internal calls to the process's lookup table
+  */
+ int ILExecProcessSetInternalCallTable(ILExecProcess* process, 
+                                       ILEngineInternalClassInfo* 
internalClassTable,
+                                       int internalClassCount);
  /*
   * Get the current thread from a PInvoke'd method.  The behaviour





reply via email to

[Prev in Thread] Current Thread [Next in Thread]