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

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

[Dotgnu-pnet-commits] CVS: pnet/engine int_proto.h, 1.66, 1.67 int_table


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnet/engine int_proto.h, 1.66, 1.67 int_table.c, 1.68, 1.69 lib_task.c, 1.6, 1.7
Date: Sun, 20 Jul 2003 23:03:23 -0400

Update of /cvsroot/dotgnu-pnet/pnet/engine
In directory subversions:/tmp/cvs-serv3184/engine

Modified Files:
        int_proto.h int_table.c lib_task.c 
Log Message:


Implement the internalcalls for "System.Diagnostics.Process".


Index: int_proto.h
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/engine/int_proto.h,v
retrieving revision 1.66
retrieving revision 1.67
diff -C2 -r1.66 -r1.67
*** int_proto.h 20 Jul 2003 04:59:09 -0000      1.66
--- int_proto.h 21 Jul 2003 03:03:21 -0000      1.67
***************
*** 6,9 ****
--- 6,18 ----
  extern ILObject * _IL_Object_MemberwiseClone(ILExecThread * _thread, ILObject 
* _this);
  
+ extern ILObject * _IL_Enum_GetEnumValue(ILExecThread * _thread, ILObject * 
_this);
+ extern ILString * _IL_Enum_FormatEnumWithFlags(ILExecThread * _thread, 
ILObject * _p1, ILObject * _p2);
+ extern ILString * _IL_Enum_GetEnumName(ILExecThread * _thread, ILObject * 
_p1, ILObject * _p2);
+ extern ILObject * _IL_Enum_GetEnumValueFromName(ILExecThread * _thread, 
ILObject * _p1, ILString * _p2, ILBool _p3);
+ extern ILBool _IL_Enum_IsEnumValue(ILExecThread * _thread, ILObject * _p1, 
ILObject * _p2);
+ extern ILObject * _IL_Enum_EnumValueOr(ILExecThread * _thread, ILObject * 
_p1, ILObject * _p2);
+ extern ILObject * _IL_Enum_EnumIntToObject(ILExecThread * _thread, ILObject * 
_p1, ILInt32 _p2);
+ extern ILObject * _IL_Enum_EnumLongToObject(ILExecThread * _thread, ILObject 
* _p1, ILInt64 _p2);
+ 
  extern void _IL_ArgIterator_ctor_RuntimeArgumentHandle(ILExecThread * 
_thread, void * _this, void * _p1);
  extern void _IL_ArgIterator_ctor_RuntimeArgumentHandlepV(ILExecThread * 
_thread, void * _this, void * _p1, void * _p2);
***************
*** 14,17 ****
--- 23,29 ----
  extern ILInt32 _IL_ArgIterator_GetRemainingCount(ILExecThread * _thread, void 
* _this);
  
+ extern void _IL_Array_Initialize(ILExecThread * _thread, ILObject * _this);
+ extern ILObject * _IL_Array_CreateArray_jiiii(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2, ILInt32 _p3, ILInt32 _p4, ILInt32 _p5);
+ extern void _IL_Array_Set_Objectiii(ILExecThread * _thread, ILObject * _this, 
ILObject * _p1, ILInt32 _p2, ILInt32 _p3, ILInt32 _p4);
  extern ILObject * _IL_Array_Get_iii(ILExecThread * _thread, ILObject * _this, 
ILInt32 _p1, ILInt32 _p2, ILInt32 _p3);
  extern ILInt32 _IL_Array_GetLowerBound(ILExecThread * _thread, ILObject * 
_this, ILInt32 _p1);
***************
*** 19,53 ****
  extern ILInt32 _IL_Array_GetRank(ILExecThread * _thread, ILObject * _this);
  extern void _IL_Array_Clear(ILExecThread * _thread, ILObject * _p1, ILInt32 
_p2, ILInt32 _p3);
- extern void _IL_Array_Initialize(ILExecThread * _thread, ILObject * _this);
  extern void _IL_Array_InternalCopy(ILExecThread * _thread, ILObject * _p1, 
ILInt32 _p2, ILObject * _p3, ILInt32 _p4, ILInt32 _p5);
  extern ILObject * _IL_Array_GetRelative(ILExecThread * _thread, ILObject * 
_this, ILInt32 _p1);
  extern void _IL_Array_SetRelative(ILExecThread * _thread, ILObject * _this, 
ILObject * _p1, ILInt32 _p2);
  extern ILInt32 _IL_Array_GetLength_(ILExecThread * _thread, ILObject * _this);
- extern ILObject * _IL_Array_CreateArray_jiiii(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2, ILInt32 _p3, ILInt32 _p4, ILInt32 _p5);
  extern ILObject * _IL_Array_CreateArray_jaiai(ILExecThread * _thread, 
ILNativeInt _p1, System_Array * _p2, System_Array * _p3);
  extern ILObject * _IL_Array_Get_ai(ILExecThread * _thread, ILObject * _this, 
System_Array * _p1);
  extern ILInt32 _IL_Array_GetLength_i(ILExecThread * _thread, ILObject * 
_this, ILInt32 _p1);
- extern void _IL_Array_Set_Objectiii(ILExecThread * _thread, ILObject * _this, 
ILObject * _p1, ILInt32 _p2, ILInt32 _p3, ILInt32 _p4);
  extern void _IL_Array_Set_Objectai(ILExecThread * _thread, ILObject * _this, 
ILObject * _p1, System_Array * _p2);
  
  extern ILObject * _IL_Delegate_CreateBlankDelegate(ILExecThread * _thread, 
ILObject * _p1, ILObject * _p2);
  
- extern ILObject * _IL_Enum_GetEnumValue(ILExecThread * _thread, ILObject * 
_this);
- extern ILString * _IL_Enum_FormatEnumWithFlags(ILExecThread * _thread, 
ILObject * _p1, ILObject * _p2);
- extern ILString * _IL_Enum_GetEnumName(ILExecThread * _thread, ILObject * 
_p1, ILObject * _p2);
- extern ILBool _IL_Enum_IsEnumValue(ILExecThread * _thread, ILObject * _p1, 
ILObject * _p2);
- extern ILObject * _IL_Enum_GetEnumValueFromName(ILExecThread * _thread, 
ILObject * _p1, ILString * _p2, ILBool _p3);
- extern ILObject * _IL_Enum_EnumValueOr(ILExecThread * _thread, ILObject * 
_p1, ILObject * _p2);
- extern ILObject * _IL_Enum_EnumIntToObject(ILExecThread * _thread, ILObject * 
_p1, ILInt32 _p2);
- extern ILObject * _IL_Enum_EnumLongToObject(ILExecThread * _thread, ILObject 
* _p1, ILInt64 _p2);
- 
- extern ILBool _IL_BitConverter_GetLittleEndian(ILExecThread * _thread);
- extern ILInt64 _IL_BitConverter_DoubleToInt64Bits(ILExecThread * _thread, 
ILDouble _p1);
- extern ILDouble _IL_BitConverter_Int64BitsToDouble(ILExecThread * _thread, 
ILInt64 _p1);
- extern ILInt32 _IL_BitConverter_FloatToInt32Bits(ILExecThread * _thread, 
ILFloat _p1);
- extern ILFloat _IL_BitConverter_Int32BitsToFloat(ILExecThread * _thread, 
ILInt32 _p1);
- extern System_Array * _IL_BitConverter_GetLittleEndianBytes_f(ILExecThread * 
_thread, ILFloat _p1);
- extern System_Array * _IL_BitConverter_GetLittleEndianBytes_d(ILExecThread * 
_thread, ILDouble _p1);
- 
  extern ILInt32 _IL_Buffer_GetLength(ILExecThread * _thread, ILObject * _p1);
  extern void _IL_Buffer_Copy(ILExecThread * _thread, ILObject * _p1, ILInt32 
_p2, ILObject * _p3, ILInt32 _p4, ILInt32 _p5);
--- 31,45 ----
***************
*** 70,73 ****
--- 62,102 ----
  extern void _IL_Decimal_Subtract(ILExecThread * _thread, ILDecimal * _result, 
ILDecimal * _p1, ILDecimal * _p2);
  
+ extern System_String * _IL_String_Concat_StringString(ILExecThread * _thread, 
System_String * _p1, System_String * _p2);
+ extern System_String * _IL_String_ctor_acii(ILExecThread * _thread, 
System_Array * _p1, ILInt32 _p2, ILInt32 _p3);
+ extern System_String * _IL_String_ctor_ci(ILExecThread * _thread, ILUInt16 
_p1, ILInt32 _p2);
+ extern System_String * _IL_String_ctor_ac(ILExecThread * _thread, 
System_Array * _p1);
+ extern ILBool _IL_String_Equals(ILExecThread * _thread, System_String * _p1, 
System_String * _p2);
+ extern ILUInt16 _IL_String_GetChar(ILExecThread * _thread, System_String * 
_this, ILInt32 _p1);
+ extern System_String * _IL_String_NewString(ILExecThread * _thread, ILInt32 
_p1);
+ extern void _IL_String_Copy_StringiStringii(ILExecThread * _thread, 
System_String * _p1, ILInt32 _p2, System_String * _p3, ILInt32 _p4, ILInt32 
_p5);
+ extern ILInt32 _IL_String_IndexOf(ILExecThread * _thread, System_String * 
_this, ILUInt16 _p1, ILInt32 _p2, ILInt32 _p3);
+ extern ILInt32 _IL_String_InternalCompare(ILExecThread * _thread, 
System_String * _p1, ILInt32 _p2, ILInt32 _p3, System_String * _p4, ILInt32 
_p5, ILInt32 _p6, ILBool _p7, ILObject * _p8);
+ extern System_String * _IL_String_Trim(ILExecThread * _thread, System_String 
* _this, System_Array * _p1, ILInt32 _p2);
+ extern System_String * _IL_String_ctor_pcii(ILExecThread * _thread, ILUInt16 
* _p1, ILInt32 _p2, ILInt32 _p3);
+ extern System_String * _IL_String_ctor_pc(ILExecThread * _thread, ILUInt16 * 
_p1);
+ extern System_String * _IL_String_ctor_pbiiEncoding(ILExecThread * _thread, 
ILInt8 * _p1, ILInt32 _p2, ILInt32 _p3, ILObject * _p4);
+ extern System_String * _IL_String_ctor_pbii(ILExecThread * _thread, ILInt8 * 
_p1, ILInt32 _p2, ILInt32 _p3);
+ extern System_String * _IL_String_ctor_pb(ILExecThread * _thread, ILInt8 * 
_p1);
+ extern ILInt32 _IL_String_Compare(ILExecThread * _thread, System_String * 
_p1, System_String * _p2);
+ extern ILInt32 _IL_String_InternalOrdinal(ILExecThread * _thread, 
System_String * _p1, ILInt32 _p2, ILInt32 _p3, System_String * _p4, ILInt32 
_p5, ILInt32 _p6);
+ extern System_String * _IL_String_NewBuilder(ILExecThread * _thread, 
System_String * _p1, ILInt32 _p2);
+ extern void _IL_String_Copy_StringiString(ILExecThread * _thread, 
System_String * _p1, ILInt32 _p2, System_String * _p3);
+ extern void _IL_String_InsertSpace(ILExecThread * _thread, System_String * 
_p1, ILInt32 _p2, ILInt32 _p3);
+ extern void _IL_String_RemoveSpace(ILExecThread * _thread, System_String * 
_p1, ILInt32 _p2, ILInt32 _p3);
+ extern System_String * _IL_String_Concat_StringStringString(ILExecThread * 
_thread, System_String * _p1, System_String * _p2, System_String * _p3);
+ extern void _IL_String_CopyToChecked(ILExecThread * _thread, System_String * 
_this, ILInt32 _p1, System_Array * _p2, ILInt32 _p3, ILInt32 _p4);
+ extern ILInt32 _IL_String_IndexOfAny(ILExecThread * _thread, System_String * 
_this, System_Array * _p1, ILInt32 _p2, ILInt32 _p3);
+ extern ILInt32 _IL_String_GetHashCode(ILExecThread * _thread, System_String * 
_this);
+ extern ILInt32 _IL_String_FindInRange(ILExecThread * _thread, System_String * 
_this, ILInt32 _p1, ILInt32 _p2, ILInt32 _p3, System_String * _p4);
+ extern System_String * _IL_String_Intern(ILExecThread * _thread, 
System_String * _p1);
+ extern System_String * _IL_String_IsInterned(ILExecThread * _thread, 
System_String * _p1);
+ extern ILInt32 _IL_String_LastIndexOf(ILExecThread * _thread, System_String * 
_this, ILUInt16 _p1, ILInt32 _p2, ILInt32 _p3);
+ extern ILInt32 _IL_String_LastIndexOfAny(ILExecThread * _thread, 
System_String * _this, System_Array * _p1, ILInt32 _p2, ILInt32 _p3);
+ extern void _IL_String_CharFill_Stringiic(ILExecThread * _thread, 
System_String * _p1, ILInt32 _p2, ILInt32 _p3, ILUInt16 _p4);
+ extern void _IL_String_CharFill_Stringiacii(ILExecThread * _thread, 
System_String * _p1, ILInt32 _p2, System_Array * _p3, ILInt32 _p4, ILInt32 _p5);
+ extern System_String * _IL_String_Replace_cc(ILExecThread * _thread, 
System_String * _this, ILUInt16 _p1, ILUInt16 _p2);
+ extern System_String * _IL_String_Replace_StringString(ILExecThread * 
_thread, System_String * _this, System_String * _p1, System_String * _p2);
+ extern void _IL_String_SetChar(ILExecThread * _thread, System_String * _this, 
ILInt32 _p1, ILUInt16 _p2);
+ 
  extern ILBool _IL_Double_IsNaN(ILExecThread * _thread, ILDouble _p1);
  extern ILInt32 _IL_Double_TestInfinity(ILExecThread * _thread, ILDouble _p1);
***************
*** 82,85 ****
--- 111,122 ----
  extern void _IL_Guid_NewGuid(ILExecThread * _thread, void * _result);
  
+ extern ILBool _IL_BitConverter_GetLittleEndian(ILExecThread * _thread);
+ extern ILInt64 _IL_BitConverter_DoubleToInt64Bits(ILExecThread * _thread, 
ILDouble _p1);
+ extern ILDouble _IL_BitConverter_Int64BitsToDouble(ILExecThread * _thread, 
ILInt64 _p1);
+ extern ILInt32 _IL_BitConverter_FloatToInt32Bits(ILExecThread * _thread, 
ILFloat _p1);
+ extern ILFloat _IL_BitConverter_Int32BitsToFloat(ILExecThread * _thread, 
ILInt32 _p1);
+ extern System_Array * _IL_BitConverter_GetLittleEndianBytes_f(ILExecThread * 
_thread, ILFloat _p1);
+ extern System_Array * _IL_BitConverter_GetLittleEndianBytes_d(ILExecThread * 
_thread, ILDouble _p1);
+ 
  extern ILDouble _IL_Math_Log(ILExecThread * _thread, ILDouble _p1);
  extern ILDouble _IL_Math_RoundDouble(ILExecThread * _thread, ILDouble _p1, 
ILInt32 _p2);
***************
*** 103,148 ****
  extern ILDouble _IL_Math_Tanh(ILExecThread * _thread, ILDouble _p1);
  
- extern ILNativeInt _IL_RuntimeMethodHandle_GetFunctionPointer(ILExecThread * 
_thread, void * _this);
- 
  extern ILBool _IL_Single_IsNaN(ILExecThread * _thread, ILFloat _p1);
  extern ILInt32 _IL_Single_TestInfinity(ILExecThread * _thread, ILFloat _p1);
  
- extern System_String * _IL_String_Concat_StringString(ILExecThread * _thread, 
System_String * _p1, System_String * _p2);
- extern System_String * _IL_String_ctor_ci(ILExecThread * _thread, ILUInt16 
_p1, ILInt32 _p2);
- extern System_String * _IL_String_ctor_ac(ILExecThread * _thread, 
System_Array * _p1);
- extern ILBool _IL_String_Equals(ILExecThread * _thread, System_String * _p1, 
System_String * _p2);
- extern ILUInt16 _IL_String_GetChar(ILExecThread * _thread, System_String * 
_this, ILInt32 _p1);
- extern ILInt32 _IL_String_IndexOf(ILExecThread * _thread, System_String * 
_this, ILUInt16 _p1, ILInt32 _p2, ILInt32 _p3);
- extern System_String * _IL_String_NewString(ILExecThread * _thread, ILInt32 
_p1);
- extern void _IL_String_Copy_StringiStringii(ILExecThread * _thread, 
System_String * _p1, ILInt32 _p2, System_String * _p3, ILInt32 _p4, ILInt32 
_p5);
- extern ILInt32 _IL_String_InternalCompare(ILExecThread * _thread, 
System_String * _p1, ILInt32 _p2, ILInt32 _p3, System_String * _p4, ILInt32 
_p5, ILInt32 _p6, ILBool _p7, ILObject * _p8);
- extern System_String * _IL_String_Trim(ILExecThread * _thread, System_String 
* _this, System_Array * _p1, ILInt32 _p2);
- extern System_String * _IL_String_ctor_acii(ILExecThread * _thread, 
System_Array * _p1, ILInt32 _p2, ILInt32 _p3);
- extern System_String * _IL_String_ctor_pcii(ILExecThread * _thread, ILUInt16 
* _p1, ILInt32 _p2, ILInt32 _p3);
- extern System_String * _IL_String_ctor_pc(ILExecThread * _thread, ILUInt16 * 
_p1);
- extern System_String * _IL_String_ctor_pbiiEncoding(ILExecThread * _thread, 
ILInt8 * _p1, ILInt32 _p2, ILInt32 _p3, ILObject * _p4);
- extern System_String * _IL_String_ctor_pbii(ILExecThread * _thread, ILInt8 * 
_p1, ILInt32 _p2, ILInt32 _p3);
- extern System_String * _IL_String_ctor_pb(ILExecThread * _thread, ILInt8 * 
_p1);
- extern ILInt32 _IL_String_Compare(ILExecThread * _thread, System_String * 
_p1, System_String * _p2);
- extern ILInt32 _IL_String_InternalOrdinal(ILExecThread * _thread, 
System_String * _p1, ILInt32 _p2, ILInt32 _p3, System_String * _p4, ILInt32 
_p5, ILInt32 _p6);
- extern System_String * _IL_String_NewBuilder(ILExecThread * _thread, 
System_String * _p1, ILInt32 _p2);
- extern void _IL_String_Copy_StringiString(ILExecThread * _thread, 
System_String * _p1, ILInt32 _p2, System_String * _p3);
- extern void _IL_String_InsertSpace(ILExecThread * _thread, System_String * 
_p1, ILInt32 _p2, ILInt32 _p3);
- extern void _IL_String_RemoveSpace(ILExecThread * _thread, System_String * 
_p1, ILInt32 _p2, ILInt32 _p3);
- extern System_String * _IL_String_Concat_StringStringString(ILExecThread * 
_thread, System_String * _p1, System_String * _p2, System_String * _p3);
- extern void _IL_String_CopyToChecked(ILExecThread * _thread, System_String * 
_this, ILInt32 _p1, System_Array * _p2, ILInt32 _p3, ILInt32 _p4);
- extern ILInt32 _IL_String_IndexOfAny(ILExecThread * _thread, System_String * 
_this, System_Array * _p1, ILInt32 _p2, ILInt32 _p3);
- extern ILInt32 _IL_String_GetHashCode(ILExecThread * _thread, System_String * 
_this);
- extern ILInt32 _IL_String_FindInRange(ILExecThread * _thread, System_String * 
_this, ILInt32 _p1, ILInt32 _p2, ILInt32 _p3, System_String * _p4);
- extern System_String * _IL_String_Intern(ILExecThread * _thread, 
System_String * _p1);
- extern System_String * _IL_String_IsInterned(ILExecThread * _thread, 
System_String * _p1);
- extern ILInt32 _IL_String_LastIndexOf(ILExecThread * _thread, System_String * 
_this, ILUInt16 _p1, ILInt32 _p2, ILInt32 _p3);
- extern ILInt32 _IL_String_LastIndexOfAny(ILExecThread * _thread, 
System_String * _this, System_Array * _p1, ILInt32 _p2, ILInt32 _p3);
- extern void _IL_String_CharFill_Stringiic(ILExecThread * _thread, 
System_String * _p1, ILInt32 _p2, ILInt32 _p3, ILUInt16 _p4);
- extern void _IL_String_CharFill_Stringiacii(ILExecThread * _thread, 
System_String * _p1, ILInt32 _p2, System_Array * _p3, ILInt32 _p4, ILInt32 _p5);
- extern System_String * _IL_String_Replace_cc(ILExecThread * _thread, 
System_String * _this, ILUInt16 _p1, ILUInt16 _p2);
- extern System_String * _IL_String_Replace_StringString(ILExecThread * 
_thread, System_String * _this, System_String * _p1, System_String * _p2);
- extern void _IL_String_SetChar(ILExecThread * _thread, System_String * _this, 
ILInt32 _p1, ILUInt16 _p2);
- 
  extern ILObject * _IL_Type_GetTypeFromHandle(ILExecThread * _thread, void * 
_p1);
  extern void _IL_Type_GetTypeHandle(ILExecThread * _thread, void * _result, 
ILObject * _p1);
--- 140,146 ----
***************
*** 153,160 ****
  extern ILBool _IL_TypedReference_ClrSetTypedReference(ILExecThread * _thread, 
ILTypedRef _p1, ILObject * _p2);
  
! extern void _IL_WaitHandle_InternalClose(ILExecThread * _thread, ILNativeInt 
_p1);
! extern ILBool _IL_WaitHandle_InternalWaitAll(ILExecThread * _thread, 
System_Array * _p1, ILInt32 _p2, ILBool _p3);
! extern ILInt32 _IL_WaitHandle_InternalWaitAny(ILExecThread * _thread, 
System_Array * _p1, ILInt32 _p2, ILBool _p3);
! extern ILBool _IL_WaitHandle_InternalWaitOne(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2);
  
  extern ILInt32 _IL_Interlocked_CompareExchange_Riii(ILExecThread * _thread, 
ILInt32 * _p1, ILInt32 _p2, ILInt32 _p3);
--- 151,155 ----
  extern ILBool _IL_TypedReference_ClrSetTypedReference(ILExecThread * _thread, 
ILTypedRef _p1, ILObject * _p2);
  
! extern ILNativeInt _IL_RuntimeMethodHandle_GetFunctionPointer(ILExecThread * 
_thread, void * _this);
  
  extern ILInt32 _IL_Interlocked_CompareExchange_Riii(ILExecThread * _thread, 
ILInt32 * _p1, ILInt32 _p2, ILInt32 _p3);
***************
*** 176,184 ****
  extern void _IL_Monitor_PulseAll(ILExecThread * _thread, ILObject * _p1);
  
  extern ILNativeInt _IL_Mutex_InternalCreateMutex(ILExecThread * _thread, 
ILBool _p1, ILString * _p2, ILBool * gotOwnership);
  extern void _IL_Mutex_InternalReleaseMutex(ILExecThread * _thread, 
ILNativeInt _p1);
  
  extern ILInt32 _IL_Thread_InternalGetThreadId(ILExecThread * _thread);
- extern ILObject * _IL_Thread_InternalCurrentThread(ILExecThread * _thread);
  extern void _IL_Thread_InitializeThread(ILExecThread * _thread, ILObject * 
_this);
  extern void _IL_Thread_FinalizeThread(ILExecThread * _thread, ILObject * 
_this);
--- 171,183 ----
  extern void _IL_Monitor_PulseAll(ILExecThread * _thread, ILObject * _p1);
  
+ extern void _IL_WaitHandle_InternalClose(ILExecThread * _thread, ILNativeInt 
_p1);
+ extern ILBool _IL_WaitHandle_InternalWaitAll(ILExecThread * _thread, 
System_Array * _p1, ILInt32 _p2, ILBool _p3);
+ extern ILInt32 _IL_WaitHandle_InternalWaitAny(ILExecThread * _thread, 
System_Array * _p1, ILInt32 _p2, ILBool _p3);
+ extern ILBool _IL_WaitHandle_InternalWaitOne(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2);
+ 
  extern ILNativeInt _IL_Mutex_InternalCreateMutex(ILExecThread * _thread, 
ILBool _p1, ILString * _p2, ILBool * gotOwnership);
  extern void _IL_Mutex_InternalReleaseMutex(ILExecThread * _thread, 
ILNativeInt _p1);
  
  extern ILInt32 _IL_Thread_InternalGetThreadId(ILExecThread * _thread);
  extern void _IL_Thread_InitializeThread(ILExecThread * _thread, ILObject * 
_this);
  extern void _IL_Thread_FinalizeThread(ILExecThread * _thread, ILObject * 
_this);
***************
*** 215,218 ****
--- 214,218 ----
  extern void _IL_Thread_VolatileWrite_Rdd(ILExecThread * _thread, ILDouble * 
_p1, ILDouble _p2);
  extern void _IL_Thread_VolatileWrite_RObjectObject(ILExecThread * _thread, 
ILObject * * _p1, ILObject * _p2);
+ extern ILObject * _IL_Thread_InternalCurrentThread(ILExecThread * _thread);
  extern ILInt32 _IL_Thread_InternalGetState(ILExecThread * _thread, ILObject * 
_this);
  extern void _IL_Thread_InternalSetBackground(ILExecThread * _thread, ILObject 
* _this, ILBool _p1);
***************
*** 306,313 ****
  extern ILObject * _IL_MethodBase_GetCurrentMethod(ILExecThread * _thread);
  
- extern ILObject * _IL_ClrConstructor_Invoke(ILExecThread * _thread, ILObject 
* _this, ILInt32 _p1, ILObject * _p2, System_Array * _p3, ILObject * _p4);
- 
  extern ILObject * _IL_FieldInfo_GetFieldFromHandle(ILExecThread * _thread, 
void * _p1);
  
  extern ILObject * _IL_ClrField_GetFieldType(ILExecThread * _thread, 
ILNativeInt _p1);
  extern ILObject * _IL_ClrField_GetValue(ILExecThread * _thread, ILObject * 
_this, ILObject * _p1);
--- 306,344 ----
  extern ILObject * _IL_MethodBase_GetCurrentMethod(ILExecThread * _thread);
  
  extern ILObject * _IL_FieldInfo_GetFieldFromHandle(ILExecThread * _thread, 
void * _p1);
  
+ extern ILObject * _IL_Module_GetAssembly(ILExecThread * _thread, ILObject * 
_this);
+ extern ILObject * _IL_Module_GetModuleType(ILExecThread * _thread, ILObject * 
_this);
+ extern ILString * _IL_Module_GetFullName(ILExecThread * _thread, ILObject * 
_this);
+ extern ILObject * _IL_Module_GetType(ILExecThread * _thread, ILObject * 
_this, ILString * _p1, ILBool _p2, ILBool _p3);
+ extern System_Array * _IL_Module_GetTypes(ILExecThread * _thread, ILObject * 
_this);
+ extern ILBool _IL_Module_IsResource(ILExecThread * _thread, ILObject * _this);
+ 
+ extern ILInt32 _IL_ClrType_GetClrArrayRank(ILExecThread * _thread, ILObject * 
_this);
+ extern ILInt32 _IL_ClrType_GetAttributeFlagsImpl(ILExecThread * _thread, 
ILObject * _this);
+ extern ILInt32 _IL_ClrType_GetClrTypeCategory(ILExecThread * _thread, 
ILObject * _this);
+ extern ILObject * _IL_ClrType_GetElementType(ILExecThread * _thread, ILObject 
* _this);
+ extern System_Array * _IL_ClrType_GetInterfaces(ILExecThread * _thread, 
ILObject * _this);
+ extern ILBool _IL_ClrType_IsSubclassOf(ILExecThread * _thread, ILObject * 
_this, ILObject * _p1);
+ extern ILString * _IL_ClrType_GetClrFullName(ILExecThread * _thread, ILObject 
* _this);
+ extern ILObject * _IL_ClrType_GetClrAssembly(ILExecThread * _thread, ILObject 
* _this);
+ extern ILObject * _IL_ClrType_GetClrBaseType(ILExecThread * _thread, ILObject 
* _this);
+ extern ILObject * _IL_ClrType_GetInterface(ILExecThread * _thread, ILObject * 
_this, ILString * _p1, ILBool _p2);
+ extern ILObject * _IL_ClrType_GetMemberImpl(ILExecThread * _thread, ILObject 
* _this, ILString * _p1, ILInt32 _p2, ILInt32 _p3, ILObject * _p4, ILInt32 _p5, 
System_Array * _p6, System_Array * _p7);
+ extern ILObject * _IL_ClrType_GetMembersImpl(ILExecThread * _thread, ILObject 
* _this, ILInt32 _p1, ILInt32 _p2, ILObject * _p3, ILString * _p4);
+ extern ILBool _IL_ClrType_IsClrNestedType(ILExecThread * _thread, ILObject * 
_this);
+ extern void _IL_ClrType_GetClrGUID(ILExecThread * _thread, void * _result, 
ILObject * _this);
+ extern ILObject * _IL_ClrType_GetClrModule(ILExecThread * _thread, ILObject * 
_this);
+ extern ILObject * _IL_ClrType_GetClrNestedDeclaringType(ILExecThread * 
_thread, ILObject * _this);
+ extern ILString * _IL_ClrType_GetClrName(ILExecThread * _thread, ILObject * 
_this);
+ extern ILString * _IL_ClrType_GetClrNamespace(ILExecThread * _thread, 
ILObject * _this);
+ extern ILBool _IL_ClrType_IsGenericTypeImpl(ILExecThread * _thread, ILObject 
* _this);
+ extern ILInt32 _IL_ClrType_ArityImpl(ILExecThread * _thread, ILObject * 
_this);
+ extern System_Array * _IL_ClrType_GetInstantiation(ILExecThread * _thread, 
ILObject * _this);
+ extern ILObject * _IL_ClrType_Instantiate(ILExecThread * _thread, ILObject * 
_this, System_Array * _p1);
+ extern ILObject * _IL_ClrType_GetGenericType(ILExecThread * _thread, ILObject 
* _this);
+ 
+ extern ILObject * _IL_ClrConstructor_Invoke(ILExecThread * _thread, ILObject 
* _this, ILInt32 _p1, ILObject * _p2, System_Array * _p3, ILObject * _p4);
+ 
  extern ILObject * _IL_ClrField_GetFieldType(ILExecThread * _thread, 
ILNativeInt _p1);
  extern ILObject * _IL_ClrField_GetValue(ILExecThread * _thread, ILObject * 
_this, ILObject * _p1);
***************
*** 317,326 ****
  
  extern ILBool _IL_ClrHelpers_CanAccess(ILExecThread * _thread, ILNativeInt 
_p1);
  extern ILString * _IL_ClrHelpers_GetName(ILExecThread * _thread, ILNativeInt 
_p1);
  extern ILInt32 _IL_ClrHelpers_GetNumParameters(ILExecThread * _thread, 
ILNativeInt _p1);
- extern ILInt32 _IL_ClrHelpers_GetMemberAttrs(ILExecThread * _thread, 
ILNativeInt _p1);
  extern ILInt32 _IL_ClrHelpers_GetCallConv(ILExecThread * _thread, ILNativeInt 
_p1);
  extern ILInt32 _IL_ClrHelpers_GetImplAttrs(ILExecThread * _thread, 
ILNativeInt _p1);
- extern ILObject * _IL_ClrHelpers_GetSemantics(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2, ILBool _p3);
  extern System_Array * _IL_ClrHelpers_GetCustomAttributes(ILExecThread * 
_thread, ILNativeInt _p1, ILNativeInt _p2, ILBool _p3);
  extern ILBool _IL_ClrHelpers_IsDefined(ILExecThread * _thread, ILNativeInt 
_p1, ILNativeInt _p2, ILBool _p3);
--- 348,357 ----
  
  extern ILBool _IL_ClrHelpers_CanAccess(ILExecThread * _thread, ILNativeInt 
_p1);
+ extern ILInt32 _IL_ClrHelpers_GetMemberAttrs(ILExecThread * _thread, 
ILNativeInt _p1);
+ extern ILObject * _IL_ClrHelpers_GetSemantics(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2, ILBool _p3);
  extern ILString * _IL_ClrHelpers_GetName(ILExecThread * _thread, ILNativeInt 
_p1);
  extern ILInt32 _IL_ClrHelpers_GetNumParameters(ILExecThread * _thread, 
ILNativeInt _p1);
  extern ILInt32 _IL_ClrHelpers_GetCallConv(ILExecThread * _thread, ILNativeInt 
_p1);
  extern ILInt32 _IL_ClrHelpers_GetImplAttrs(ILExecThread * _thread, 
ILNativeInt _p1);
  extern System_Array * _IL_ClrHelpers_GetCustomAttributes(ILExecThread * 
_thread, ILNativeInt _p1, ILNativeInt _p2, ILBool _p3);
  extern ILBool _IL_ClrHelpers_IsDefined(ILExecThread * _thread, ILNativeInt 
_p1, ILNativeInt _p2, ILBool _p3);
***************
*** 333,380 ****
  extern ILObject * _IL_ClrMethod_GetBaseDefinition(ILExecThread * _thread, 
ILObject * _this);
  
  extern ILInt32 _IL_ClrParameter_GetParamAttrs(ILExecThread * _thread, 
ILNativeInt _p1);
  extern ILString * _IL_ClrParameter_GetParamName(ILExecThread * _thread, 
ILNativeInt _p1);
  extern ILObject * _IL_ClrParameter_GetDefault(ILExecThread * _thread, 
ILNativeInt _p1);
  
- extern ILObject * _IL_ClrProperty_GetPropertyType(ILExecThread * _thread, 
ILNativeInt _p1);
- 
  extern ILInt32 _IL_ClrResourceStream_ResourceRead(ILExecThread * _thread, 
ILNativeInt _p1, ILInt64 _p2, System_Array * _p3, ILInt32 _p4, ILInt32 _p5);
  extern ILInt32 _IL_ClrResourceStream_ResourceReadByte(ILExecThread * _thread, 
ILNativeInt _p1, ILInt64 _p2);
  extern ILUInt8 * _IL_ClrResourceStream_ResourceGetAddress(ILExecThread * 
_thread, ILNativeInt _p1, ILInt64 _p2);
  
! extern ILInt32 _IL_ClrType_GetClrArrayRank(ILExecThread * _thread, ILObject * 
_this);
! extern ILInt32 _IL_ClrType_GetAttributeFlagsImpl(ILExecThread * _thread, 
ILObject * _this);
! extern ILInt32 _IL_ClrType_GetClrTypeCategory(ILExecThread * _thread, 
ILObject * _this);
! extern ILObject * _IL_ClrType_GetElementType(ILExecThread * _thread, ILObject 
* _this);
! extern System_Array * _IL_ClrType_GetInterfaces(ILExecThread * _thread, 
ILObject * _this);
! extern ILBool _IL_ClrType_IsSubclassOf(ILExecThread * _thread, ILObject * 
_this, ILObject * _p1);
! extern ILString * _IL_ClrType_GetClrFullName(ILExecThread * _thread, ILObject 
* _this);
! extern ILObject * _IL_ClrType_GetClrAssembly(ILExecThread * _thread, ILObject 
* _this);
! extern ILObject * _IL_ClrType_GetClrBaseType(ILExecThread * _thread, ILObject 
* _this);
! extern ILObject * _IL_ClrType_GetInterface(ILExecThread * _thread, ILObject * 
_this, ILString * _p1, ILBool _p2);
! extern ILObject * _IL_ClrType_GetMemberImpl(ILExecThread * _thread, ILObject 
* _this, ILString * _p1, ILInt32 _p2, ILInt32 _p3, ILObject * _p4, ILInt32 _p5, 
System_Array * _p6, System_Array * _p7);
! extern ILObject * _IL_ClrType_GetMembersImpl(ILExecThread * _thread, ILObject 
* _this, ILInt32 _p1, ILInt32 _p2, ILObject * _p3, ILString * _p4);
! extern ILBool _IL_ClrType_IsClrNestedType(ILExecThread * _thread, ILObject * 
_this);
! extern void _IL_ClrType_GetClrGUID(ILExecThread * _thread, void * _result, 
ILObject * _this);
! extern ILObject * _IL_ClrType_GetClrModule(ILExecThread * _thread, ILObject * 
_this);
! extern ILObject * _IL_ClrType_GetClrNestedDeclaringType(ILExecThread * 
_thread, ILObject * _this);
! extern ILString * _IL_ClrType_GetClrName(ILExecThread * _thread, ILObject * 
_this);
! extern ILString * _IL_ClrType_GetClrNamespace(ILExecThread * _thread, 
ILObject * _this);
! extern ILBool _IL_ClrType_IsGenericTypeImpl(ILExecThread * _thread, ILObject 
* _this);
! extern ILInt32 _IL_ClrType_ArityImpl(ILExecThread * _thread, ILObject * 
_this);
! extern System_Array * _IL_ClrType_GetInstantiation(ILExecThread * _thread, 
ILObject * _this);
! extern ILObject * _IL_ClrType_Instantiate(ILExecThread * _thread, ILObject * 
_this, System_Array * _p1);
! extern ILObject * _IL_ClrType_GetGenericType(ILExecThread * _thread, ILObject 
* _this);
! 
! extern ILObject * _IL_Module_GetAssembly(ILExecThread * _thread, ILObject * 
_this);
! extern ILObject * _IL_Module_GetModuleType(ILExecThread * _thread, ILObject * 
_this);
! extern ILString * _IL_Module_GetFullName(ILExecThread * _thread, ILObject * 
_this);
! extern ILObject * _IL_Module_GetType(ILExecThread * _thread, ILObject * 
_this, ILString * _p1, ILBool _p2, ILBool _p3);
! extern System_Array * _IL_Module_GetTypes(ILExecThread * _thread, ILObject * 
_this);
! extern ILBool _IL_Module_IsResource(ILExecThread * _thread, ILObject * _this);
  
  extern ILNativeInt _IL_AssemblyBuilder_ClrAssemblyCreate(ILExecThread * 
_thread, ILString * _p1, ILInt32 _p2, ILInt32 _p3, ILInt32 _p4, ILInt32 _p5, 
ILInt32 _p6, ILNativeInt * writer);
  extern ILBool _IL_AssemblyBuilder_ClrSave(ILExecThread * _thread, ILNativeInt 
_p1, ILNativeInt _p2, ILString * _p3, ILNativeInt _p4, ILInt32 _p5);
- extern ILInt32 _IL_AssemblyBuilder_ClrGetItemToken(ILExecThread * _thread, 
ILNativeInt _p1);
  extern ILNativeInt _IL_AssemblyBuilder_ClrGetItemFromToken(ILExecThread * 
_thread, ILNativeInt _p1, ILInt32 _p2);
  
--- 364,391 ----
  extern ILObject * _IL_ClrMethod_GetBaseDefinition(ILExecThread * _thread, 
ILObject * _this);
  
+ extern ILObject * _IL_ClrProperty_GetPropertyType(ILExecThread * _thread, 
ILNativeInt _p1);
+ 
  extern ILInt32 _IL_ClrParameter_GetParamAttrs(ILExecThread * _thread, 
ILNativeInt _p1);
  extern ILString * _IL_ClrParameter_GetParamName(ILExecThread * _thread, 
ILNativeInt _p1);
  extern ILObject * _IL_ClrParameter_GetDefault(ILExecThread * _thread, 
ILNativeInt _p1);
  
  extern ILInt32 _IL_ClrResourceStream_ResourceRead(ILExecThread * _thread, 
ILNativeInt _p1, ILInt64 _p2, System_Array * _p3, ILInt32 _p4, ILInt32 _p5);
  extern ILInt32 _IL_ClrResourceStream_ResourceReadByte(ILExecThread * _thread, 
ILNativeInt _p1, ILInt64 _p2);
  extern ILUInt8 * _IL_ClrResourceStream_ResourceGetAddress(ILExecThread * 
_thread, ILNativeInt _p1, ILInt64 _p2);
  
! extern ILNativeInt _IL_TypeBuilder_ClrTypeCreate(ILExecThread * _thread, 
ILNativeInt _p1, ILNativeInt _p2, ILString * _p3, ILString * _p4, ILInt32 _p5, 
void * _p6);
! extern void _IL_TypeBuilder_ClrTypeSetPackingSize(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2);
! extern void _IL_TypeBuilder_ClrTypeSetClassSize(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2);
! extern void _IL_TypeBuilder_ClrTypeAddInterface(ILExecThread * _thread, 
ILNativeInt _p1, void * _p2);
! extern ILInt32 _IL_TypeBuilder_ClrTypeGetPackingSize(ILExecThread * _thread, 
ILNativeInt _p1);
! extern ILInt32 _IL_TypeBuilder_ClrTypeGetClassSize(ILExecThread * _thread, 
ILNativeInt _p1);
! extern void _IL_TypeBuilder_ClrTypeAddOverride(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2, ILInt32 _p3);
! extern void _IL_TypeBuilder_ClrTypeSetParent(ILExecThread * _thread, 
ILNativeInt _p1, void * _p2);
! extern ILInt32 _IL_TypeBuilder_ClrTypeImport(ILExecThread * _thread, 
ILNativeInt _p1, ILNativeInt _p2);
! extern ILInt32 _IL_TypeBuilder_ClrTypeImportMember(ILExecThread * _thread, 
ILNativeInt _p1, ILNativeInt _p2);
  
+ extern ILInt32 _IL_AssemblyBuilder_ClrGetItemToken(ILExecThread * _thread, 
ILNativeInt _p1);
  extern ILNativeInt _IL_AssemblyBuilder_ClrAssemblyCreate(ILExecThread * 
_thread, ILString * _p1, ILInt32 _p2, ILInt32 _p3, ILInt32 _p4, ILInt32 _p5, 
ILInt32 _p6, ILNativeInt * writer);
  extern ILBool _IL_AssemblyBuilder_ClrSave(ILExecThread * _thread, ILNativeInt 
_p1, ILNativeInt _p2, ILString * _p3, ILNativeInt _p4, ILInt32 _p5);
  extern ILNativeInt _IL_AssemblyBuilder_ClrGetItemFromToken(ILExecThread * 
_thread, ILNativeInt _p1, ILInt32 _p2);
  
***************
*** 382,396 ****
  extern void _IL_EventBuilder_ClrEventAddSemantics(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2, void * _p3);
  
- extern void _IL_FieldBuilder_ClrFieldSetConstant(ILExecThread * _thread, 
ILNativeInt _p1, ILObject * _p2);
  extern ILNativeInt _IL_FieldBuilder_ClrFieldCreate(ILExecThread * _thread, 
ILNativeInt _p1, ILString * _p2, ILNativeInt _p3, ILInt32 _p4);
  extern void _IL_FieldBuilder_ClrFieldSetMarshal(ILExecThread * _thread, 
ILNativeInt _p1, System_Array * _p2);
  extern void _IL_FieldBuilder_ClrFieldSetOffset(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2);
- extern void _IL_FieldBuilder_ClrFieldSetRVA(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2);
  
  extern ILNativeInt _IL_MethodBuilder_ClrMethodCreate(ILExecThread * _thread, 
ILNativeInt _p1, ILString * _p2, ILInt32 _p3, ILNativeInt _p4);
  extern void _IL_MethodBuilder_ClrMethodSetImplAttrs(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2);
- extern void _IL_MethodBuilder_ClrMethodSetRVA(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2);
  extern ILInt32 _IL_MethodBuilder_ClrMethodCreateVarArgRef(ILExecThread * 
_thread, ILNativeInt _p1, ILInt32 _p2, ILNativeInt _p3);
- extern void _IL_MethodBuilder_ClrMethodAddPInvoke(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2, ILString * _p3, ILString * _p4);
  
  extern ILInt32 _IL_ModuleBuilder_ClrModuleWriteData(ILExecThread * _thread, 
ILNativeInt _p1, System_Array * _p2);
--- 393,407 ----
  extern void _IL_EventBuilder_ClrEventAddSemantics(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2, void * _p3);
  
  extern ILNativeInt _IL_FieldBuilder_ClrFieldCreate(ILExecThread * _thread, 
ILNativeInt _p1, ILString * _p2, ILNativeInt _p3, ILInt32 _p4);
+ extern void _IL_FieldBuilder_ClrFieldSetRVA(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2);
+ extern void _IL_FieldBuilder_ClrFieldSetConstant(ILExecThread * _thread, 
ILNativeInt _p1, ILObject * _p2);
  extern void _IL_FieldBuilder_ClrFieldSetMarshal(ILExecThread * _thread, 
ILNativeInt _p1, System_Array * _p2);
  extern void _IL_FieldBuilder_ClrFieldSetOffset(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2);
  
+ extern void _IL_MethodBuilder_ClrMethodAddPInvoke(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2, ILString * _p3, ILString * _p4);
+ extern void _IL_MethodBuilder_ClrMethodSetRVA(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2);
  extern ILNativeInt _IL_MethodBuilder_ClrMethodCreate(ILExecThread * _thread, 
ILNativeInt _p1, ILString * _p2, ILInt32 _p3, ILNativeInt _p4);
  extern void _IL_MethodBuilder_ClrMethodSetImplAttrs(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2);
  extern ILInt32 _IL_MethodBuilder_ClrMethodCreateVarArgRef(ILExecThread * 
_thread, ILNativeInt _p1, ILInt32 _p2, ILNativeInt _p3);
  
  extern ILInt32 _IL_ModuleBuilder_ClrModuleWriteData(ILExecThread * _thread, 
ILNativeInt _p1, System_Array * _p2);
***************
*** 399,415 ****
  extern ILInt32 _IL_ModuleBuilder_ClrModuleCreateString(ILExecThread * 
_thread, ILNativeInt _p1, ILString * _p2);
  
- extern ILNativeInt _IL_ParameterBuilder_ClrParameterCreate(ILExecThread * 
_thread, ILNativeInt _p1, ILInt32 _p2, ILInt32 _p3, ILString * _p4);
- extern ILInt32 _IL_ParameterBuilder_ClrParameterGetPosition(ILExecThread * 
_thread, ILNativeInt _p1);
- extern ILInt32 _IL_ParameterBuilder_ClrParameterGetAttrs(ILExecThread * 
_thread, ILNativeInt _p1);
- extern ILString * _IL_ParameterBuilder_ClrParameterGetName(ILExecThread * 
_thread, ILNativeInt _p1);
- 
  extern ILNativeInt _IL_PropertyBuilder_ClrPropertyCreate(ILExecThread * 
_thread, ILNativeInt _p1, ILString * _p2, ILInt32 _p3, ILNativeInt _p4);
  extern void _IL_PropertyBuilder_ClrPropertyAddSemantics(ILExecThread * 
_thread, ILNativeInt _p1, ILInt32 _p2, void * _p3);
  
  extern ILNativeInt _IL_SignatureHelper_ClrSigCreateMethod(ILExecThread * 
_thread, ILNativeInt _p1, ILInt32 _p2, ILNativeInt _p3);
- extern ILNativeInt _IL_SignatureHelper_ClrSigCreateLocal(ILExecThread * 
_thread, ILNativeInt _p1);
- extern ILBool _IL_SignatureHelper_ClrSigAddArgument(ILExecThread * _thread, 
ILNativeInt _p1, ILNativeInt _p2, ILNativeInt _p3);
- extern ILNativeInt _IL_SignatureHelper_ClrSigCreateMethodCopy(ILExecThread * 
_thread, ILNativeInt _p1, ILNativeInt _p2, ILInt32 _p3);
- extern ILBool _IL_SignatureHelper_ClrSigAddSentinel(ILExecThread * _thread, 
ILNativeInt _p1, ILNativeInt _p2);
  extern ILNativeInt _IL_SignatureHelper_ClrSigCreateProperty(ILExecThread * 
_thread, ILNativeInt _p1, ILNativeInt _p2);
  extern ILNativeInt _IL_SignatureHelper_ClrSigModuleToContext(ILExecThread * 
_thread, ILNativeInt _p1);
--- 410,417 ----
***************
*** 421,438 ****
  extern ILNativeInt _IL_SignatureHelper_ClrSigCreateClass(ILExecThread * 
_thread, ILNativeInt _p1, ILInt32 _p2);
  extern ILNativeInt _IL_SignatureHelper_ClrSigCreateField(ILExecThread * 
_thread, ILNativeInt _p1);
  extern ILBool _IL_SignatureHelper_ClrSigIdentical(ILExecThread * _thread, 
ILNativeInt _p1, ILNativeInt _p2);
  extern ILInt32 _IL_SignatureHelper_ClrSigGetHashCode(ILExecThread * _thread, 
ILNativeInt _p1);
  extern System_Array * _IL_SignatureHelper_ClrSigGetBytes(ILExecThread * 
_thread, ILNativeInt _p1, ILNativeInt _p2);
  
! extern ILInt32 _IL_TypeBuilder_ClrTypeImportMember(ILExecThread * _thread, 
ILNativeInt _p1, ILNativeInt _p2);
! extern ILInt32 _IL_TypeBuilder_ClrTypeImport(ILExecThread * _thread, 
ILNativeInt _p1, ILNativeInt _p2);
! extern ILNativeInt _IL_TypeBuilder_ClrTypeCreate(ILExecThread * _thread, 
ILNativeInt _p1, ILNativeInt _p2, ILString * _p3, ILString * _p4, ILInt32 _p5, 
void * _p6);
! extern void _IL_TypeBuilder_ClrTypeSetPackingSize(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2);
! extern void _IL_TypeBuilder_ClrTypeSetClassSize(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2);
! extern void _IL_TypeBuilder_ClrTypeAddInterface(ILExecThread * _thread, 
ILNativeInt _p1, void * _p2);
! extern ILInt32 _IL_TypeBuilder_ClrTypeGetPackingSize(ILExecThread * _thread, 
ILNativeInt _p1);
! extern ILInt32 _IL_TypeBuilder_ClrTypeGetClassSize(ILExecThread * _thread, 
ILNativeInt _p1);
! extern void _IL_TypeBuilder_ClrTypeAddOverride(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2, ILInt32 _p3);
! extern void _IL_TypeBuilder_ClrTypeSetParent(ILExecThread * _thread, 
ILNativeInt _p1, void * _p2);
  
  extern ILInt32 _IL_CultureInfo_InternalCultureID(ILExecThread * _thread);
--- 423,438 ----
  extern ILNativeInt _IL_SignatureHelper_ClrSigCreateClass(ILExecThread * 
_thread, ILNativeInt _p1, ILInt32 _p2);
  extern ILNativeInt _IL_SignatureHelper_ClrSigCreateField(ILExecThread * 
_thread, ILNativeInt _p1);
+ extern ILNativeInt _IL_SignatureHelper_ClrSigCreateLocal(ILExecThread * 
_thread, ILNativeInt _p1);
+ extern ILBool _IL_SignatureHelper_ClrSigAddArgument(ILExecThread * _thread, 
ILNativeInt _p1, ILNativeInt _p2, ILNativeInt _p3);
+ extern ILNativeInt _IL_SignatureHelper_ClrSigCreateMethodCopy(ILExecThread * 
_thread, ILNativeInt _p1, ILNativeInt _p2, ILInt32 _p3);
+ extern ILBool _IL_SignatureHelper_ClrSigAddSentinel(ILExecThread * _thread, 
ILNativeInt _p1, ILNativeInt _p2);
  extern ILBool _IL_SignatureHelper_ClrSigIdentical(ILExecThread * _thread, 
ILNativeInt _p1, ILNativeInt _p2);
  extern ILInt32 _IL_SignatureHelper_ClrSigGetHashCode(ILExecThread * _thread, 
ILNativeInt _p1);
  extern System_Array * _IL_SignatureHelper_ClrSigGetBytes(ILExecThread * 
_thread, ILNativeInt _p1, ILNativeInt _p2);
  
! extern ILNativeInt _IL_ParameterBuilder_ClrParameterCreate(ILExecThread * 
_thread, ILNativeInt _p1, ILInt32 _p2, ILInt32 _p3, ILString * _p4);
! extern ILInt32 _IL_ParameterBuilder_ClrParameterGetPosition(ILExecThread * 
_thread, ILNativeInt _p1);
! extern ILInt32 _IL_ParameterBuilder_ClrParameterGetAttrs(ILExecThread * 
_thread, ILNativeInt _p1);
! extern ILString * _IL_ParameterBuilder_ClrParameterGetName(ILExecThread * 
_thread, ILNativeInt _p1);
  
  extern ILInt32 _IL_CultureInfo_InternalCultureID(ILExecThread * _thread);
***************
*** 452,539 ****
  extern ILInt32 _IL_StackFrame_InternalGetTotalFrames(ILExecThread * _thread);
  
- extern void _IL_CryptoMethods_Decrypt(ILExecThread * _thread, ILNativeInt 
_p1, System_Array * _p2, ILInt32 _p3, System_Array * _p4, ILInt32 _p5);
- extern void _IL_CryptoMethods_Encrypt(ILExecThread * _thread, ILNativeInt 
_p1, System_Array * _p2, ILInt32 _p3, System_Array * _p4, ILInt32 _p5);
- extern ILNativeInt _IL_CryptoMethods_EncryptCreate(ILExecThread * _thread, 
ILInt32 _p1, System_Array * _p2);
- extern ILNativeInt _IL_CryptoMethods_DecryptCreate(ILExecThread * _thread, 
ILInt32 _p1, System_Array * _p2);
- extern void _IL_CryptoMethods_SymmetricFree(ILExecThread * _thread, 
ILNativeInt _p1);
- extern ILBool _IL_CryptoMethods_IsSemiWeakKey(ILExecThread * _thread, 
System_Array * _p1, ILInt32 _p2);
- extern ILBool _IL_CryptoMethods_IsWeakKey(ILExecThread * _thread, 
System_Array * _p1, ILInt32 _p2);
- extern ILBool _IL_CryptoMethods_AlgorithmSupported(ILExecThread * _thread, 
ILInt32 _p1);
- extern void _IL_CryptoMethods_GenerateRandom(ILExecThread * _thread, 
System_Array * _p1, ILInt32 _p2, ILInt32 _p3);
- extern System_Array * _IL_CryptoMethods_GetKey(ILExecThread * _thread, 
ILInt32 _p1, ILString * _p2, ILInt32 _p3, ILInt32 * result);
- extern System_Array * _IL_CryptoMethods_NumPow(ILExecThread * _thread, 
System_Array * _p1, System_Array * _p2, System_Array * _p3);
- extern System_Array * _IL_CryptoMethods_NumMod(ILExecThread * _thread, 
System_Array * _p1, System_Array * _p2);
- extern System_Array * _IL_CryptoMethods_NumInv(ILExecThread * _thread, 
System_Array * _p1, System_Array * _p2);
- extern System_Array * _IL_CryptoMethods_NumMul(ILExecThread * _thread, 
System_Array * _p1, System_Array * _p2, System_Array * _p3);
- extern System_Array * _IL_CryptoMethods_NumAdd(ILExecThread * _thread, 
System_Array * _p1, System_Array * _p2, System_Array * _p3);
- extern ILBool _IL_CryptoMethods_NumZero(ILExecThread * _thread, System_Array 
* _p1);
- extern ILBool _IL_CryptoMethods_NumEq(ILExecThread * _thread, System_Array * 
_p1, System_Array * _p2);
- extern ILNativeInt _IL_CryptoMethods_HashNew(ILExecThread * _thread, ILInt32 
_p1);
- extern void _IL_CryptoMethods_HashReset(ILExecThread * _thread, ILNativeInt 
_p1);
- extern void _IL_CryptoMethods_HashFree(ILExecThread * _thread, ILNativeInt 
_p1);
- extern void _IL_CryptoMethods_HashUpdate(ILExecThread * _thread, ILNativeInt 
_p1, System_Array * _p2, ILInt32 _p3, ILInt32 _p4);
- extern void _IL_CryptoMethods_HashFinal(ILExecThread * _thread, ILNativeInt 
_p1, System_Array * _p2);
- extern System_Array * _IL_CryptoMethods_NumSub(ILExecThread * _thread, 
System_Array * _p1, System_Array * _p2, System_Array * _p3);
- extern ILBool _IL_CryptoMethods_SameKey(ILExecThread * _thread, System_Array 
* _p1, ILInt32 _p2, System_Array * _p3, ILInt32 _p4);
- extern void _IL_CryptoMethods_StoreKey(ILExecThread * _thread, ILInt32 _p1, 
ILString * _p2, System_Array * _p3);
- 
  extern ILString * _IL_DirMethods_GetSystemDirectory(ILExecThread * _thread);
  extern System_Array * _IL_DirMethods_GetLogicalDrives(ILExecThread * _thread);
  extern ILString * _IL_DirMethods_GetCurrentDirectory(ILExecThread * _thread);
! extern ILInt32 _IL_DirMethods_ChangeDirectory(ILExecThread * _thread, 
ILString * _p1);
! extern ILInt32 _IL_DirMethods_GetFilesInDirectory(ILExecThread * _thread, 
ILString * _p1, System_Array * * files);
  extern ILInt32 _IL_DirMethods_Delete(ILExecThread * _thread, ILString * _p1);
  extern ILInt32 _IL_DirMethods_GetCreationTime(ILExecThread * _thread, 
ILString * _p1, ILInt64 * create_time);
  extern ILInt32 _IL_DirMethods_GetLastAccess(ILExecThread * _thread, ILString 
* _p1, ILInt64 * lastac);
  extern ILInt32 _IL_DirMethods_GetLastModification(ILExecThread * _thread, 
ILString * _p1, ILInt64 * last_mod);
  extern ILInt32 _IL_DirMethods_Rename(ILExecThread * _thread, ILString * _p1, 
ILString * _p2);
  extern ILInt32 _IL_DirMethods_CreateDirectory(ILExecThread * _thread, 
ILString * _p1);
! extern void _IL_DirMethods_GetPathInfo(ILExecThread * _thread, void * 
_result);
  extern ILInt32 _IL_DirMethods_Copy(ILExecThread * _thread, ILString * _p1, 
ILString * _p2);
  
- extern ILBool _IL_FileMethods_ValidatePathname(ILExecThread * _thread, 
ILString * _p1);
- extern ILInt32 _IL_FileMethods_GetFileType(ILExecThread * _thread, ILString * 
_p1);
- extern ILInt32 _IL_FileMethods_SetCreationTime(ILExecThread * _thread, 
ILString * _p1, ILInt64 _p2);
- extern ILInt32 _IL_FileMethods_SetLastAccessTime(ILExecThread * _thread, 
ILString * _p1, ILInt64 _p2);
- extern ILInt32 _IL_FileMethods_SetLastWriteTime(ILExecThread * _thread, 
ILString * _p1, ILInt64 _p2);
- extern ILString * _IL_FileMethods_GetErrnoMessage(ILExecThread * _thread, 
ILInt32 _p1);
- extern ILInt32 _IL_FileMethods_GetAttributes(ILExecThread * _thread, ILString 
* _p1, ILInt32 * attrs);
- extern ILInt32 _IL_FileMethods_SetAttributes(ILExecThread * _thread, ILString 
* _p1, ILInt32 _p2);
- extern ILInt32 _IL_FileMethods_GetLength(ILExecThread * _thread, ILString * 
_p1, ILInt64 * length);
- extern ILBool _IL_FileMethods_Open(ILExecThread * _thread, ILString * _p1, 
ILInt32 _p2, ILInt32 _p3, ILInt32 _p4, ILNativeInt * handle);
- extern ILInt32 _IL_FileMethods_GetErrno(ILExecThread * _thread);
- extern ILBool _IL_FileMethods_CanSeek(ILExecThread * _thread, ILNativeInt 
_p1);
- extern ILBool _IL_FileMethods_CheckHandleAccess(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2);
- extern ILInt64 _IL_FileMethods_Seek(ILExecThread * _thread, ILNativeInt _p1, 
ILInt64 _p2, ILInt32 _p3);
- extern ILBool _IL_FileMethods_Close(ILExecThread * _thread, ILNativeInt _p1);
- extern ILBool _IL_FileMethods_Write(ILExecThread * _thread, ILNativeInt _p1, 
System_Array * _p2, ILInt32 _p3, ILInt32 _p4);
- extern ILBool _IL_FileMethods_FlushWrite(ILExecThread * _thread, ILNativeInt 
_p1);
- extern ILInt32 _IL_FileMethods_Read(ILExecThread * _thread, ILNativeInt _p1, 
System_Array * _p2, ILInt32 _p3, ILInt32 _p4);
- extern ILBool _IL_FileMethods_SetLength(ILExecThread * _thread, ILNativeInt 
_p1, ILInt64 _p2);
- extern ILNativeInt _IL_FileMethods_GetInvalidHandle(ILExecThread * _thread);
- extern ILBool _IL_FileMethods_HasAsync(ILExecThread * _thread);
- extern ILInt32 _IL_FileMethods_Copy(ILExecThread * _thread, ILString * _p1, 
ILString * _p2);
- 
- extern ILString * _IL_InfoMethods_GetRuntimeVersion(ILExecThread * _thread);
- extern ILString * _IL_InfoMethods_GetNetBIOSMachineName(ILExecThread * 
_thread);
- extern ILInt32 _IL_InfoMethods_GetPlatformID(ILExecThread * _thread);
- extern ILString * _IL_InfoMethods_GetUserDomainName(ILExecThread * _thread);
- extern ILBool _IL_InfoMethods_IsUserInteractive(ILExecThread * _thread);
- extern ILString * _IL_InfoMethods_GetUserName(ILExecThread * _thread);
- extern ILInt64 _IL_InfoMethods_GetWorkingSet(ILExecThread * _thread);
- extern ILString * _IL_InfoMethods_GetSpecialFolder(ILExecThread * _thread, 
ILInt32 _p1);
- 
- extern ILNativeInt _IL_RegexpMethods_CompileWithSyntaxInternal(ILExecThread * 
_thread, ILString * _p1, ILInt32 _p2);
- extern void _IL_RegexpMethods_FreeInternal(ILExecThread * _thread, 
ILNativeInt _p1);
- extern ILInt32 _IL_RegexpMethods_ExecInternal(ILExecThread * _thread, 
ILNativeInt _p1, ILString * _p2, ILInt32 _p3);
- extern ILObject * _IL_RegexpMethods_MatchInternal(ILExecThread * _thread, 
ILNativeInt _p1, ILString * _p2, ILInt32 _p3, ILInt32 _p4, ILObject * _p5);
- extern ILNativeInt _IL_RegexpMethods_CompileInternal(ILExecThread * _thread, 
ILString * _p1, ILInt32 _p2);
- 
- extern ILBool _IL_RuntimeSecurityManager_CanUseFileHandle(ILExecThread * 
_thread, ILObject * _this, ILNativeInt _p1);
- extern ILBool _IL_RuntimeSecurityManager_CanOpenFile(ILExecThread * _thread, 
ILObject * _this, ILString * _p1, ILInt32 _p2, ILInt32 _p3, ILInt32 _p4);
- 
- extern ILObject * _IL_Security_GetSecurityManager(ILExecThread * _thread);
- extern void _IL_Security_SetSecurityManager(ILExecThread * _thread, ILObject 
* _p1);
- 
  extern void _IL_Stdio_StdClose(ILExecThread * _thread, ILInt32 _p1);
  extern ILInt32 _IL_Stdio_StdPeek(ILExecThread * _thread, ILInt32 _p1);
--- 452,469 ----
  extern ILInt32 _IL_StackFrame_InternalGetTotalFrames(ILExecThread * _thread);
  
  extern ILString * _IL_DirMethods_GetSystemDirectory(ILExecThread * _thread);
  extern System_Array * _IL_DirMethods_GetLogicalDrives(ILExecThread * _thread);
  extern ILString * _IL_DirMethods_GetCurrentDirectory(ILExecThread * _thread);
! extern void _IL_DirMethods_GetPathInfo(ILExecThread * _thread, void * 
_result);
  extern ILInt32 _IL_DirMethods_Delete(ILExecThread * _thread, ILString * _p1);
  extern ILInt32 _IL_DirMethods_GetCreationTime(ILExecThread * _thread, 
ILString * _p1, ILInt64 * create_time);
  extern ILInt32 _IL_DirMethods_GetLastAccess(ILExecThread * _thread, ILString 
* _p1, ILInt64 * lastac);
  extern ILInt32 _IL_DirMethods_GetLastModification(ILExecThread * _thread, 
ILString * _p1, ILInt64 * last_mod);
+ extern ILInt32 _IL_DirMethods_ChangeDirectory(ILExecThread * _thread, 
ILString * _p1);
  extern ILInt32 _IL_DirMethods_Rename(ILExecThread * _thread, ILString * _p1, 
ILString * _p2);
  extern ILInt32 _IL_DirMethods_CreateDirectory(ILExecThread * _thread, 
ILString * _p1);
! extern ILInt32 _IL_DirMethods_GetFilesInDirectory(ILExecThread * _thread, 
ILString * _p1, System_Array * * files);
  extern ILInt32 _IL_DirMethods_Copy(ILExecThread * _thread, ILString * _p1, 
ILString * _p2);
  
  extern void _IL_Stdio_StdClose(ILExecThread * _thread, ILInt32 _p1);
  extern ILInt32 _IL_Stdio_StdPeek(ILExecThread * _thread, ILInt32 _p1);
***************
*** 567,570 ****
--- 497,583 ----
  extern ILBool _IL_TimeMethods_GetDaylightRules(ILExecThread * _thread, 
ILInt32 _p1, ILInt64 * start, ILInt64 * end, ILInt64 * delta);
  
+ extern ILString * _IL_FileMethods_GetErrnoMessage(ILExecThread * _thread, 
ILInt32 _p1);
+ extern ILBool _IL_FileMethods_ValidatePathname(ILExecThread * _thread, 
ILString * _p1);
+ extern ILBool _IL_FileMethods_Open(ILExecThread * _thread, ILString * _p1, 
ILInt32 _p2, ILInt32 _p3, ILInt32 _p4, ILNativeInt * handle);
+ extern ILInt32 _IL_FileMethods_GetErrno(ILExecThread * _thread);
+ extern ILBool _IL_FileMethods_CanSeek(ILExecThread * _thread, ILNativeInt 
_p1);
+ extern ILBool _IL_FileMethods_CheckHandleAccess(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2);
+ extern ILInt64 _IL_FileMethods_Seek(ILExecThread * _thread, ILNativeInt _p1, 
ILInt64 _p2, ILInt32 _p3);
+ extern ILBool _IL_FileMethods_Close(ILExecThread * _thread, ILNativeInt _p1);
+ extern ILBool _IL_FileMethods_Write(ILExecThread * _thread, ILNativeInt _p1, 
System_Array * _p2, ILInt32 _p3, ILInt32 _p4);
+ extern ILBool _IL_FileMethods_FlushWrite(ILExecThread * _thread, ILNativeInt 
_p1);
+ extern ILInt32 _IL_FileMethods_Read(ILExecThread * _thread, ILNativeInt _p1, 
System_Array * _p2, ILInt32 _p3, ILInt32 _p4);
+ extern ILBool _IL_FileMethods_SetLength(ILExecThread * _thread, ILNativeInt 
_p1, ILInt64 _p2);
+ extern ILNativeInt _IL_FileMethods_GetInvalidHandle(ILExecThread * _thread);
+ extern ILInt32 _IL_FileMethods_GetFileType(ILExecThread * _thread, ILString * 
_p1);
+ extern ILInt32 _IL_FileMethods_SetCreationTime(ILExecThread * _thread, 
ILString * _p1, ILInt64 _p2);
+ extern ILInt32 _IL_FileMethods_SetLastAccessTime(ILExecThread * _thread, 
ILString * _p1, ILInt64 _p2);
+ extern ILInt32 _IL_FileMethods_SetLastWriteTime(ILExecThread * _thread, 
ILString * _p1, ILInt64 _p2);
+ extern ILInt32 _IL_FileMethods_GetAttributes(ILExecThread * _thread, ILString 
* _p1, ILInt32 * attrs);
+ extern ILInt32 _IL_FileMethods_SetAttributes(ILExecThread * _thread, ILString 
* _p1, ILInt32 _p2);
+ extern ILInt32 _IL_FileMethods_GetLength(ILExecThread * _thread, ILString * 
_p1, ILInt64 * length);
+ extern ILBool _IL_FileMethods_HasAsync(ILExecThread * _thread);
+ extern ILInt32 _IL_FileMethods_Copy(ILExecThread * _thread, ILString * _p1, 
ILString * _p2);
+ 
+ extern ILBool _IL_RuntimeSecurityManager_CanUseFileHandle(ILExecThread * 
_thread, ILObject * _this, ILNativeInt _p1);
+ extern ILBool _IL_RuntimeSecurityManager_CanOpenFile(ILExecThread * _thread, 
ILObject * _this, ILString * _p1, ILInt32 _p2, ILInt32 _p3, ILInt32 _p4);
+ 
+ extern ILObject * _IL_Security_GetSecurityManager(ILExecThread * _thread);
+ extern void _IL_Security_SetSecurityManager(ILExecThread * _thread, ILObject 
* _p1);
+ 
+ extern ILInt32 _IL_InfoMethods_GetPlatformID(ILExecThread * _thread);
+ extern ILString * _IL_InfoMethods_GetRuntimeVersion(ILExecThread * _thread);
+ extern ILString * _IL_InfoMethods_GetNetBIOSMachineName(ILExecThread * 
_thread);
+ extern ILString * _IL_InfoMethods_GetUserDomainName(ILExecThread * _thread);
+ extern ILBool _IL_InfoMethods_IsUserInteractive(ILExecThread * _thread);
+ extern ILString * _IL_InfoMethods_GetUserName(ILExecThread * _thread);
+ extern ILInt64 _IL_InfoMethods_GetWorkingSet(ILExecThread * _thread);
+ extern ILString * _IL_InfoMethods_GetSpecialFolder(ILExecThread * _thread, 
ILInt32 _p1);
+ 
+ extern ILNativeInt _IL_RegexpMethods_CompileWithSyntaxInternal(ILExecThread * 
_thread, ILString * _p1, ILInt32 _p2);
+ extern void _IL_RegexpMethods_FreeInternal(ILExecThread * _thread, 
ILNativeInt _p1);
+ extern ILInt32 _IL_RegexpMethods_ExecInternal(ILExecThread * _thread, 
ILNativeInt _p1, ILString * _p2, ILInt32 _p3);
+ extern ILObject * _IL_RegexpMethods_MatchInternal(ILExecThread * _thread, 
ILNativeInt _p1, ILString * _p2, ILInt32 _p3, ILInt32 _p4, ILObject * _p5);
+ extern ILNativeInt _IL_RegexpMethods_CompileInternal(ILExecThread * _thread, 
ILString * _p1, ILInt32 _p2);
+ 
+ extern ILBool _IL_CryptoMethods_IsSemiWeakKey(ILExecThread * _thread, 
System_Array * _p1, ILInt32 _p2);
+ extern ILBool _IL_CryptoMethods_IsWeakKey(ILExecThread * _thread, 
System_Array * _p1, ILInt32 _p2);
+ extern ILNativeInt _IL_CryptoMethods_EncryptCreate(ILExecThread * _thread, 
ILInt32 _p1, System_Array * _p2);
+ extern ILNativeInt _IL_CryptoMethods_DecryptCreate(ILExecThread * _thread, 
ILInt32 _p1, System_Array * _p2);
+ extern void _IL_CryptoMethods_SymmetricFree(ILExecThread * _thread, 
ILNativeInt _p1);
+ extern ILNativeInt _IL_CryptoMethods_HashNew(ILExecThread * _thread, ILInt32 
_p1);
+ extern void _IL_CryptoMethods_HashReset(ILExecThread * _thread, ILNativeInt 
_p1);
+ extern void _IL_CryptoMethods_HashFree(ILExecThread * _thread, ILNativeInt 
_p1);
+ extern void _IL_CryptoMethods_HashUpdate(ILExecThread * _thread, ILNativeInt 
_p1, System_Array * _p2, ILInt32 _p3, ILInt32 _p4);
+ extern void _IL_CryptoMethods_HashFinal(ILExecThread * _thread, ILNativeInt 
_p1, System_Array * _p2);
+ extern ILBool _IL_CryptoMethods_AlgorithmSupported(ILExecThread * _thread, 
ILInt32 _p1);
+ extern void _IL_CryptoMethods_GenerateRandom(ILExecThread * _thread, 
System_Array * _p1, ILInt32 _p2, ILInt32 _p3);
+ extern ILBool _IL_CryptoMethods_SameKey(ILExecThread * _thread, System_Array 
* _p1, ILInt32 _p2, System_Array * _p3, ILInt32 _p4);
+ extern System_Array * _IL_CryptoMethods_GetKey(ILExecThread * _thread, 
ILInt32 _p1, ILString * _p2, ILInt32 _p3, ILInt32 * result);
+ extern System_Array * _IL_CryptoMethods_NumPow(ILExecThread * _thread, 
System_Array * _p1, System_Array * _p2, System_Array * _p3);
+ extern System_Array * _IL_CryptoMethods_NumMod(ILExecThread * _thread, 
System_Array * _p1, System_Array * _p2);
+ extern System_Array * _IL_CryptoMethods_NumInv(ILExecThread * _thread, 
System_Array * _p1, System_Array * _p2);
+ extern System_Array * _IL_CryptoMethods_NumMul(ILExecThread * _thread, 
System_Array * _p1, System_Array * _p2, System_Array * _p3);
+ extern System_Array * _IL_CryptoMethods_NumAdd(ILExecThread * _thread, 
System_Array * _p1, System_Array * _p2, System_Array * _p3);
+ extern ILBool _IL_CryptoMethods_NumZero(ILExecThread * _thread, System_Array 
* _p1);
+ extern ILBool _IL_CryptoMethods_NumEq(ILExecThread * _thread, System_Array * 
_p1, System_Array * _p2);
+ extern System_Array * _IL_CryptoMethods_NumSub(ILExecThread * _thread, 
System_Array * _p1, System_Array * _p2, System_Array * _p3);
+ extern void _IL_CryptoMethods_Decrypt(ILExecThread * _thread, ILNativeInt 
_p1, System_Array * _p2, ILInt32 _p3, System_Array * _p4, ILInt32 _p5);
+ extern void _IL_CryptoMethods_Encrypt(ILExecThread * _thread, ILNativeInt 
_p1, System_Array * _p2, ILInt32 _p3, System_Array * _p4, ILInt32 _p5);
+ extern void _IL_CryptoMethods_StoreKey(ILExecThread * _thread, ILInt32 _p1, 
ILString * _p2, System_Array * _p3);
+ 
+ extern ILInt32 _IL_Process_GetHandleCount(ILExecThread * _thread, ILNativeInt 
_p1);
+ extern ILNativeInt _IL_Process_GetMainWindowHandle(ILExecThread * _thread, 
ILInt32 _p1);
+ extern ILString * _IL_Process_GetMainWindowTitle(ILExecThread * _thread, 
ILNativeInt _p1);
+ extern ILInt32 _IL_Process_GetProcessorAffinity(ILExecThread * _thread, 
ILNativeInt _p1);
+ extern ILBool _IL_Process_MainWindowIsResponding(ILExecThread * _thread, 
ILNativeInt _p1);
+ extern void _IL_Process_CloseProcess(ILExecThread * _thread, ILNativeInt _p1, 
ILInt32 _p2);
+ extern ILBool _IL_Process_CloseMainWindow(ILExecThread * _thread, ILNativeInt 
_p1);
+ extern void _IL_Process_GetCurrentProcessInfo(ILExecThread * _thread, ILInt32 
* processID, ILNativeInt * handle);
+ extern void _IL_Process_KillProcess(ILExecThread * _thread, ILNativeInt _p1, 
ILInt32 _p2);
+ extern ILBool _IL_Process_StartProcess(ILExecThread * _thread, ILString * 
_p1, ILString * _p2, System_Array * _p3, ILInt32 _p4, ILInt32 _p5, System_Array 
* _p6, ILString * _p7, ILNativeInt _p8, ILNativeInt * processHandle, ILInt32 * 
processID, ILNativeInt * stdinHandle, ILNativeInt * stdoutHandle, ILNativeInt * 
stderrHandle);
+ extern ILBool _IL_Process_WaitForExit(ILExecThread * _thread, ILNativeInt 
_p1, ILInt32 _p2, ILInt32 _p3, ILInt32 * exitCode);
+ extern ILBool _IL_Process_WaitForInputIdle(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2, ILInt32 _p3);
+ 
  extern ILNativeInt _IL_SocketMethods_GetInvalidHandle(ILExecThread * _thread);
  extern ILBool _IL_SocketMethods_AddressFamilySupported(ILExecThread * 
_thread, ILInt32 _p1);
***************
*** 598,604 ****
  extern void _IL_SocketMethods_WaitHandleSet(ILExecThread * _thread, ILObject 
* _p1);
  
- extern ILBool _IL_Dns_InternalGetHostByName(ILExecThread * _thread, ILString 
* _p1, ILString * * h_name, System_Array * * h_aliases, System_Array * * 
h_addr_list);
- extern ILBool _IL_Dns_InternalGetHostByAddr(ILExecThread * _thread, ILInt64 
_p1, ILString * * h_name, System_Array * * h_aliases, System_Array * * 
h_addr_list);
- 
  extern ILInt32 _IL_IPAddress_HostToNetworkOrder_i(ILExecThread * _thread, 
ILInt32 _p1);
  extern ILInt32 _IL_IPAddress_NetworkToHostOrder_i(ILExecThread * _thread, 
ILInt32 _p1);
--- 611,614 ----
***************
*** 608,622 ****
  extern ILInt16 _IL_IPAddress_NetworkToHostOrder_s(ILExecThread * _thread, 
ILInt16 _p1);
  
! extern ILInt32 _IL_Process_GetHandleCount(ILExecThread * _thread, ILNativeInt 
_p1);
! extern ILNativeInt _IL_Process_GetMainWindowHandle(ILExecThread * _thread, 
ILNativeInt _p1);
! extern ILString * _IL_Process_GetMainWindowTitle(ILExecThread * _thread, 
ILNativeInt _p1);
! extern ILInt32 _IL_Process_GetProcessorAffinity(ILExecThread * _thread, 
ILNativeInt _p1);
! extern ILBool _IL_Process_MainWindowIsResponding(ILExecThread * _thread, 
ILNativeInt _p1);
! extern void _IL_Process_CloseProcess(ILExecThread * _thread, ILNativeInt _p1, 
ILInt32 _p2);
! extern ILBool _IL_Process_CloseMainWindow(ILExecThread * _thread, ILNativeInt 
_p1);
! extern void _IL_Process_GetCurrentProcessInfo(ILExecThread * _thread, ILInt32 
* processID, ILNativeInt * handle);
! extern void _IL_Process_KillProcess(ILExecThread * _thread, ILNativeInt _p1, 
ILInt32 _p2);
! extern ILBool _IL_Process_StartProcess(ILExecThread * _thread, ILString * 
_p1, ILString * _p2, System_Array * _p3, ILInt32 _p4, ILInt32 _p5, System_Array 
* _p6, ILString * _p7, ILNativeInt _p8, ILNativeInt * processHandle, ILInt32 * 
processID, ILNativeInt * stdinHandle, ILNativeInt * stdoutHandle, ILNativeInt * 
stderrHandle);
! extern ILBool _IL_Process_WaitForExit(ILExecThread * _thread, ILNativeInt 
_p1, ILInt32 _p2, ILInt32 _p3, ILInt32 * exitCode);
! extern ILBool _IL_Process_WaitForInputIdle(ILExecThread * _thread, 
ILNativeInt _p1, ILInt32 _p2, ILInt32 _p3);
  
--- 618,622 ----
  extern ILInt16 _IL_IPAddress_NetworkToHostOrder_s(ILExecThread * _thread, 
ILInt16 _p1);
  
! extern ILBool _IL_Dns_InternalGetHostByName(ILExecThread * _thread, ILString 
* _p1, ILString * * h_name, System_Array * * h_aliases, System_Array * * 
h_addr_list);
! extern ILBool _IL_Dns_InternalGetHostByAddr(ILExecThread * _thread, ILInt64 
_p1, ILString * * h_name, System_Array * * h_aliases, System_Array * * 
h_addr_list);
  

Index: int_table.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/engine/int_table.c,v
retrieving revision 1.68
retrieving revision 1.69
diff -C2 -r1.68 -r1.69
*** int_table.c 20 Jul 2003 04:59:09 -0000      1.68
--- int_table.c 21 Jul 2003 03:03:21 -0000      1.69
***************
*** 41,44 ****
--- 41,95 ----
  #if !defined(HAVE_LIBFFI)
  
+ static void marshal_pppp(void (*fn)(), void *rvalue, void **avalue)
+ {
+       *((void * *)rvalue) = (*(void * (*)(void *, void *, void *))fn)(*((void 
* *)(avalue[0])), *((void * *)(avalue[1])), *((void * *)(avalue[2])));
+ }
+ 
+ #endif
+ 
[...2717 lines suppressed...]
!       IL_METHOD("WaitForInputIdle", "(jii)Z", _IL_Process_WaitForInputIdle, 
marshal_bpjii)
  IL_METHOD_END
  
--- 2777,2792 ----
  #if !defined(HAVE_LIBFFI)
  
! static void marshal_bplppp(void (*fn)(), void *rvalue, void **avalue)
  {
!       *((ILNativeInt *)rvalue) = (*(ILInt8 (*)(void *, ILInt64, void *, void 
*, void *))fn)(*((void * *)(avalue[0])), *((ILInt64 *)(avalue[1])), *((void * 
*)(avalue[2])), *((void * *)(avalue[3])), *((void * *)(avalue[4])));
  }
  
  #endif
  
! #ifndef _IL_Dns_suppressed
  
! IL_METHOD_BEGIN(Dns_Methods)
!       IL_METHOD("InternalGetHostByName", 
"(oSystem.String;&oSystem.String;&[oSystem.String;&[l)Z", 
_IL_Dns_InternalGetHostByName, marshal_bppppp)
!       IL_METHOD("InternalGetHostByAddr", 
"(l&oSystem.String;&[oSystem.String;&[l)Z", _IL_Dns_InternalGetHostByAddr, 
marshal_bplppp)
  IL_METHOD_END
  

Index: lib_task.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/engine/lib_task.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -r1.6 -r1.7
*** lib_task.c  15 May 2003 06:02:07 -0000      1.6
--- lib_task.c  21 Jul 2003 03:03:21 -0000      1.7
***************
*** 22,25 ****
--- 22,61 ----
  #include "lib_defs.h"
  #include "il_utils.h"
+ #include "il_sysio.h"
+ #include "il_thread.h"
+ #ifdef IL_WIN32_PLATFORM
+       #include <windows.h>
+ #else
+       #ifdef HAVE_SYS_TYPES_H
+               #include <sys/types.h>
+       #endif
+       #ifdef HAVE_UNISTD_H
+               #include <unistd.h>
+       #endif
+       #ifdef HAVE_SYS_WAIT_H
+               #include <sys/wait.h>
+       #endif
+       #ifndef WEXITSTATUS
+               #define WEXITSTATUS(status)             ((unsigned)(status) >> 
8)
+       #endif
+       #ifndef WIFEXITED
+               #define WIFEXITED(status)               (((status) & 255) == 0)
+       #endif
+       #ifndef WTERMSIG
+               #define WTERMSIG(status)                (((unsigned)(status)) & 
0x7F)
+       #endif
+       #ifndef WIFSIGNALLED
+               #define WIFSIGNALLED(status)    (((status) & 255) != 0)
+       #endif
+       #ifndef WCOREDUMP
+               #define WCOREDUMP(status)               (((status) & 0x80) != 0)
+       #endif
+       #ifdef HAVE_FCNTL
+               #include <fcntl.h>
+       #endif
+       #include <signal.h>
+       #include <stdlib.h>
+       #include <errno.h>
+ #endif
  
  #ifdef        __cplusplus
***************
*** 153,168 ****
                                                                   ILNativeInt 
processHandle)
  {
        /* TODO */
        return -1;
  }
  
  /*
!  * private static IntPtr GetMainWindowHandle(IntPtr processHandle);
   */
  ILNativeInt _IL_Process_GetMainWindowHandle(ILExecThread *_thread,
!                                                                               
        ILNativeInt processHandle)
  {
!       /* TODO */
        return 0;
  }
  
--- 189,250 ----
                                                                   ILNativeInt 
processHandle)
  {
+ #ifdef IL_WIN32_PLATFORM
        /* TODO */
        return -1;
+ #else
+       /* Returning -1 tells the caller to assume that there
+          are 3 handles for stdin, stdout, and stderr */
+       return -1;
+ #endif
  }
  
+ #ifdef IL_WIN32_PLATFORM
+ 
  /*
!  * User data for "EnumCallback".
!  */
! typedef struct
! {
!       DWORD   processId;
!       HWND    found;
! 
! } EnumCallbackData;
! 
! /*
!  * Callback for "EnumWindows".
!  */
! static BOOL EnumCallback(HWND hWnd, LPARAM lParam)
! {
!       EnumCallbackData *data = (EnumCallbackData *)lParam;
!       DWORD processID = 0;
!       GetWindowThreadProcessId(hWnd, &processID);
!       if(data->processID == processID &&
!          GetWindow(hWnd, GW_OWNER) == NULL &&
!          IsWindowVisible(hWnd))
!       {
!               data->found = hWnd;
!               return FALSE;
!       }
!       return TRUE;
! }
! 
! #endif /* IL_WIN32_PLATFORM */
! 
! /*
!  * private static IntPtr GetMainWindowHandle(int processID);
   */
  ILNativeInt _IL_Process_GetMainWindowHandle(ILExecThread *_thread,
!                                                                               
        ILInt32 processID)
  {
! #ifdef IL_WIN32_PLATFORM
!       EnumCallbackData data;
!       data.process = (DWORD)processID;
!       data.found = NULL;
!       EnumWindows(EnumCallback, (LPARAM)&data);
!       return (ILNativeInt)(data.found);
! #else
!       /* Non-Win32 platforms don't have a notion of "main window" */
        return 0;
+ #endif
  }
  
***************
*** 173,178 ****
                                                                                
 ILNativeInt windowHandle)
  {
!       /* TODO */
        return 0;
  }
  
--- 255,279 ----
                                                                                
 ILNativeInt windowHandle)
  {
! #ifdef IL_WIN32_PLATFORM
!       int len = GetWindowTextLength((HWnd)windowHandle);
!       char *buf;
!       ILString *str;
!       if(len <= 0)
!       {
!               return 0;
!       }
!       buf = (char *)ILMalloc(len + 1);
!       if(!buf)
!       {
!               ILExecThreadThrowOutOfMemory(_thread);
!               return 0;
!       }
!       str = ILStringCreate(_thread, buf);
!       ILFree(buf);
!       return str;
! #else
!       /* Non-Win32 platforms don't have a notion of "main window" */
        return 0;
+ #endif
  }
  
***************
*** 183,188 ****
                                                                                
 ILNativeInt processHandle)
  {
!       /* TODO */
        return 1;
  }
  
--- 284,304 ----
                                                                                
 ILNativeInt processHandle)
  {
! #ifdef IL_WIN32_PLATFORM
!       DWORD processAffinity, systemAffinity;
!       if(GetProcessAffinityMask((HANDLE)processHandle,
!                                                         &processAffinity, 
&systemAffinity))
!       {
!               return (ILInt32)processAffinity;
!       }
!       else
!       {
!               /* Something went wrong - assume execution on CPU #1 */
!               return 1;
!       }
! #else
!       /* We have no way to get the affinity on non-Win32 systems,
!          so just assume that the process is always on CPU #1 */
        return 1;
+ #endif
  }
  
***************
*** 193,198 ****
                                                                                
  ILNativeInt windowHandle)
  {
!       /* TODO */
        return 1;
  }
  
--- 309,330 ----
                                                                                
  ILNativeInt windowHandle)
  {
! #ifdef IL_WIN32_PLATFORM
!       /* Send message zero to the window, to ping it.  If we don't get a
!          response, then assume that the window is no longer responding */
!       LRESULT result = 0;
!       if(SendMessageTimeout((HWND)windowHandle, 0, 0, 0,
!                                                 SMTO_ABORTIFHUNG, 5000, 
&result) != 0)
!       {
!               return 1;
!       }
!       else
!       {
!               return 0;
!       }
! #else
!       /* Non-Win32 platforms don't have main windows, so just pretend
!          that the application's "main window" is responding */
        return 1;
+ #endif
  }
  
***************
*** 204,208 ****
                                                          ILInt32 processID)
  {
!       /* TODO */
  }
  
--- 336,342 ----
                                                          ILInt32 processID)
  {
! #ifdef IL_WIN32_PLATFORM
!       CloseHandle((HANDLE)processHandle);
! #endif
  }
  
***************
*** 213,218 ****
                                                                   ILNativeInt 
windowHandle)
  {
!       /* TODO */
        return 0;
  }
  
--- 347,362 ----
                                                                   ILNativeInt 
windowHandle)
  {
! #ifdef IL_WIN32_PLATFORM
!       /* Don't close if the window is currently disabled */
!       if((GetWindowLong((HWND)windowHandle, GWL_STYLE) & WS_DISABLED) == 0)
!       {
!               PostMessage((HWND)windowHandle, WM_CLOSE, 0, 0);
!               return 1;
!       }
!       return 0;
! #else
!       /* Non-Win32 platforms don't have a notion of "main window" */
        return 0;
+ #endif
  }
  
***************
*** 225,230 ****
--- 369,382 ----
                                                                           
ILNativeInt *handle)
  {
+ #ifdef IL_WIN32_PLATFORM
+       *processID = (ILInt32)(GetCurrentProcessId());
+       *handle = (ILNativeInt)(GetCurrentProcess());
+ #elif defined(HAVE_GETPID)
+       *processID = (ILInt32)(getpid());
+       *handle = 0;
+ #else
        *processID = 0;
        *handle = 0;
+ #endif
  }
  
***************
*** 235,242 ****
                                                         ILNativeInt 
processHandle, ILInt32 processID)
  {
!       /* TODO */
  }
  
  /*
   * private static bool StartProcess(String filename, String arguments,
   *                                                                    
String[] argv, int flags,
--- 387,409 ----
                                                         ILNativeInt 
processHandle, ILInt32 processID)
  {
! #ifdef IL_WIN32_PLATFORM
!       TerminateProcess((HANDLE)processHandle, (UINT)(-1));
! #elif defined(SIGKILL)
!       kill((int)processID, SIGKILL);
! #endif
  }
  
  /*
+  * Process start flags.
+  */
+ #define       ProcessStart_CreateNoWindow             0x0001
+ #define       ProcessStart_ErrorDialog                0x0002
+ #define       ProcessStart_RedirectStdin              0x0004
+ #define       ProcessStart_RedirectStdout             0x0008
+ #define       ProcessStart_RedirectStderr             0x0010
+ #define       ProcessStart_UseShellExecute    0x0020
+ #define       ProcessStart_ExecOverTop                0x0040
+ 
+ /*
   * private static bool StartProcess(String filename, String arguments,
   *                                                                    
String[] argv, int flags,
***************
*** 264,269 ****
                                                                ILNativeInt 
*stderrHandle)
  {
!       /* TODO */
        return 0;
  }
  
--- 431,743 ----
                                                                ILNativeInt 
*stderrHandle)
  {
! #ifdef IL_WIN32_PLATFORM
! 
!       const char *fname;
!       const char *args;
!       STARTUPINFO startupInfo;
!       PROCESS_INFORMATION processInfo;
!       char *env = 0;
!       ILBool result;
!       HANDLE readSide, writeSide;
!       HANDLE cleanups[8];
!       int numCleanups = 0;
!       HANDLE closeAfterFork[8];
!       int numCloseAfterFork = 0;
!       int index;
! 
!       /* Convert the parameters into something that the OS can understand */
!       fname = ILStringToAnsi(_thread, filename);
!       if(!fname)
!       {
!               return 0;
!       }
!       args = ILStringToAnsi(_thread, arguments);
!       if(!args)
!       {
!               return 0;
!       }
!       ILMemZero(&startupInfo, sizeof(startupInfo));
!       startupInfo.cb = sizeof(STARTUPINFO);
!       startupInfo.dwFlags = STARTF_USESHOWWINDOW;
!       startupInfo.wShowWindow = (WORD)windowStyle;
! 
!       /* Redirect stdin, stdout, and stderr if necessary */
!       *stdinHandle = (ILNativeInt)(IL_SysIOHandle_Invalid);
!       *stdoutHandle = (ILNativeInt)(IL_SysIOHandle_Invalid);
!       *stderrHandle = (ILNativeInt)(IL_SysIOHandle_Invalid);
!       if((flags & (ProcessStart_RedirectStdin |
!                                ProcessStart_RedirectStdout |
!                                ProcessStart_RedirectStderr)) != 0)
!       {
!               startupInfo.dwFlags |= STARTF_USESTDHANDLES;
!               if((flags & ProcesStart_RedirectStdin) != 0)
!               {
!                       CreatePipe(&readSide, &writeSide, NULL, 0);
!                       *stdinHandle = (ILNativeInt)writeSide;
!                       SetHandleInformation(readSide, HANDLE_FLAG_INHERIT,
!                                                                
HANDLE_FLAG_INHERIT);
!                       startupInfo.hStdInput = readSide;
!                       cleanups[numCleanups++] = readSide;
!                       cleanups[numCleanups++] = writeSide;
!                       closeAfterFork[numCloseAfterFork++] = readSide;
!               }
!               else
!               {
!                       startupInfo.hStdInput = GetStdHandle(STD_INPUT_HANDLE);
!               }
!               if((flags & ProcesStart_RedirectStdout) != 0)
!               {
!                       CreatePipe(&readSide, &writeSide, NULL, 0);
!                       *stdoutHandle = (ILNativeInt)readSide;
!                       SetHandleInformation(writeSide, HANDLE_FLAG_INHERIT,
!                                                                
HANDLE_FLAG_INHERIT);
!                       startupInfo.hStdOutput = writeSide;
!                       cleanups[numCleanups++] = readSide;
!                       cleanups[numCleanups++] = writeSide;
!                       closeAfterFork[numCloseAfterFork++] = writeSide;
!               }
!               else
!               {
!                       startupInfo.hStdOutput = 
GetStdHandle(STD_OUTPUT_HANDLE);
!               }
!               if((flags & ProcesStart_RedirectStderr) != 0)
!               {
!                       CreatePipe(&readSide, &writeSide, NULL, 0);
!                       *stderrHandle = (ILNativeInt)readSide;
!                       SetHandleInformation(writeSide, HANDLE_FLAG_INHERIT,
!                                                                
HANDLE_FLAG_INHERIT);
!                       startupInfo.hStdError = writeSide;
!                       cleanups[numCleanups++] = readSide;
!                       cleanups[numCleanups++] = writeSide;
!                       closeAfterFork[numCloseAfterFork++] = writeSide;
!               }
!               else
!               {
!                       startupInfo.hStdError = GetStdHandle(STD_ERROR_HANDLE);
!               }
!       }
! 
!       /* TODO: shell execution, environment variables, and ExecOverTop */
! 
!       /* Launch the process */
!       *processID = -1;
!       *processHandle = 0;
!       result = 0;
!       if(CreateProcess(fname, args, NULL, NULL, TRUE, 0, env, NULL,
!                                        &startupInfo, &processInfo))
!       {
!               *processHandle = (ILNativeInt)(processInfo.hProcess);
!               *processID = (ILInt32)(processInfo.dwProcessId);
!               result = 1;
!       }
! 
!       /* Clean up and exit */
!       if(env)
!       {
!               ILFree(env);
!       }
!       if(result)
!       {
!               for(index = 0; index < numCloseAfterFork; ++index)
!               {
!                       CloseHandle(closeAfterFork[index]);
!               }
!       }
!       else
!       {
!               for(index = 0; index < numCleanups; ++index)
!               {
!                       CloseHandle(cleanups[index]);
!               }
!       }
!       return result;
! 
! #elif defined(HAVE_FORK) && defined(HAVE_EXECV) && (defined(HAVE_WAITPID) || 
defined(HAVE_WAIT))
! #define       IL_USING_FORK   1
! 
!       const char *fname;
!       char **args;
!       int stdinFds[2] = {-1, -1};
!       int stdoutFds[2] = {-1, -1};
!       int stderrFds[2] = {-1, -1};
!       ILBool result = 0;
!       int pid;
!       ILInt32 argc;
!       const char *ansi;
! 
!       /* Convert the parameters into something that the OS can understand */
!       fname = ILStringToAnsi(_thread, filename);
!       if(!fname)
!       {
!               return 0;
!       }
!       args = (char **)ILCalloc(argv->length + 1, sizeof(char *));
!       if(!args)
!       {
!               ILExecThreadThrowOutOfMemory(_thread);
!               return 0;
!       }
!       argc = 0;
!       while(argc < argv->length)
!       {
!               ansi = ILStringToAnsi
!                       (_thread, ((ILString **)ArrayToBuffer(argv))[argc]);
!               if(!ansi)
!               {
!                       while(argc > 0)
!                       {
!                               --argc;
!                               ILFree(args[argc]);
!                       }
!                       ILFree(args);
!                       return 0;
!               }
!               args[argc] = (char *)ILMalloc(strlen(ansi) + 1);
!               if(!(args[argc]))
!               {
!                       while(argc > 0)
!                       {
!                               --argc;
!                               ILFree(args[argc]);
!                       }
!                       ILFree(args);
!                       return 0;
!               }
!               strcpy(args[argc], ansi);
!               ++argc;
!       }
!       args[argc] = 0;
! 
!       /* TODO: convert the environment */
! 
!       /* Redirect stdin, stdout, and stderr as necessary */
!       *stdinHandle = (ILNativeInt)(ILSysIOHandle_Invalid);
!       *stdoutHandle = (ILNativeInt)(ILSysIOHandle_Invalid);
!       *stderrHandle = (ILNativeInt)(ILSysIOHandle_Invalid);
!       if((flags & ProcessStart_RedirectStdin) != 0)
!       {
!               if(pipe(stdinFds) < 0)
!               {
!                       return 0;
!               }
!       #if HAVE_FCNTL
!               fcntl(stdinFds[1], F_SETFD, 1);
!       #endif
!               *stdinHandle = (ILNativeInt)(stdinFds[1]);
!       }
!       if((flags & ProcessStart_RedirectStdout) != 0)
!       {
!               if(pipe(stdoutFds) < 0)
!               {
!                       if((flags & ProcessStart_RedirectStdin) != 0)
!                       {
!                               close(stdinFds[0]);
!                               close(stdinFds[1]);
!                       }
!                       return 0;
!               }
!       #if HAVE_FCNTL
!               fcntl(stdoutFds[0], F_SETFD, 1);
!       #endif
!               *stdoutHandle = (ILNativeInt)(stdoutFds[0]);
!       }
!       if((flags & ProcessStart_RedirectStderr) != 0)
!       {
!               if(pipe(stderrFds) < 0)
!               {
!                       if((flags & ProcessStart_RedirectStdin) != 0)
!                       {
!                               close(stdinFds[0]);
!                               close(stdinFds[1]);
!                       }
!                       if((flags & ProcessStart_RedirectStdout) != 0)
!                       {
!                               close(stdoutFds[0]);
!                               close(stdoutFds[1]);
!                       }
!                       return 0;
!               }
!       #if HAVE_FCNTL
!               fcntl(stderrFds[0], F_SETFD, 1);
!       #endif
!               *stderrHandle = (ILNativeInt)(stderrFds[0]);
!       }
! 
!       /* Fork and execute the process */
!       *processID = -1;
!       *processHandle = 0;
!       pid = fork();
!       if(pid == 0)
!       {
!               /* We are in the child process */
!               if((flags & ProcessStart_RedirectStdin) != 0)
!               {
!                       dup2(stdinFds[0], 0);
!                       close(stdinFds[0]);
!               }
!               if((flags & ProcessStart_RedirectStdout) != 0)
!               {
!                       dup2(stdoutFds[1], 1);
!                       close(stdoutFds[1]);
!               }
!               if((flags & ProcessStart_RedirectStderr) != 0)
!               {
!                       dup2(stderrFds[1], 2);
!                       close(stderrFds[1]);
!               }
!               execvp(fname, args);
!               exit(1);
!       }
!       else if(pid > 0)
!       {
!               /* We are in the parent process */
!               if((flags & ProcessStart_RedirectStdin) != 0)
!               {
!                       close(stdinFds[0]);
!               }
!               if((flags & ProcessStart_RedirectStdout) != 0)
!               {
!                       close(stdoutFds[1]);
!               }
!               if((flags & ProcessStart_RedirectStderr) != 0)
!               {
!                       close(stderrFds[1]);
!               }
!               *processID = (ILInt32)pid;
!               result = 1;
!       }
!       else
!       {
!               /* An error occurred during the fork */
!               if((flags & ProcessStart_RedirectStdin) != 0)
!               {
!                       close(stdinFds[0]);
!                       close(stdinFds[1]);
!               }
!               if((flags & ProcessStart_RedirectStdout) != 0)
!               {
!                       close(stdoutFds[0]);
!                       close(stdoutFds[1]);
!               }
!               if((flags & ProcessStart_RedirectStderr) != 0)
!               {
!                       close(stderrFds[0]);
!                       close(stderrFds[1]);
!               }
!       }
! 
!       /* Clean up and exit */
!       while(argc > 0)
!       {
!               --argc;
!               ILFree(args[argc]);
!       }
!       ILFree(args);
!       return result;
! 
! #else
!       /* Don't know how to spawn processes on this platform */
        return 0;
+ #endif
  }
  
***************
*** 277,282 ****
                                                           ILInt32 *exitCode)
  {
!       /* TODO */
        return 0;
  }
  
--- 751,846 ----
                                                           ILInt32 *exitCode)
  {
! #ifdef IL_WIN32_PLATFORM
! 
!       DWORD result;
!       result = WaitForSingleObject((HANDLE)processHandle, 
(DWORD)milliseconds);
!       if(result == WAIT_OBJECT_0)
!       {
!               if(GetExitCodeProcess((HANDLE)processHandle, &result))
!               {
!                       *exitCode = (ILInt32)result;
!                       return 1;
!               }
!               else
!               {
!                       *exitCode = 1;
!                       return 1;
!               }
!       }
!       else
!       {
!               *exitCode = 0;
!               return 0;
!       }
! 
! #elif defined(IL_USING_FORK)
! 
!       int status, result;
!       status = 1;
!       if(milliseconds < 0 || milliseconds == (ILInt32)0x7FFFFFFF)
!       {
!               /* Wait indefinitely for the process to exit */
!               while((result = (int)waitpid((int)processID, &status, 0)) !=
!                               (int)processID)
!               {
!                       if(result == -1)
!                       {
!                               if(errno != EINTR)
!                               {
!                                       return 0;
!                               }
!                       }
!               }
!       }
!       else if(milliseconds == 0)
!       {
!               /* Test and return immediately */
!               result = (int)waitpid((int)processID, &status, WNOHANG);
!               if(result != (int)processID)
!               {
!                       return 0;
!               }
!       }
!       else
!       {
!               /* Wait for a specified timeout period */
!               do
!               {
!                       result = (int)waitpid((int)processID, &status, WNOHANG);
!                       if(result == (int)processID)
!                       {
!                               break;
!                       }
!                       else if(result == -1)
!                       {
!                               if(errno != EINTR)
!                               {
!                                       return 0;
!                               }
!                       }
!                       ILThreadSleep(1);
!                       --milliseconds;
!               }
!               while(milliseconds > 0);
!               if(milliseconds <= 0)
!               {
!                       return 0;
!               }
!       }
!       if(WIFEXITED(status))
!       {
!               *exitCode = (ILInt32)(WEXITSTATUS(status));
!       }
!       else
!       {
!               /* Exited because of a signal */
!               *exitCode = 127;
!       }
!       return 1;
! 
! #else
!       /* Don't know how to wait for processes on this platform */
        return 0;
+ #endif
  }
  
***************
*** 290,295 ****
                                                                        ILInt32 
milliseconds)
  {
!       /* TODO */
!       return 0;
  }
  
--- 854,864 ----
                                                                        ILInt32 
milliseconds)
  {
! #ifdef IL_WIN32_PLATFORM
!       return WaitForInputIdle((HANDLE)processHandle, (DWORD)milliseconds);
! #else
!       /* "Idle" has no meaning on non-Win32 platforms so just pretend
!          that the process is fully initialized and ready to go */
!       return 1;
! #endif
  }
  





reply via email to

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