[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Dotgnu-pnet-commits] CVS: pnet/include il_engine.h,1.26,1.27,
Gopal.V <address@hidden> <=
- Prev by Date:
[Dotgnu-pnet-commits] CVS: pnet ChangeLog,1.1847,1.1848
- Next by Date:
[Dotgnu-pnet-commits] CVS: pnet/engine engine.h,1.60,1.61 internal.c,1.34,1.35 process.c,1.37,1.38 convert.c,1.15,1.16
- Previous by thread:
[Dotgnu-pnet-commits] CVS: pnet ChangeLog,1.1847,1.1848
- Next by thread:
[Dotgnu-pnet-commits] CVS: pnet/engine engine.h,1.60,1.61 internal.c,1.34,1.35 process.c,1.37,1.38 convert.c,1.15,1.16
- Index(es):