DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ I T ┃
Length: 41814 (0xa356) Types: TextFile Names: »INCREMENTAL_UPDATE_DIRECTIVES«
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS └─ ⟦91c658230⟧ »DATA« └─⟦458657fb6⟧ └─⟦this⟧ └─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3 └─ ⟦fc9b38f02⟧ »DATA« └─⟦9b46a407a⟧ └─⟦this⟧
INSERT !Commands.Access_List'spec !Commands.Access_List.Add_Default 'parent'next !Commands.Access_List.Remove procedure Remove (Group : String := ">>SIMPLE NAME<<"; For_Object : Name := "<SELECTION>"; Response : String := "<PROFILE>"); -- -- Remove the group from the specified object(s)' access list(s). -- Changing the access list requires "Owner" access to the containing -- world. Sends messages to a log that is under control of the -- Response parameter. *** INSERT !Commands.Access_List'spec !Commands.Access_List.Remove 'parent'next !Commands.Access_List.Remove_Default procedure Remove_Default (Group : String := ">>SIMPLE NAME<<"; For_World : Name := "<SELECTION>"; Response : String := "<PROFILE>"); -- -- Remove the group from the specified world(s)' default access list(s). -- Owner access to each world is required. Sends messages to the log that -- is under control of the Response parameter. Wildcards are allowed -- in the name. Any non-world objects referenced are ignored. *** REPLACE !Commands.Archive'spec !Commands.Archive.Save 'parent'next !Commands.Archive.Save -- Save a set of objects (files, Ada units, etc.) to a tape or directory -- such that they may be restored to their original form at a later time -- or on another system. -- The Objects parameter specifies the primary objects to be saved. It -- can be any naming expression. By default, the current image is saved -- unless there is a selection on that image, in which case the selected -- object is saved. Normally, the specified object(s) and all contained -- objects are archived; this feature can be disabled. -- The Options parameter specifies the type of tape to be written and -- options to control what is saved. The Options parameter for each of -- the Archive operations is written as a sequence of option -- names separated by spaces or commas. Options with arguments are -- given as an option name followed by an equal sign followed by a -- value. --------------------------------------------------------------------------- -- The save options are: -- -- FORMAT = R1000 | R1000_LONG | ANSI -- R1000 -- Writes an ANSI tape with the data file followed by the index -- file. The images of the objects being saved are written -- directly to the tape. This is the default. -- R1000_LONG -- like R1000 format but the data file is written to one ANSI tape -- and the index file to a second ANSI tape. -- ANSI -- Writes the data to a temporary file and then writes both index -- and data file to a tape using ANSI tape facilities. -- LABEL=(<any balanced string>) -- An identifying string written at the head of the archived data. -- The label parameter allows the user to specify a string that -- will be put at the front of the index file. When a restore is -- done the label specified to the restore procedure will be -- checked against the one on the save tape. -- NONRECURSIVE -- Save only the objects resolved to by the Objects parameter. Do -- not recursively save objects that are inside of other objects. -- The default is to save the objects mentioned in the Objects -- parameter and all objects contained in them. -- To save a world and a subset of its contents one can say: -- Save (Objects => "[!FOO?,~!FOO.ABC?,~!FOO.DEF?]", ..., -- Options => "R1000 NONRECURSIVE"); -- AFTER=<time_expression> -- Only objects changed after the time represented by -- <time_expression> will be archived. The <time_expression> -- should be acceptable to the time_utilities.value function. -- STARTING_AT=<time_expression> -- the archive will delay until the given time -- (after the mount request has been processed). -- EFFORT_ONLY -- The EFFORT_ONLY option causes a list to be printed of the names -- of the units that would be saved if the archive command -- was given with this set of parameters. -- CODE [=load_proc_list] -- The CODE option specifies that code is to be archived for the -- named load procs. If no specification follows the -- CODE option, the Objects parameter specification is used -- instead. -- COMPATIBILITY_DATABASE (CDB) [=<Subsystems>] -- Causes the full compatibility database for each subsystem -- specified to be archived. If no subsystems are specified with -- the option, the Objects parameter specification is used instead. -- When Ada units in a subsystem are archived, the relevant -- portions of the subsystem Compatibility Database is -- automatically archived with them. Therefore, this option is -- required only in special situations, primarily when one needs to -- "sync up" a primary and a secondary subsystem. -- To archive just Compatibility Databases, use -- Save ("Subsystems", "CDB"); -- To archive compatibility databases with other objects, use -- Save ("Other Stuff", "CDB=Subsystems"); -- The "Subsystems" and "Other Stuff" specifications will usually -- describe disjoint sets of objects. -- IGNORE_CDB -- Specifies that no compatibility database information is to be -- saved. -- LINKS [=<worlds>] -- Causes only the link pack for each world specified to be archived. -- If no worlds are specified with the option, the Objects -- parameter specification is used instead. -- PREFIX=<naming pattern> -- A naming pattern that is saved with the archived objects, which -- can be recalled as the For_Prefix when the data is Restored. -- When set to an appropriate value, the restorer need not know -- exactly the names of the archived objects to be able to restore -- them to a new place. If this option is not given, the value -- used is derived from the Objects parameter. -- UNLOAD -- A boolean option. When True (the default), causes the tape to -- be rewound and unloaded after the operation is complete. When -- False, this option causes the tape to be rewound to the beginning -- and to remain online and available for subsequent requests. -- When the tape is left online, subsequent requests send a tape- -- mount request to the operator's console, which must be answered -- before the tape can be accessed. -- For downward compatibility the following options are provided. -- -- DELTA0 -- write a tape which can be read on a delta0 system. -- -- DELTA1 -- write a tape which can be read on a delta1 system. -- -- VERSION=<archive_version_number> -- write a tape that can be read by a version of source -- earlier than the current one. The argument is a three digit -- integer. For example, version=440. -- The Device parameter can be set to the name of a directory. In this -- case the index and data files are written to that directory. The -- tape format option is irrelevant in this case. --------------------------------------------------------------------------- *** REPLACE !Commands.Archive'spec !Commands.Archive.Restore 'parent'next !Commands.Archive.Restore -- Restore an object or a set of objects from an Archive Tape. -- If the archive is on a tape then the tape format option given to -- Restore should be the same as that given during the save. If the -- archive is in a directory then the device parameter on the restore -- should be set to that directory. -- The Objects parameter may be any wildcard pattern specifying the -- objects to be restored. -- -- For example: -- !USERS.FOO.CLI.TEST -- [!USERS.FOO.TESTS.@, !USERS.FOO.LOGS.ABC] -- The pattern in the Objects parameter is compared against the full -- names of the saved objects. The objects whose names match the Objects -- parameter specification are restored. If the name denotes an Ada -- unit all of its parts are restored from the tape. If the name denotes -- a world or directory all of its subcomponents are restored. -- The Use_Prefix and For_Prefix parameters provide a simple means for -- changing the names of the archived objects when they are restored. -- If the Use_Prefix is the special default value, "*", the For_Prefix -- is ignored and the objects are restored using the names they had when -- they were saved. -- If the Use_Prefix is not "*", it must specify the name of an object -- into which the archived objects can be restored. The name for a -- restored object is derived from the name of the archived object by -- replacing the shortest portion of the name matched by the For_Prefix -- with the value of the Use_Prefix. If the For_Prefix is "*" the -- archived objects are restored using the Default_Prefix stored with -- the archived data. -- For example: -- -- Restore (Objects => "!A.B.C.D.E", -- Use_Prefix => "!X.Y", -- For_Prefix => "!A.B.C"); -- -- will restore to !X.Y.D.E. -- The For_Prefix may contain wildcard characters (#, @, ?) and the -- Use_Prefix parameter may contain substitution characters (@ or # only). -- For example: -- -- Restore (Objects => "[!A.B.TEST1, !D.E.F.TEST2]" -- For_Prefix => "?.@" -- Use_Prefix => "!C.D.@"); -- -- will restore to !C.D.TEST1 and !C.D.TEST2 -- If the object named by the prefix of the target name of an object -- being restored doesn't exist, that object will be created as a set of -- nested libraries. So, for example, if the For_Prefix is !A.B and the -- unit being restored is then !A.B.X.Y.Z and ...X.Y hasn't been saved on -- the tape then !A, !A.B, !A.B.X, !A.B.X.Y will be created. --------------------------------------------------------------------------- -- The following options are allowed in the Options parameter: -- -- FORMAT and LABEL -- as in the save option. -- NONRECURSIVE -- prevents subcomponents of libraries and Ada units from being -- implicitly restored. for example: -- Archive.Restore -- (Objects => "[!USERS.FOO, !USERS.FOO.CLI, !USERS.FOO.CLI.@]", -- Options => "R1000 NONRECURSIVE"); -- will restore only the named objects and not their substructure. -- ALL_OBJECTS -- All specified objects are restored. This is the default. -- NEW_OBJECTS -- Only specified objects that don't already exist on the target -- machine are restored. -- UPDATED_OBJECTS -- Only specified objects that already exists on the target are -- restored, but only if the update time of the archived object -- is greater than the update time on the target object. -- CHANGED_OBJECTS -- Restore both new and updated Objects. -- EXISTING_OBJECTS -- Only specified objects that already exists on the target -- are restored. -- DIFFERENT_OBJECTS -- Only specified objects that already exists on the target -- and have a different update time from the archived object are -- restored. -- REPLACE -- Given an object that is being restored that already exists -- on the target, this option will cause the restore operation -- (1) to unfreeze the target object if it is frozen. -- (2) If the target object is an installed or coded Ada unit -- with clients, it is demoted to source using Compilation. -- Demote with the "<ALL_WORLDS>" parameter. -- Any frozen dependents will be unfrozen. -- (3) if the parent library into which an object is being -- restored is frozen, the parent will be unfrozen to restore -- the object then refrozen. -- PROMOTE -- After they are restored, any Ada units will be promoted to the -- state they were in when they were archived. -- REMAKE [=NO_MAINS] -- Like the promote option with the further effect that -- any objects outside the restore set which were demoted -- because the replace option was given will be repromoted. -- If no_mains is specified dependent main programs will not -- be recoded. -- GOAL_STATE = ARCHIVED | SOURCE | INSTALLED | CODED -- Specify that all ada objects restored should (if possible) -- end up in the given state. -- EFFORT_ONLY -- Show what would be restored if restore is run with this -- set of parameters. -- CODE [=load_proc_list>] -- Specifies that just the Code Archive Object for the named -- load_procs are to be restored. This option is needed only when -- it is desired to restore a Code Archive Object from an archive -- that also contains the spec for that load_proc, which is not -- to be restored. -- COMPATIBILITY_DATABASE, (CDB) [=<Subsystems>] -- Specifies that the Compatibility Databases for just the named -- subsystems are to be restored. -- IGNORE_CDB -- Specifies that no compatibility information is to be restored. -- LINKS [=<worlds>] -- specifies that just the link packs for the named worlds are to -- be restored. if no argument is given all link packs of all worlds -- on the tape are restored. -- PRIMARY -- restore the compatibility database as a primary, rather than as a -- secondary (which is the default). -- REVERT_CDB -- allow the compatibility database to be overwritten by the values -- in the restore. -- OBJECT_ACL=<acl_value> -- WORLD_ACL=<acl_value> -- DEFAULT_ACL=<acl_value> -- Specifies the Access Control List for restored objects -- (OBJECT_ACL) and worlds (WORLD_ACL) and the default ACL for -- restored worlds (DEFAULT_ACL). -- The value is either an ACL specification or one of the special -- values RETAIN, ARCHIVED, INHERIT. -- - RETAIN means to set the final acl of an already existing object -- to the value it had before the restore. If the object doesn't -- exist the archived acl value will be used. This is the default. -- - ARCHIVED means to use the ACL archived with the object. -- - INHERIT means to use the standard inheritence rules for new -- versions of objects. -- BECOME_OWNER -- Modify the ACL of all restored objects such that the restorer -- becomes the owner of the restored object. -- TRAILING_BLANKS=integer -- Specifies the number of trailing blanks which are to be -- considered significant when parsing ada units during the -- restore. If a line ends in more than this number of blanks, -- the line break will be preserved in the image of the restored -- ada unit. The default is 2. -- UNCONTROL -- specifies that controlled objects which are checked in -- will be made uncontrolled before being overwritten. -- objects will be recontrolled at the end of the archive. -- only valid if the replace option is also given. -- REQUIRE_PARENTS -- require that the parent context for a unit to be restored -- already exists. default is false. -- VOLUME -- specifies which volume archive is to create worlds on. -- VERBOSE -- Specifies that extra log messages are to be generated describing -- more fully the steps of the restore process. -- UNLOAD -- A boolean option. When True (the default), causes the tape to -- be rewound and unloaded after the operation is complete. When -- False, this option causes the tape to be rewound to the beginning -- and to remain online and available for subsequent requests. -- When the tape is left online, subsequent requests send a tape- -- mount request to the operator's console, which must be answered -- before the tape can be accessed. --------------------------------------------------------------------------- *** REPLACE !Commands.Archive'spec !Commands.Archive.Copy 'parent'next !Commands.Archive.Copy -- Copy objects from one location to another, including between -- machines on the same network. -- The Objects parameter specifies where the objects are to be gotten -- from as in an Archive.Save. -- The Objects and Use_prefix parameters consist of an (optional) -- machine name followed directly by an objects name. -- A machine name has the form !!name. -- Example: -- !!machine1!users.foo -- Another acceptable way to say the same thing is !!machine1.users.foo -- -- The machine name on the objects parameter specifies the source machine. -- The machine name on the use prefix specifies the destination machine. -- If either machine is the one on which the command is being given -- it is not necessary to give the machine name. -- The non-machine name part of the Objects parameter is a name like that -- given to the save operation. -- -- The Use_Prefix/For_Prefix parameters specify where the objects -- are to go as in Archive.Restore. -- If the Use_Prefix parameter is "*" or just a machine name, then the -- source Objects are moved to the same place on the destination machine -- as specified by the source. The For_Prefix parameter is ignored. -- If neither Objects nor Use_Prefix have a machine name then the -- objects are copied from the source to the Use_Prefix on the -- current machine. -- -- If it is desired to transfer the same set of objects to multiple -- targets in the same command a set of target names can be -- specified as the use_prefix in one of the following two ways. -- The use prefix can be of the form: -- [use_prefix1, ..., use_prefixn]<optional_naming_expression> -- examples: -- archive.copy (..., use_prefix => "[m1,m2]", ...); -- archive.copy (..., use_prefix => "[m1,m2,m3]!users.foo", ...); -- -- The use prefix can be of the form: -- _filename<optional_naming_expression_beginning_with_!> -- The filename should contain a list of use_prefix's, one per line. -- examples: -- archive.copy (... use_prefix => "_targets", ...); -- archive.copy (... use_prefix => "_targets!users.foo", ...); -- where targets is a text file containing (e.g) -- m1 -- m2 -- -- In both of the above cases the leading !! in machine names is optional. --------------------------------------------------------------------------- -- The Options parameter has the following options. -- -- AFTER, CODE, CDB, LINKS, IGNORE_CDB -- NONRECURSIVE, EFFORT_ONLY -- as in the save operation. -- -- ALL_OBJECTS, NEW_OBJECTS, UPDATED_OBJECTS, CHANGED_OBJECTS, -- EXISTING_OBJECTS, DIFFERENT_OBJECTS -- PROMOTE, REPLACE, UNCONTROL, REMAKE, GOAL_STATE, -- PRIMARY, REVERT_CDB, REQUIRE_PARENTS, VOLUME -- BECOME_OWNER, OBJECT_ACL, WORLD_ACL, DEFAULT_ACL -- VERBOSE -- as in the restore operation. -- ENABLE_PRIVILEGES -- cause the archive server (and the copy job) to attempt to -- enable_privileges. --------------------------------------------------------------------------- -- Examples of calls: -- -- Copy (Objects => "!USERS.JMK.CLI", -- Use_Prefix => "!!M1"); -- -- will copy the CLI directory in !USERS.JMK on the -- current machine to machine M1 !USERS.JMK.CLI. -- -- Copy (Objects => "!!M2!USERS.OLLIE.CLI"); -- -- will copy !USERS.OLLIE.CLI on M2 to !USERS.OLLIE.CLI on the -- current machine. -- -- Copy (Objects => "!!M3!USERS.JMK.CLI.CMD", -- Use_Prefix => "!USERS.OLLIE", -- For_Prefix => "!USERS.JMK.CLI"); -- -- will copy the file !USERS.JMK.CLI.CMD on M3 to -- !USERS.OLLIE.CMD on the current machine. -- note when repositioning Objects it is necessary to give a -- for_prefix which is a prefix of the Objects part of the -- source parameter. -- -- Copy (Objects => "!!M1!USERS.JMK.ILFORD", -- Use_Prefix => "!!M2!AGFA", -- For_Prefix => "!USERS.JMK"); -- -- will copy !USERS.JMK.ILFORD from machine M1 to -- machine M2 !AGFA!ILFORD -- -- Copy (Objects => "!USERS.JMK.CLI", -- Use_Prefix => "!!M1", -- Options => "REPLACE AFTER=12/25/86"); -- -- will copy those files which have changed since 12/25/86 in -- !USERS.JMK.CLI on the current machine to machine M1 !USERS.JMK.CLI -- Any existing files with the same names will be overwritten. --------------------------------------------------------------------------- *** REPLACE !Commands.Queue'spec !Commands.Queue.Add 'parent'next !Commands.Queue.Add -- Options : -- XON_XOFF, RTS, DTR indicate what flow control is to be used. -- Host => name indicates that a telnet connection is to be used -- If Host is given, Socket may be specified: Socket => (0, 23). -- -- Options can also have the value FTP. In this case, Device is -- the name of a file whose first line is a host name, whose -- second line is a directory name, whose third line is a suffix -- to append to each file name, and whose fourth line is the -- name of a remote passwords file. Each print request will -- be transferred to the specified host and directory using an -- FTP login for the host from the specified remote passwords file. -- The directory name in the file must have any trailing punctuation -- so that a simple filename can be concatenated to it. A log file -- is created in !Machine.Queues.Ftp under the device name (which -- is the simple name of the device file) to record any FTP -- problems. *** REPLACE !Tools.Networking.Tcp_Ip_Boot'spec !Tools.Networking.Tcp_Ip_Boot 'pragmas'next(3) !Tools.Networking.Tcp_Ip_Boot -- Download the Ethernet controller with TCP/IP networking software, -- and start it. The controller may be an Excelan EXOS-204 with -- EXOS 8010 software, or a CMC ENP-100i with CMC TCP/IP software. -- Software for the Excelan EXOS-204 controller is stored in files -- named EXOS_PREFIX & "EXOS_p_x_y"; where p is the Excelan product -- number, and x and y are the software version number. For example, -- the file "EXOS_8010_3_2" contains the 8010 software, version 3.2. -- Software for the CMC ENP-100i controller is stored in files named -- EXOS_PREFIX & "CMC_TCP_IP_x_y_z"; where x, y and z are the software -- version number. For example, the file "CMC_TCP_IP_2_6_1" contains -- software version 2.6.1. -- Tcp_Ip_Boot loads the most recent version of the software that is -- present in the EXOS_PREFIX directory. So, if both versions 3.2 and -- 3.1 are present, 3.2 will be loaded. -- HOST_ID_FILE is the name of a text file which begins with the -- Internet address of this machine, in decimal dotted notation. This -- value is used to initialize the TCP/IP software, so that it will -- respond to ARP queries and IP datagrams directed to this address. -- The file named "TCP_IP_Subnet_Mask", if it exists in the same -- directory as HOST_ID_FILE, begins with the subnet mask, in decimal -- dotted notation. Each non-zero bit of the IP subnet mask indicates -- that the corresponding bit of this machine's IP address is part of -- the network or subnetwork number. -- ETHER_ID_FILE is the name of a text file which, if it exists, -- begins with the Ethernet address of this machine, in decimal dotted -- notation. If this file does not exist or is illegible, the address -- will be taken from PROM on the Ethernet controller. Ordinarily -- this file does not exist; the use of the PROM value is recommended. -- The HOST_ID_FILE, TCP_IP_Subnet_Mask and/or ETHER_ID_FILE may -- optionally contain a Machine.Id, written as a decimal number, after -- the address (and some blank space). If the Machine.Id is present, -- but does not match Machine.Get_Id, the file contents will not be -- used. In the case of HOST_ID_FILE, Tcp_Ip_Boot fails, and the -- controller is not started. In the case of ETHER_ID_FILE, the -- address in PROM on the controller will be used. -- The HOST_ID_FILE, TCP_IP_Subnet_Mask and/or ETHER_ID_FILE may -- optionally contain comments, at the end of a line, marked by --. -- Decimal dotted notation means the form nn.nn.nn.nn; where each nn -- is the (decimal) representation of one byte of the address. The -- most significant byte comes first. For example, network number 89 -- is commonly used for private IP networks: such addresses will have -- the form "89.nn.nn.nn" in decimal dotted notation. -- USE_ARP determines whether the TCP/IP software will use ARP -- (the Address Resolution Protocol) to find the Ethernet addresses -- of other hosts it wants to talk to, and to advertise its own -- Ethernet address to other hosts that want to connect to it. -- ENABLE_LINK_LEVEL, if true, enables the use of Ethernet link level -- I/O. This form of I/O allows application programs to transmit -- arbitrary frames on the Ethernet, and to receive frames that do -- not contain TCP/IP data. -- USE_CHECKSUMS, if true, enables the calculation and checking -- of IP header checksums and TCP checksums. -- DIAGNOSTIC, if true, causes the procedure to do a dry run; that is, -- scan the code file, calculate memory allocation and initial data -- settings, and print out information about the results, all without -- actually affecting the Ethernet controller. This is intended for -- debugging Tcp_Ip_Boot. *** INSERT !Tools.Networking.Transport'spec !Tools.Networking.Transport.Get_Statistics 'parent'next !Tools.Networking.Transport.Route package Route is -- A table of 4-tuples, used for Transport level routing. -- See package Transport_Route for background information. procedure Define (Network : Transport_Defs.Network_Name; Destination : Transport_Defs.Host_Id; Subnet_Mask : Transport_Defs.Host_Id; Route : Transport_Defs.Host_Id; Status : out Transport_Defs.Status_Code); procedure Undefine (Network : Transport_Defs.Network_Name; Destination : Transport_Defs.Host_Id; Subnet_Mask : Transport_Defs.Host_Id; Route : Transport_Defs.Host_Id; Status : out Transport_Defs.Status_Code); type Iterator is private; procedure Init (Iter : out Iterator); procedure Next (Iter : in out Iterator); function Done (Iter : Iterator) return Boolean; function Network (Iter : Iterator) return Transport_Defs.Network_Name; function Destination (Iter : Iterator) return Transport_Defs.Host_Id; function Subnet_Mask (Iter : Iterator) return Transport_Defs.Host_Id; function Route (Iter : Iterator) return Transport_Defs.Host_Id; end Route; *** INSERT !Tools.Networking.Transport_Defs'spec !Tools.Networking.Transport_Defs.Not_Registered 'parent(2) !Tools.Networking.Transport_Defs.Network_Unreachable Network_Unreachable : constant Status_Code := 20; Host_Unreachable : constant Status_Code := 21; Protocol_Not_Supported : constant Status_Code := 22; No_Such_Socket : constant Status_Code := 30; No_Response : constant Status_Code := 31; Data_Too_Long : constant Status_Code := 32; *** INSERT !Tools.Networking.Transport_Name'spec !Tools.Networking.Transport_Name.Host_Id_To_Host'n(2) 'parent !Tools.Networking.Transport_Name.Is_Network_Object_Name -- A network object name consists of "!!", followed by a host -- name, followed by either "." or "!", followed by the name -- of an object within that host. function Is_Network_Object_Name (Name : String) return Boolean; -- Return true iff the name is a syntactically correct -- network object name. The host_name need not be defined. function Network_Object_To_Host (Name : String) return String; -- If not Is_Network_Object_Name (Name) then raise Constraint_Error. -- Otherwise, return the host name part of a network object name, -- without the leading "!!" or trailing punctuation "!" or ".". -- The returned name is not neccessarily defined. function Network_Object_To_Rest (Name : String) return String; -- if not Is_Network_Object_Name (Name) then raise Constraint_Error. -- Otherwise, return the object name part of a network object name, -- beginning with "!" (even if the original punctuation was "."). -- The returned name does not neccessarily denote an extant object. package Service is -- A mapping from the name of a service to where it is available; -- that is, the Network(s) and Socket_Id(s) where its servers wait. -- This mapping is stored in the text object named File_Name : constant String := "!Machine.Transport_Services"; -- Within this object, each non-empty text line contains -- * a Transport_Defs.Network_Name, -- * a Transport_Defs.Socket_Id, -- * a service name, and -- * optionally a machine name; -- in that order, separated by white space (blanks or tabs). -- Characters from "--" to the end of the line are a comment. A -- Network_Name, Socket_Id, service name or machine name must not -- contain any white space or the character sequence "--". The -- Transport_Defs.Socket_Id is in decimal dotted notation; that is, a -- sequence of non-negative decimal integers separated by periods. -- Each integer represents one or more bytes, as minimally required to -- represent that integer in binary form, most significant byte first. -- For example, 258 and 1.2 represent the same Socket_Id, which is -- expressed in Ada as (1,2). A service name or a machine name should -- be a valid Ada identifier. The case (upper or lower) of a service -- name or a machine name is not significant. -- A line signifies that the named service is available via the given -- network at the given socket in the given machine; if no machine -- name is given, the line signifies that the named service is -- available via the given network at the given socket in all machines -- not specifically named in other lines. function Normalize (Service_Name : String) return String; -- change to lower case, and strip leading or trailing white space. function Socket (Service_Name, Host_Name : String) return Transport_Defs.Socket_Id; function Network (Service_Name, Host_Name : String) return Transport_Defs.Network_Name; -- Return the first defined Socket or Network associated with -- the given Service_Name and Host_Name. If no such specific -- association is defined, return Socket (Service_Name) or -- Network (Service_Name), below. function Socket (Service_Name : String) return Transport_Defs.Socket_Id; function Network (Service_Name : String) return Transport_Defs.Network_Name; -- Return the first defined Socket or Network associated with -- the given Service_Name, but no specific Host_Name. -- If no such association is defined, raise Undefined : exception; function Local_Socket (Service_Name : String; Network : Transport_Defs.Network_Name := "TCP/IP") return Transport_Defs.Socket_Id; -- Return the socket at which the given service is available in -- this machine as identified in the given Network. That is: -- begin -- return Socket (Service_Name, -- Transport_Name.Local_Host_Name (Network)); -- exception -- when Transport_Name.Undefined => -- return Socket (Service_Name); -- end; -- This function may raise Transport_Name.Service.Undefined. function Local_Network (Service_Name : String; Network : Transport_Defs.Network_Name := "TCP/IP") return Transport_Defs.Network_Name; -- Return the network via which the given service is available in -- this machine as identified in the given Network. That is: -- begin -- return Network (Service_Name, -- Transport_Name.Local_Host_Name (Network)); -- exception -- when Transport_Name.Undefined => -- return Network (Service_Name); -- end; -- This function may raise Transport_Name.Service.Undefined. -- A service may be available on multiple Socket/Network pairs; -- they may be found by iterating through all service definitions -- searching for definitions that match the service and host name: type Iterator is limited private; procedure Init (Iter : in out Iterator); procedure Next (Iter : in out Iterator); procedure Finish (Iter : in out Iterator); -- Done (Iter) becomes True. -- You are encouraged to Finish an Iterator when you're done using it, -- to release any global resource (actions, file handles) it may hold. function Done (Iter : Iterator) return Boolean; function Network (Iter : Iterator) return Transport_Defs.Network_Name; function Socket (Iter : Iterator) return Transport_Defs.Socket_Id; function Service_Name (Iter : Iterator) return String; function Host_Name (Iter : Iterator) return String; function Matches (Iter : Iterator; Service_Name, Host_Name : String) return Boolean; -- Return true iff Service_Name (Iter) = Normalize (Service_Name) -- and Host_Name (Iter) = Normalize (Host_Name). function Matches (Iter : Iterator; Service_Name : String) return Boolean; -- Return true iff Service_Name (Iter) = Normalize (Service_Name) -- and Host_Name (Iter) = "". private type Iterator is record File : Text_Io.File_Type; Last : Natural; Line : String (1 .. 2048); end record; end Service; *** REPLACE !Commands.Abbreviations.Print'spec !Commands.Abbreviations.Print'Spec 'pragmas'next !Commands.Abbreviations.Print'Spec -- Prints one or more objects. -- Additional parameters specify how the object(s) should be printed. -- The printer used is based on the user via a map set up by the system manager. -- -- The parameters have the following effects: -- Object_Or_Image Specifies the object(s) to be printed. Can -- designate (via value "<cursor>") mail messages, -- I/O windows, etc. -- If more than one object is specified, then the print -- style is based on the first object in the list. -- -- The following options only apply to printing on laser printers: -- -- From_First_Page Have the first printed page be as specified, if -- possible. -- To_Last_Page Have the last printed page be as specified, if -- possible. -- -- Disply_As_Twoup Causes printing in 2-up format if possible -- -- Display_Border Show a border around each page, if possible. -- -- Display_Filename Show the filename being printed on each page, if -- possible. -- Display_Date Show the file date on each page, if possible. -- -- -- Ignore_Display_Parameters_For_Postscript -- If the object being printed is a PostScript file, -- causes Display_Two_Up, Display_Date, Display_Filename, -- and Display_Page_Border to be ignored. -- -- Highlight_Reserved_Words_For_Ada -- If the object being printed is Ada, use Ada format -- which highlights keywords, italicizes comments, etc. -- -- -- The following options apply to all files: -- -- Other_Options Standard Queue.Print options can be -- specified here. The options specified here -- override any other option specifications. -- The options from above will be combined with these -- options, if they are still applicable. -- -- Number_Of_Copies Prints the specified number of copies. -- -- Printer Use the specified printer. By default, determine -- the printer based on the user name. (each user -- has a default printer). -- Effort_Only If true, don't print anything, but check -- parameter values and construct the command -- that would be sent to the Queue.Print command. -- -- To print a wide listing, in landscape mode on a laser printer, the -- following options should be used: -- -- Display_As_Twoup => False -- Other_Options = "Postscript => (Wide,Spacing=10,Size=10)" -- -- *** REPLACE !Commands.Library'spec !Commands.Library.Create 'parent'next !Commands.Library.Create -- -- Create a library of the specified type. The Nil volume represents -- the 'best' volume (The 'best' volume does not necessarily mean the -- volume with the most space. The 'best' volume calculation takes into -- account the percentage of a volume that is available and an estimate -- of the real consumption of previously allocated worlds). Vol is -- ignored for Subpackages, which are not control points, and must be on -- the same volume as their parent. When creating a World, links are -- copied from Model (unless it is ""). *** INSERT !Tools.Access_List_Tools'spec !Tools.Access_List_Tools 'Context !Tools.Access_List_Tools.Grants with Action *** INSERT !Tools.Access_List_Tools'spec !Tools.Access_List_Tools.Amend 'parent'next !Tools.Access_List_Tools.Grants function Grants (For_List : Acl; Desired : Access_Class; User_Name : String := "") return Boolean; -- Raise Access_Tools_Error if For_List, Desired, or User_Name are -- illegal. Return true or false depending on whether For_List grants -- User_Name Desired access. User_Name ="" (the default) performs the -- check for the identity of the calling job. procedure Set (For_Object : Directory.Version; To_List : Acl; Status : in out Simple_Status.Condition; Action_Id : Action.Id); procedure Set_Default (For_World : Name; To_List : Acl; Status : in out Simple_Status.Condition; Action_Id : Action.Id); -- same as above with an action_id parameter. procedure Remove (Group : String; Initial_Acl : Bounded_String.Variable_String; New_Acl : out Bounded_String.Variable_String; Group_Found : out Boolean); -- -- Removes the groups's entry from the specified access list function Is_Valid_Group (Name : String) return Boolean; function Is_In_Group (User_Name : String; Group_Name : String) return Boolean; -- Return true if the User_Name is a member of Group_Name *** REPLACE !Tools.System_Utilities'spec !Tools.System_Utilities.Get_Board_Info 'parent'next !Tools.System_Utilities.Get_Board_Info -- return information about the specified board in the machine. The -- string identifies the information. -- Board specifies the particular board: -- 0 : IOA -- 1 : SYS/IOC -- 2 : SEQ -- 3 : VAL -- 4 : TYP -- 5 : FIU -- 100 : MEM0 -- 101 : MEM1 -- 102 : MEM2 -- 103 : MEM3 -- etc. ***