-- Autogenerated by MSIL2Ada v. 2
-- By: Martin C. Carlisle
--     Department of Computer Science
--     US Air Force Academy
--     carlislem@acm.org
pragma Extensions_Allowed(On);
with MSSyst.Object;
with MSIL_Types;
use MSIL_Types;
with type MSSyst.Object.Ref is access;
with type MSSyst.LocalDataStoreSlot.Ref is access;
with type MSSyst.String.Ref is access;
with MSSyst.Threading.ApartmentState;
with type MSSyst.Runtime.Remoting.Contexts.Context.Ref is access;
with type MSSyst.Globalization.CultureInfo.Ref is access;
with type MSSyst.Security.Principal.IPrincipal.Ref is access;
with MSSyst.Threading.ThreadPriority;
with MSSyst.Threading.ThreadState;
with type MSSyst.AppDomain.Ref is access;
with type MSSyst.Type_k.Ref is access;
with type MSSyst.TimeSpan.Valuetype is tagged;
with type MSSyst.UIntPtr.Valuetype is tagged;
with MSSyst.UIntPtr;
with type MSSyst.Object.Ref_addrof is access;
with type MSSyst.IntPtr.Valuetype is tagged;
with MSSyst.IntPtr;
with type MSSyst.SByte.Valuetype is tagged;
with MSSyst.SByte;
with type MSSyst.Threading.ThreadStart.Ref is access;
with MSSyst.Object;
package MSSyst.Threading.Thread is
   type Typ;
   type Ref is access all Typ'Class;
   type Ref_addrof is access all Ref;
   type Ref_Arr is array(Natural range <>) of Ref;
   type Ref_Array is access all Ref_Arr;
   type Ref_Array_addrof is access all Ref_Array;
   type Typ is new MSSyst.Object.Typ with record
      null;
   end record;
   function new_Thread(
      This : Ref := null;
      start : MSSyst.Threading.ThreadStart.Ref) return Ref;
   procedure Abort_k(
      This : access Typ;
      stateInfo : MSSyst.Object.Ref);
   procedure Abort_k(
      This : access Typ);
   function AllocateDataSlot return MSSyst.LocalDataStoreSlot.Ref;
   function AllocateNamedDataSlot(
      name : MSSyst.String.Ref) return MSSyst.LocalDataStoreSlot.Ref;
   procedure FreeNamedDataSlot(
      name : MSSyst.String.Ref);
   function get_ApartmentState(
      This : access Typ) return MSSyst.Threading.ApartmentState.Valuetype;
   function get_CurrentContext return MSSyst.Runtime.Remoting.Contexts.Context.Ref;
   function get_CurrentCulture(
      This : access Typ) return MSSyst.Globalization.CultureInfo.Ref;
   function get_CurrentPrincipal return MSSyst.Security.Principal.IPrincipal.Ref;
   function get_CurrentThread return MSSyst.Threading.Thread.Ref;
   function get_CurrentUICulture(
      This : access Typ) return MSSyst.Globalization.CultureInfo.Ref;
   function get_IsAlive(
      This : access Typ) return Standard.Boolean;
   function get_IsBackground(
      This : access Typ) return Standard.Boolean;
   function get_IsThreadPoolThread(
      This : access Typ) return Standard.Boolean;
   function get_Name(
      This : access Typ) return MSSyst.String.Ref;
   function get_Priority(
      This : access Typ) return MSSyst.Threading.ThreadPriority.Valuetype;
   function get_ThreadState(
      This : access Typ) return MSSyst.Threading.ThreadState.Valuetype;
   function GetData(
      slot : MSSyst.LocalDataStoreSlot.Ref) return MSSyst.Object.Ref;
   function GetDomain return MSSyst.AppDomain.Ref;
   function GetDomainID return Integer;
   function GetNamedDataSlot(
      name : MSSyst.String.Ref) return MSSyst.LocalDataStoreSlot.Ref;
   procedure Interrupt(
      This : access Typ);
   function Join(
      This : access Typ;
      millisecondsTimeout : Integer) return Standard.Boolean;
   procedure Join(
      This : access Typ);
   function Join(
      This : access Typ;
      timeout : MSSyst.TimeSpan.Valuetype) return Standard.Boolean;
   procedure MemoryBarrier;
   procedure ResetAbort;
   procedure Resume(
      This : access Typ);
   procedure set_ApartmentState(
      This : access Typ;
      value : MSSyst.Threading.ApartmentState.Valuetype);
   procedure set_CurrentCulture(
      This : access Typ;
      value : MSSyst.Globalization.CultureInfo.Ref);
   procedure set_CurrentPrincipal(
      value : MSSyst.Security.Principal.IPrincipal.Ref);
   procedure set_CurrentUICulture(
      This : access Typ;
      value : MSSyst.Globalization.CultureInfo.Ref);
   procedure set_IsBackground(
      This : access Typ;
      value : Standard.Boolean);
   procedure set_Name(
      This : access Typ;
      value : MSSyst.String.Ref);
   procedure set_Priority(
      This : access Typ;
      value : MSSyst.Threading.ThreadPriority.Valuetype);
   procedure SetData(
      slot : MSSyst.LocalDataStoreSlot.Ref;
      data : MSSyst.Object.Ref);
   procedure Sleep(
      millisecondsTimeout : Integer);
   procedure Sleep(
      timeout : MSSyst.TimeSpan.Valuetype);
   procedure SpinWait(
      iterations : Integer);
   procedure Start(
      This : access Typ);
   procedure Suspend(
      This : access Typ);
   function VolatileRead(
      address : MSIL_Types.Unsigned_Long_Long_Integer_addrof) return MSIL_Types.Unsigned_Long_Long_Integer;
   function VolatileRead(
      address : MSSyst.UIntPtr.Valuetype_addrof) return MSSyst.UIntPtr.Valuetype;
   function VolatileRead(
      address : MSIL_Types.Float32_addrof) return Float;
   function VolatileRead(
      address : MSSyst.Object.Ref_addrof) return MSSyst.Object.Ref;
   function VolatileRead(
      address : MSIL_Types.Float64_addrof) return Long_Float;
   function VolatileRead(
      address : MSSyst.IntPtr.Valuetype_addrof) return MSSyst.IntPtr.Valuetype;
   function VolatileRead(
      address : MSIL_Types.Int32_addrof) return Integer;
   function VolatileRead(
      address : MSIL_Types.unsigned_int8_addrof) return MSIL_Types.unsigned_int8;
   function VolatileRead(
      address : MSIL_Types.Int16_addrof) return MSIL_Types.int16;
   function VolatileRead(
      address : MSIL_Types.Int64_addrof) return Long_Long_Integer;
   function VolatileRead(
      address : MSIL_Types.Unsigned_Integer_addrof) return MSIL_Types.Unsigned_Integer;
   function VolatileRead(
      address : MSIL_Types.unsigned_int16_addrof) return MSIL_Types.unsigned_int16;
   function VolatileRead(
      address : MSSyst.SByte.Valuetype_addrof) return MSSyst.SByte.Valuetype;
   procedure VolatileWrite(
      address : MSIL_Types.Unsigned_Long_Long_Integer_addrof;
      value : MSIL_Types.Unsigned_Long_Long_Integer);
   procedure VolatileWrite(
      address : MSSyst.UIntPtr.Valuetype_addrof;
      value : MSSyst.UIntPtr.Valuetype);
   procedure VolatileWrite(
      address : MSIL_Types.Float32_addrof;
      value : Float);
   procedure VolatileWrite(
      address : MSSyst.Object.Ref_addrof;
      value : MSSyst.Object.Ref);
   procedure VolatileWrite(
      address : MSIL_Types.Float64_addrof;
      value : Long_Float);
   procedure VolatileWrite(
      address : MSSyst.IntPtr.Valuetype_addrof;
      value : MSSyst.IntPtr.Valuetype);
   procedure VolatileWrite(
      address : MSIL_Types.Int32_addrof;
      value : Integer);
   procedure VolatileWrite(
      address : MSIL_Types.Int16_addrof;
      value : MSIL_Types.int16);
   procedure VolatileWrite(
      address : MSIL_Types.unsigned_int8_addrof;
      value : MSIL_Types.unsigned_int8);
   procedure VolatileWrite(
      address : MSIL_Types.Int64_addrof;
      value : Long_Long_Integer);
   procedure VolatileWrite(
      address : MSIL_Types.Unsigned_Integer_addrof;
      value : MSIL_Types.Unsigned_Integer);
   procedure VolatileWrite(
      address : MSIL_Types.unsigned_int16_addrof;
      value : MSIL_Types.unsigned_int16);
   procedure VolatileWrite(
      address : MSSyst.SByte.Valuetype_addrof;
      value : MSSyst.SByte.Valuetype);
private
   pragma Convention(MSIL,Typ);
   pragma MSIL_Constructor(new_Thread);
   pragma Import(MSIL,Abort_k,"Abort");
   pragma Import(MSIL,AllocateDataSlot,"AllocateDataSlot");
   pragma Import(MSIL,AllocateNamedDataSlot,"AllocateNamedDataSlot");
   pragma Import(MSIL,FreeNamedDataSlot,"FreeNamedDataSlot");
   pragma Import(MSIL,get_ApartmentState,"get_ApartmentState");
   pragma Import(MSIL,get_CurrentContext,"get_CurrentContext");
   pragma Import(MSIL,get_CurrentCulture,"get_CurrentCulture");
   pragma Import(MSIL,get_CurrentPrincipal,"get_CurrentPrincipal");
   pragma Import(MSIL,get_CurrentThread,"get_CurrentThread");
   pragma Import(MSIL,get_CurrentUICulture,"get_CurrentUICulture");
   pragma Import(MSIL,get_IsAlive,"get_IsAlive");
   pragma Import(MSIL,get_IsBackground,"get_IsBackground");
   pragma Import(MSIL,get_IsThreadPoolThread,"get_IsThreadPoolThread");
   pragma Import(MSIL,get_Name,"get_Name");
   pragma Import(MSIL,get_Priority,"get_Priority");
   pragma Import(MSIL,get_ThreadState,"get_ThreadState");
   pragma Import(MSIL,GetData,"GetData");
   pragma Import(MSIL,GetDomain,"GetDomain");
   pragma Import(MSIL,GetDomainID,"GetDomainID");
   pragma Import(MSIL,GetNamedDataSlot,"GetNamedDataSlot");
   pragma Import(MSIL,Interrupt,"Interrupt");
   pragma Import(MSIL,Join,"Join");
   pragma Import(MSIL,MemoryBarrier,"MemoryBarrier");
   pragma Import(MSIL,ResetAbort,"ResetAbort");
   pragma Import(MSIL,Resume,"Resume");
   pragma Import(MSIL,set_ApartmentState,"set_ApartmentState");
   pragma Import(MSIL,set_CurrentCulture,"set_CurrentCulture");
   pragma Import(MSIL,set_CurrentPrincipal,"set_CurrentPrincipal");
   pragma Import(MSIL,set_CurrentUICulture,"set_CurrentUICulture");
   pragma Import(MSIL,set_IsBackground,"set_IsBackground");
   pragma Import(MSIL,set_Name,"set_Name");
   pragma Import(MSIL,set_Priority,"set_Priority");
   pragma Import(MSIL,SetData,"SetData");
   pragma Import(MSIL,Sleep,"Sleep");
   pragma Import(MSIL,SpinWait,"SpinWait");
   pragma Import(MSIL,Start,"Start");
   pragma Import(MSIL,Suspend,"Suspend");
   pragma Import(MSIL,VolatileRead,"VolatileRead");
   pragma Import(MSIL,VolatileWrite,"VolatileWrite");
end MSSyst.Threading.Thread;
pragma Extensions_Allowed(Off);
pragma Import(MSIL,MSSyst.Threading.Thread,
   ".ver 1.0.5000.0 .publickeytoken=( 96 9d b8 05 3d 33 22 ac )",
   "[mscorlib]System.Threading.Thread");
