--| --|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 -- -- --% NOTE: This package will not be supported by Ada binding to PCTE 1.5 with Pcte, Pcte_error; package Pcte_discretionary is use Pcte_error; --% NOTE: Only the data types will be supported by Ada binding to PCTE 1.5 package object is type access_mode_value is ( GRANTED, UNDEFINED, DENIED, PARTIALLY_DENIED); -- Pcte_discretionary.object.access_mode_value corresponds -- to the PCTE datatype Discretionary_access_mode_value. type access_mode is ( NAVIGATE, READ_ATTRIBUTES, READ_LINKS, READ_CONTENTS, APPEND_LINKS, APPEND_IMPLICIT, APPEND_CONTENTS, WRITE_IMPLICIT, WRITE_ATTRIBUTES, WRITE_LINKS, WRITE_CONTENTS, DELETE, EXECUTE, EXPLOIT_DEVICE, EXPLOIT_SCHEMA, EXPLOIT_CONSUMER_IDENTITY, CONTROL_DISCRETIONARY, CONTROL_MANDATORY, CONTROL_OBJECT, OWNER); type access_modes is array (integer range <>) of Pcte_discretionary.object.access_mode; -- Pcte_discretionary.object.access_mode corresponds -- to the PCTE datatype Discretionary_access_mode. type access_rights is array (access_mode) of access_mode_value; -- Pcte_discretionary.object.access_rights corresponds to the PCTE -- datatype Access_rights. The element indexed by a particular -- Pcte_discretionary.object.access_mode value in an access_rights value -- corresponds to the image of the corresponding Access_mode value -- in the corresponding Access_rights map. type acl_entry is record group : Pcte.object_reference; access_mask : Pcte_discretionary.object.access_rights; end record ; package acl_entries is new Pcte.sequence (acl_entry); -- Pcte_discretionary.object.acl_entry corresponds to the maplet -- type of the PCTE datatype Acl, i.e. the fields of a record of -- that type correspond to a group identifier and its image Access_rights -- value in some Acl map value. The PCTE datatype Acl itself -- is mapped to the sequence type Pcte_discretionary.object.acl_entries.sequence, -- i.e. a sequence of acl_entry values. -- 19.2.1 GROUP_GET_IDENTIFIER -- See 19.3. -- 19.2.2 OBJECT_GET_ACL procedure get_acl ( granule : in Pcte.object_reference; scope : in Pcte.object_scope; acl : in out Pcte_discretionary.object.acl_entries.sequence; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 19.2.3 OBJECT_IS_ACCESSIBLE function is_accessible ( granule : Pcte.object_reference; modes : Pcte_discretionary.object.access_modes; scope : Pcte.object_scope; status : Pcte_error.handle := EXCEPTION_ONLY) return Pcte.boolean; -- 19.2.4 OBJECT_SET_ACL_ENTRY procedure set_acl_entry ( granule : in Pcte.object_reference; group : in Pcte.object_reference; modes : in Pcte_discretionary.object.access_rights; scope : in Pcte.object_scope; status : in Pcte_error.handle := EXCEPTION_ONLY); end object; package group is -- 19.2.1 GROUP_GET_IDENTIFIER function get_identifier ( group : Pcte.object_reference; status : Pcte_error.handle := EXCEPTION_ONLY) return Pcte.natural; -- 19.3.1 GROUP_DELETE procedure delete( group : in Pcte.object_reference; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 19.3.2 GROUP_INITIALISE function initialise( group : Pcte.object_reference; status : Pcte_error.handle := EXCEPTION_ONLY) return Pcte.natural; -- 19.3.3 GROUP_RESTORE procedure restore( group : in Pcte.object_reference; identifier : in Pcte.natural; status : in Pcte_error.handle := EXCEPTION_ONLY); end group; package program_group is -- 19.3.4 PROGRAM_GROUP_ADD_MEMBER procedure add_member ( group : in Pcte.object_reference; program : in Pcte.object_reference; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 19.3.5 PROGRAM_GROUP_ADD_SUBGROUP procedure add_subgroup ( group : in Pcte.object_reference; subgroup : in Pcte.object_reference; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 19.3.6 PROGRAM_GROUP_REMOVE_MEMBER procedure remove_member ( group : in Pcte.object_reference; program : in Pcte.object_reference; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 19.3.7 PROGRAM_GROUP_REMOVE_SUBGROUP procedure remove_subgroup ( group : in Pcte.object_reference; subgroup : in Pcte.object_reference; status : in Pcte_error.handle := EXCEPTION_ONLY); end program_group; package user_group is -- 19.3.8 USER_GROUP_ADD_MEMBER procedure add_member ( group : in Pcte.object_reference; user : in Pcte.object_reference; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 19.3.9 USER_GROUP_ADD_SUBGROUP procedure add_subgroup ( group : in Pcte.object_reference; subgroup : in Pcte.object_reference; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 19.3.10 USER_GROUP_REMOVE_MEMBER procedure remove_member ( group : in Pcte.object_reference; user : in Pcte.object_reference; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 19.3.11 USER_GROUP_REMOVE_SUBGROUP procedure remove_subgroup ( group : in Pcte.object_reference; subgroup : in Pcte.object_reference; status : in Pcte_error.handle := EXCEPTION_ONLY); end user_group; end Pcte_discretionary;