DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

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

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦40e5f222e⟧ Ada Source

    Length: 18432 (0x4800)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package System_Utilities, pragma Module_Name 4 3973, pragma Subsystem Tools, seg_006454

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦this⟧ 

E3 Source Code



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/IOC
    --      1 : SYS
    --      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;

E3 Meta Data

    nblk1=11
    nid=0
    hdr6=22
        [0x00] rec0=21 rec1=00 rec2=01 rec3=000
        [0x01] rec0=01 rec1=00 rec2=11 rec3=00a
        [0x02] rec0=13 rec1=00 rec2=02 rec3=00c
        [0x03] rec0=00 rec1=00 rec2=10 rec3=02a
        [0x04] rec0=17 rec1=00 rec2=03 rec3=030
        [0x05] rec0=01 rec1=00 rec2=0f rec3=004
        [0x06] rec0=16 rec1=00 rec2=04 rec3=020
        [0x07] rec0=00 rec1=00 rec2=0e rec3=022
        [0x08] rec0=16 rec1=00 rec2=05 rec3=00e
        [0x09] rec0=00 rec1=00 rec2=0d rec3=01a
        [0x0a] rec0=14 rec1=00 rec2=06 rec3=046
        [0x0b] rec0=18 rec1=00 rec2=07 rec3=002
        [0x0c] rec0=00 rec1=00 rec2=0c rec3=016
        [0x0d] rec0=15 rec1=00 rec2=08 rec3=014
        [0x0e] rec0=00 rec1=00 rec2=0b rec3=020
        [0x0f] rec0=18 rec1=00 rec2=09 rec3=00e
        [0x10] rec0=18 rec1=00 rec2=0a rec3=000
    tail 0x21701b2c281bf8283d1d8 0x42a00088462065003