--| --|Item: Ada PCTE Binding --|$Revision: 0.2 $ --|$State: Prototype $ --| --|The Version Description Document (VDD) included with this release provides --|detailed information regarding the condition of the software. The "User --|Feedback" section of the VDD describes how to obtain additional information. --| --|Distribution Statement "A", per DoD Directive 5230.24 --|Authorized for public release; distribution is unlimited. --| --|Copyright (c) 1992, Paramax Systems Corporation, Reston, Virginia --|Copyright is assigned to the U.S. Government, upon delivery thereto, --|in accordance with the DFAR Special Works Clause. --| --|Developed by: Paramax Systems Corporation, --| --|This software, developed under the Software Technology for Adaptable, --|Reliable Systems (STARS) program, is approved for release under --|Distribution "A" of the Scientific and Technical Information Program --|Classification Scheme (DoD Directive 5230.24) unless otherwise indicated. --|Sponsored by the U.S. Defense Advanced Research Projects Agency (DARPA) --|under contract F19628-88-D-0031, the STARS program is supported by the --|military services, SEI, and MITRE, with the U.S. Air Force as the executive --|contracting agent. --| --|Permission to use, copy, modify, and comment on this software and its --|documentation for purposes stated under Distribution "A" and without fee --|is hereby granted, provided that this notice appears in each whole or --|partial copy. This software retains Contractor indemnification to --|the Government regarding copyrights pursuant to the above referenced --|STARS contract. The Government disclaims all responsibility against --|liability, including costs and expenses for violation of proprietary --|rights, or copyrights arising out of the creation or use of this --|software. --| --|In addition, the Government, Paramax, and its subcontractors disclaim all --|warranties with regard to this software, including all implied warranties --|of merchantability and fitness, and in no event shall the Government, --|Paramax, or its subcontractor(s) be liable for any special, indirect or --|consequential damages or any damages whatsoever resulting from the loss of --|use, data, or profits, whether in action of contract, negligence or other --|tortious action, arising in connection with the use or performance of this --|software. --| --|$Log $ --| -- Version Information -- ^^^^^^^^^^^^^^^^^^^ -- -- PCTE - Ada Language Interface. -- Version: 0.2. -- Release Date: November 30, 1992. -- Compiled under SUN OS 4.1.2 using SunAda 1.0 -- -- -- General Information -- ^^^^^^^^^^^^^^^^^^^ -- -- This is an alpha release of the Paramax STARS Ada binding to Emeraude's -- PCTE 1.5 using the ECMA PCTE Ada binding specifications. The binding -- is incomplete in this release. See the Version Description Document -- provided with this alpha release for information on which interfaces -- have been implemented. It is expected that future releases will -- expand the number of interfaces implemented. The interfaces defined -- herein are subject to change. -- -- For further information, contact the authors: -- -- -- Robert Smith -- Paramax Systems Corp. -- Valley Forge Labs -- 70 E. Swedesford Road -- Paoli, PA. 19301 -- smith@prc.unisys.com (current) -- smith@vfl.paramax.com (future) -- +1 215 648-2402 -- -- Michael Horton -- Paramax Systems Corp. -- Valley Forge Labs -- 70 E. Swedesford Road -- Paoli, PA. 19301 -- horton@prc.unisys.com (current) -- horton@vfl.paramax.com (future) -- +1 215 648-2527 -- -- with Pcte, Pcte_error, Pcte_mandatory, Pcte_discretionary, SYSTEM; package Pcte_process is use Pcte, Pcte_error, Pcte.reference; package object_references is new Pcte.sequence (Pcte.object_reference); -- Pcte_process.object_references.sequence corresponds -- to the PCTE datatype of the parameter sds_sequence -- of PROCESS_SET_WORKING_SCHEMA. type initial_status is (RUNNING, STOPPED, SUSPENDED); -- Pcte_process.initial_status corresponds to the PCTE datatype -- of the parameter initial_status of PROCESS_START. -- EXIT_SUCCESS: constant Pcte.integer := implementation-defined ; -- EXIT_ERROR: constant Pcte.integer := implementation-defined ; -- FORCED_TERMINATION: constant Pcte.integer := implementation-defined ; -- SYSTEM_FAILURE: constant Pcte.integer := implementation-defined ; -- ACTIVITY_ABORTED: constant Pcte.integer := implementation-defined ; EXIT_SUCCESS : constant Pcte.integer := 0; EXIT_ERROR : constant Pcte.integer := 1; FORCED_TERMINATION : constant Pcte.integer := 2; SYSTEM_FAILURE : constant Pcte.integer := 3; ACTIVITY_ABORTED : constant Pcte.integer := 4; -- These constants define the possible termination status of a process. subtype address is SYSTEM.ADDRESS; -- Pcte_process.address corresponds to the PCTE datatype Address. type profile_handle is limited private ; -- Pcte_process.profile_handle corresponds to the PCTE -- datatype Profile_handle. package strings is new sequence (Pcte.string); -- Pcte_process.strings.sequence corresponds to the PCTE -- datatype seq of String. package profile_buffer is new Pcte.sequence (Pcte.natural); -- Pcte_process.profile_buffer.sequence corresponds to the PCTE -- datatype Buffer. -- 13.2.1 PROCESS_CREATE procedure create ( static_context : in Pcte.object_reference; process_type : in Pcte.type_reference; implicit_deletion : in Pcte.boolean; access_mask : in Pcte_discretionary.object.access_rights; new_process : in out Pcte.object_reference; parent : in Pcte.object_reference := CURRENT_PROCESS; site : in Pcte.object_reference := LOCAL_EXECUTION_SITE; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.2.2 PROCESS_CREATE_AND_START procedure create_and_start ( static_context : in Pcte.object_reference; arguments : in Pcte_process.strings.sequence; environment : in Pcte_process.strings.sequence; implicit_deletion : in Pcte.boolean; access_mask : in Pcte_discretionary.object.access_rights; new_process : in out Pcte.object_reference; site : in Pcte.object_reference := LOCAL_EXECUTION_SITE; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.2.3 PROCESS_INTERRUPT_OPERATION procedure interrupt_operation ( process : in Pcte.object_reference; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.2.4 PROCESS_RESUME procedure resume ( process : in Pcte.object_reference; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.2.5 PROCESS_SET_ALARM procedure set_alarm ( duration : in Pcte.natural; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.2.6 PROCESS_SET_FILE_SIZE_LIMIT procedure set_file_size_limit ( fslimit : in Pcte.natural; process : in Pcte.object_reference := CURRENT_PROCESS; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.2.7 PROCESS_SET_OPERATION_TIME_OUT procedure set_operation_time_out ( duration : in Pcte.natural; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.2.8 PROCESS_SET_PRIORITY procedure set_priority ( priority : in Pcte.natural; process : in Pcte.object_reference := CURRENT_PROCESS; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.2.9 PROCESS_SET_REFERENCED_OBJECT procedure set_referenced_object ( reference_name : in Pcte.key; object : in Pcte.object_reference; process : in Pcte.object_reference := CURRENT_PROCESS; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.2.10 PROCESS_SET_TERMINATION_STATUS procedure set_termination_status ( termination_status : in Pcte.integer; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.2.11 PROCESS_SET_WORKING_SCHEMA --% procedure set_working_schema will be implemented by Ada binding to PCTE 1.5 procedure set_working_schema ( sds_sequence : in Pcte_process.object_references.sequence; process : in Pcte.object_reference := CURRENT_PROCESS; status : in Pcte_error.handle := EXCEPTION_ONLY); --% procedure get_working_schema is a non-standard interface procedure get_working_schema ( sds_sequence : in out Pcte_process.object_references.sequence; process : in Pcte.object_reference := CURRENT_PROCESS; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.2.12 PROCESS_START procedure start ( process : in Pcte.object_reference; initial_status : in Pcte_process.initial_status; status : in Pcte_error.handle := EXCEPTION_ONLY); procedure start ( process : in Pcte.object_reference; site : in Pcte.object_reference; initial_status : in Pcte_process.initial_status; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.2.13 PROCESS_SUSPEND procedure suspend ( process : in Pcte.object_reference := CURRENT_PROCESS; alarm : in Pcte.natural := 0; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.2.14 PROCESS_TERMINATE procedure terminate_process ( process : in Pcte.object_reference := CURRENT_PROCESS; termination_status : in Pcte.integer := FORCED_TERMINATION; status : in Pcte_error.handle := EXCEPTION_ONLY); -- The name of the procedure is modified because 'terminate' -- is an Ada reserved word. -- 13.2.15 PROCESS_UNSET_REFERENCED_OBJECT procedure unset_referenced_object ( reference_name : in Pcte.key; process : in Pcte.object_reference := CURRENT_PROCESS; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.2.16 PROCESS_WAIT_FOR_ANY_CHILD procedure wait_for_any_child ( termination_status : out Pcte.integer; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.2.17 PROCESS_WAIT_FOR_CHILD procedure wait_for_child ( child : in Pcte.object_reference; termination_status : out Pcte.integer; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.3.1 PROCESS_SET_CONSUMER_IDENTITY procedure set_consumer_identity ( group : in Pcte.object_reference; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.3.2 PROCESS_UNSET_CONSUMER_IDENTITY procedure unset_consumer_identity ( status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.4.1 PROCESS_ADOPT_USER_GROUP procedure adopt_user_group ( user_group : in Pcte.object_reference; process : in Pcte.object_reference := CURRENT_PROCESS; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.4.2 PROCESS_CHANGE_ADOPTABILITY_OF_USER_GROUP_FOR_CHILD procedure change_adoptability_of_user_group_for_child ( user_group : in Pcte.object_reference; adoptability : in Pcte.boolean; process : in Pcte.object_reference := CURRENT_PROCESS; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.4.3 PROCESS_GET_DEFAULT_ACCESS_CONTROL_LIST procedure get_default_access_control_list ( acl : in out Pcte_discretionary.object.acl_entries.sequence; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.4.4 PROCESS_GET_DEFAULT_OWNER function get_default_owner ( status : Pcte_error.handle := EXCEPTION_ONLY) return Pcte.natural; -- 13.4.5 PROCESS_SET_CONFIDENTIALITY_LABEL procedure set_confidentiality_label ( confidentiality_label : in Pcte_mandatory.security_label; process : in Pcte.object_reference := CURRENT_PROCESS; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.4.6 PROCESS_SET_DEFAULT_ACL_ENTRY procedure set_default_acl_entry ( group : in Pcte.natural; modes : in Pcte_discretionary.object.access_rights; process : in Pcte.object_reference := CURRENT_PROCESS; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.4.7 PROCESS_SET_DEFAULT_OWNER procedure set_default_owner ( group : in Pcte.natural; process : in Pcte.object_reference := CURRENT_PROCESS; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.4.8 PROCESS_SET_FLOATING_CONFIDENTIALITY_LEVEL procedure set_floating_confidentiality_level ( floating_mode : in Pcte_mandatory.floating_level; process : in Pcte.object_reference := CURRENT_PROCESS; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.4.9 PROCESS_SET_FLOATING_INTEGRITY_LEVEL procedure set_floating_integrity_level ( floating_mode : in Pcte_mandatory.floating_level; process : in Pcte.object_reference := CURRENT_PROCESS; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.4.10 PROCESS_SET_INTEGRITY_LABEL procedure set_integrity_label ( integrity_label : in Pcte_mandatory.security_label; process : in Pcte.object_reference := CURRENT_PROCESS; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.4.11 PROCESS_SET_USER_AND_USER_GROUP_IDENTITY procedure set_user_and_user_group_identity ( user : in Pcte.object_reference; user_group : in Pcte.object_reference; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.5.1 PROCESS_PROFILING_OFF procedure profiling_off ( handle : in Pcte_process.profile_handle; buffer : in out Pcte_process.profile_buffer.sequence; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.5.2 PROCESS_PROFILING_ON procedure profiling_on ( handle : out Pcte_process.profile_handle; start : in Pcte_process.address; pcte_end : in Pcte_process.address; count : in Pcte.natural; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.6.1 PROCESS_ADD_BREAKPOINT generic type element_address is private ; procedure add_breakpoint ( breakpoint : in element_address; process : in Pcte.object_reference := CURRENT_PROCESS; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.6.2 PROCESS_CONTINUE procedure continue ( process : in Pcte.object_reference; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.6.3 PROCESS_PEEK generic type element_type is private ; type element_address is private ; function peek ( process : Pcte.object_reference; address : element_address; status : Pcte_error.handle := EXCEPTION_ONLY) return element_type; -- 13.6.4 PROCESS_POKE generic type element_type is private ; type element_address is private ; procedure poke ( process : in Pcte.object_reference; address : in element_address; value : in element_type; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 13.6.5 PROCESS_REMOVE_BREAKPOINT generic type element_address is private ; procedure remove_breakpoint ( process : in Pcte.object_reference; breakpoint : in element_address; status : in Pcte_error.handle := EXCEPTION_ONLY); private -- implementation-defined type profile_handle is new Pcte.natural; end Pcte_process;