DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T V

⟦102b76e42⟧ TextFile

    Length: 9662 (0x25be)
    Types: TextFile
    Names: »V«

Derivation

└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
    └─ ⟦fc9b38f02⟧ »DATA« 
        └─⟦9b46a407a⟧ 
            └─⟦12c68c704⟧ 
                └─⟦this⟧ 
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS 
    └─ ⟦91c658230⟧ »DATA« 
        └─⟦458657fb6⟧ 
            └─⟦220843204⟧ 
                └─⟦this⟧ 

TextFile

with Directory;
with Machine;
with Calendar;
with System;

package System_Utilities is

    pragma Subsystem (Tools, Closed);
    pragma Module_Name (4, 3973);

    subtype Job_Id     is Machine.Job_Id range 4 .. 255;
    subtype Session_Id is Machine.Session_Id;

    subtype Version is Directory.Version;
    subtype Object  is Directory.Object;

    subtype Port is Natural range 0 .. 4 * 16 * 16;
    subtype Tape is Natural range 0 .. 4;

    subtype Byte_String is System.Byte_String;

    -- Job (Process) characteristics
    function Get_Job return Job_Id;
    function Priority
                (For_Job : Job_Id := System_Utilities.Get_Job) return Natural;
    function Elapsed
                (For_Job : Job_Id := System_Utilities.Get_Job) return Duration;
    function Cpu (For_Job : Job_Id := System_Utilities.Get_Job) return Duration;
    function Job_Name
                (For_Job : Job_Id := System_Utilities.Get_Job) return String;


    -- Active Session characteristics
    function Get_Session                    return Session_Id;
    function Get_Session (For_Job : Job_Id) return Session_Id;

    function Session_Name
                (For_Session : Session_Id := System_Utilities.Get_Session)
                return String;
    function User_Name
                (For_Session : Session_Id := System_Utilities.Get_Session)
                return String;
    function Terminal (For_Session : Session_Id := System_Utilities.Get_Session)
                      return Port;
    function Terminal (For_Session : Session_Id := System_Utilities.Get_Session)
                      return Version;
    function Terminal (For_Session : Session_Id := System_Utilities.Get_Session)
                      return Object;
    function Session  (For_Session : Session_Id := System_Utilities.Get_Session)
                     return Version;
    function Session  (For_Session : Session_Id := System_Utilities.Get_Session)
                     return Object;
    function User     (For_Session : Session_Id := System_Utilities.Get_Session)
                  return Version;
    function User     (For_Session : Session_Id := System_Utilities.Get_Session)
                  return Object;

    -- Inactive Session characteristics

    function Home_Library (User : String := User_Name) return String;

    function Last_Login  (User : String; Session : String := "")
                        return Calendar.Time;
    function Last_Logout (User : String; Session : String := "")
                         return Calendar.Time;
    function Logged_In   (User : String; Session : String := "") return Boolean;

    -- Names for Text_IO/Simple_Text_IO standard file names

    function Output_Name
                (For_Session : Session_Id := System_Utilities.Get_Session)
                return String;
    function Input_Name
                (For_Session : Session_Id := System_Utilities.Get_Session)
                return String;
    function Error_Name
                (For_Session : Session_Id := System_Utilities.Get_Session)
                return String;
    function Tape_Name (Drive : Tape := 0) return String;

    -- Terminal characteristics

    subtype Stop_Bits_Range      is Integer range 1 .. 2;
    subtype Character_Bits_Range is Integer range 5 .. 8;
    type    Parity_Kind          is (None, Even, Odd);

    function Terminal_Name
                (Line : Port := System_Utilities.Terminal) return String;
    function Terminal_Type
                (Line : Port := System_Utilities.Terminal) return String;

    function Input_Count
                (Line : Port := System_Utilities.Terminal) return Long_Integer;
    function Output_Count
                (Line : Port := System_Utilities.Terminal) return Long_Integer;
    -- The number of characters input/output from/to the specified terminal
    -- since the machine was booted.  Input from the terminal that has not
    -- been read by a session or user program will not be counted as input.

    function Input_Rate
                (Line : Port := System_Utilities.Terminal) return String;
    function Output_Rate
                (Line : Port := System_Utilities.Terminal) return String;

    function Parity         (Line : Port := System_Utilities.Terminal)
                    return Parity_Kind;
    function Stop_Bits      (Line : Port := System_Utilities.Terminal)
                       return Stop_Bits_Range;
    function Character_Size (Line : Port := System_Utilities.Terminal)
                            return Character_Bits_Range;

    function Xon_Xoff_Characters
                (Line : Port := System_Utilities.Terminal) return String;
    function Xon_Xoff_Bytes
                (Line : Port := System_Utilities.Terminal) return Byte_String;

    function Receive_Xon_Xoff_Characters
                (Line : Port := System_Utilities.Terminal) return String;
    function Receive_Xon_Xoff_Bytes
                (Line : Port := System_Utilities.Terminal) return Byte_String;
    -- returns a 2-element string consisting of Xon followed by Xoff

    function Flow_Control
                (Line : Port := System_Utilities.Terminal) return String;
    function Receive_Flow_Control
                (Line : Port := System_Utilities.Terminal) return String;
    -- return one of NONE, XON_XOFF, RTS, DTR

    function Enabled (Line : Port := System_Utilities.Terminal) return Boolean;

    function Disconnect_On_Disconnect
                (Line : Port := System_Utilities.Terminal) return Boolean;
    function Logoff_On_Disconnect
                (Line : Port := System_Utilities.Terminal) return Boolean;
    function Disconnect_On_Logoff
                (Line : Port := System_Utilities.Terminal) return Boolean;
    function Disconnect_On_Failed_Login
                (Line : Port := System_Utilities.Terminal) return Boolean;
    function Log_Failed_Logins
                (Line : Port := System_Utilities.Terminal) return Boolean;
    function Login_Disabled
                (Line : Port := System_Utilities.Terminal) return Boolean;
    function Detach_On_Disconnect
                (Line : Port := System_Utilities.Terminal) return Boolean;

    -- Iterate over all active sessions

    type Session_Iterator is private;
    procedure Init  (Iter : out Session_Iterator);
    function  Value (Iter : Session_Iterator) return Session_Id;
    function  Done  (Iter : Session_Iterator) return Boolean;
    procedure Next  (Iter : in out Session_Iterator);

    -- Iterate over all jobs for a session

    type Job_Iterator is private;
    procedure Init  (Iter        : out Job_Iterator;
                     For_Session :     Session_Id := Get_Session);
    function  Value (Iter : Job_Iterator) return Job_Id;
    function  Done  (Iter : Job_Iterator) return Boolean;
    procedure Next  (Iter : in out Job_Iterator);

    type Terminal_Iterator is private;
    procedure Init  (Iter : out Terminal_Iterator);
    function  Value (Iter : Terminal_Iterator) return Natural;
    function  Done  (Iter : Terminal_Iterator) return Boolean;
    procedure Next  (Iter : in out Terminal_Iterator);

    function System_Up_Time            return Calendar.Time;
    function System_Boot_Configuration return String;

    function Image (Version : Directory.Version) return String;



    procedure Set_Page_Limit (Max_Pages : Natural;
                              For_Job   : Job_Id := System_Utilities.Get_Job);

    -- Set the upper limit for pages created by the specified job.
    -- Attempts to create additional pages result in Storage_Error.
    -- Requires operator capability if For_Job specifies a job belonging
    -- to a user different from the caller.  If For_Job parameter defaults,
    -- then the limit applies to the calling job.  In the worst case,
    -- the job can allocate twice Max_Pages pages before getting a storage
    -- error.  Raises constraint_error if the job_id is illegal.

    procedure Get_Page_Counts (Cache_Pages : out Natural;
                               Disk_Pages : out Natural;
                               Max_Pages : out Natural;
                               For_Job : Job_Id := System_Utilities.Get_Job);

    -- Return the counts for the specified job.  Cache_Pages is the number of
    -- pages presently in main memory; Disk_Pages is the number of pages that
    -- have disk space allocated for them.  Max_Pages is the current page
    -- limit.


    -- Operations for reading machine information:

    type Bad_Block_Kinds is new Long_Integer range 0 .. 7;
    Manufacturers_Bad_Blocks : constant Bad_Block_Kinds := 1;
    Retargeted_Blocks        : constant Bad_Block_Kinds := 2;
    All_Bad_Blocks           : constant Bad_Block_Kinds := 3;

    type Block_List is array (Natural range <>) of Integer;

    function Bad_Block_List
                (For_Volume : Natural;
                 Kind : Bad_Block_Kinds := Retargeted_Blocks) return Block_List;
    -- Return the list of bad blocks of the specified kind on the specified
    -- disk.  Return null array if Kind or volume are illegal.

    function Get_Board_Info (Board : Natural) return String;
    -- 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.

    function Terminal_Lines   (Line : Port := Terminal) return Natural;
    function Terminal_Columns (Line : Port := Terminal) return Natural;

end System_Utilities;