------------------------------------------------------------------------ -- These package specifications were extracted from IEEE Std 1003.5-1992, -- IEEE Standard for Information Technology--POSIX Ada Language -- Interfaces--Part 1: Binding System Application Program Interface, -- copyright (c)1992 by the Institute of Electrical and Electronics -- Engineers, Inc. These package specifications represent only a portion -- of the document and are not to be interpreteted as the approved -- consensus standard. The IEEE Std 1003.5-1992 must be used in -- conjunction with these package specifications in order to claim -- conformance. The IEEE takes no responsibility for and will assume no -- liability for damages resulting from the reader's misinpretation of -- said information resulting from its out of context nature. To order -- copies of the IEEE Std 1003.5-1992, please contact the IEEE Service -- Center at 445 Hoes Lane, PO Box 1331, Piscataway, NJ 08855-1331; via -- phone at 1-800-678-IEEE, 908-981-1393; or via fax at 908-981-9667. ------------------------------------------------------------------------ with POSIX, POSIX_IO, POSIX_Permissions, POSIX_Process_Environment, POSIX_Process_Identification, POSIX_Signals; package POSIX_Process_Primitives is -- Process Template type Process_Template is limited private; procedure Open_Template (Template : in out Process_Template); procedure Close_Template (Template : in out Process_Template); procedure Set_Keep_Effective_IDs (Template : in out Process_Template); procedure Set_Signal_Mask (Template : in out Process_Template; Mask : in POSIX_Signals.Signal_Set); procedure Set_Creation_Signal_Masking (Template : in out Process_Template; Masked_Signals : in POSIX.Signal_Masking := POSIX.RTS_Signals); procedure Set_File_Action_To_Close (Template : in out Process_Template; File : in POSIX_IO.File_Descriptor); procedure Set_File_Action_To_Open (Template : in out Process_Template; File : in POSIX_IO.File_Descriptor; Name : in POSIX.Pathname; Mode : in POSIX_IO.File_Mode := POSIX_IO.Read_Only; Options : in POSIX_IO.Open_Option_Set := POSIX_IO.Empty_Set); procedure Set_File_Action_To_Duplicate (Template : in out Process_Template; File : in POSIX_IO.File_Descriptor; From_File : in POSIX_IO.File_Descriptor); -- Process Creation procedure Start_Process (Child : out POSIX_Process_Identification.Process_ID; Pathname : in POSIX.Pathname; Template : in Process_template; Arg_List : in POSIX.POSIX_String_List := POSIX.Empty_String_List); procedure Start_Process (Child : out POSIX_Process_Identification.Process_ID; Pathname : in POSIX.Pathname; Template : in Process_Template; Env_List : in POSIX_Process_Environment.Environment; Arg_List : in POSIX.POSIX_String_List := POSIX.Empty_String_List); procedure Start_Process_Search (Child : out POSIX_Process_Identification.Process_ID; Filename : in POSIX.Filename; Template : in Process_Template; Arg_List : in POSIX.POSIX_String_List := POSIX.Empty_String_List); procedure Start_Process_Search (Child : out POSIX_Process_Identification.Process_ID; Filename : in POSIX.Filename; Template : in Process_Template; Env_List : in POSIX_Process_Environment.Environment; Arg_List : in POSIX.POSIX_String_List := POSIX.Empty_String_List); -- Process Exit type Exit_Status is range 0 .. 2**8-1; Normal_Exit : constant Exit_Status := 0; Failed_Creation_Exit : constant Exit_Status := 41; Unhandled_Exception_Exit : constant Exit_Status := 42; procedure Exit_Process (Status : in Exit_Status := Normal_Exit); -- Termination Status type Termination_Status is private; type Termination_Cause is (Exited, Terminated_By_Signal, Stopped_By_Signal); function Status_Available (Status : Termination_Status) return Boolean; function Process_ID_Of (Status : Termination_Status) return POSIX_Process_Identification.Process_ID; function Termination_Cause_Of (Status : Termination_Status) return Termination_Cause; function Exit_Status_Of (Status : Termination_Status) return Exit_Status; function Termination_Signal_Of (Status : Termination_Status) return POSIX_Signals.Signal; function Stopping_Signal_Of (Status : Termination_Status) return POSIX_Signals.Signal; -- Wait for Process Termination procedure Wait_For_Child_Process (Status : out Termination_Status; Child : in POSIX_Process_Identification .Process_ID; Block : in Boolean := True; Trace_Stopped : in Boolean := True; Masked_Signals : in POSIX.Signal_Masking := POSIX.RTS_Signals); procedure Wait_for_Child_Process (Status : out Termination_Status; Group : in POSIX_Process_Identification .Process_Group_ID; Block : in Boolean := True; Trace_Stopped : in Boolean := True; Masked_Signals : in POSIX.Signal_Masking := POSIX.RTS_Signals); procedure Wait_for_Child_Process (Status : out Termination_Status; Block : in Boolean := True; Trace_Stopped : in Boolean := True; Masked_Signals : in POSIX.Signal_Masking := POSIX.RTS_Signals); private type Termination_Status is @p; type Process_Template is @p; end POSIX_Process_Primitives;