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

⟦97f3dcc09⟧ Ada Source

    Length: 8192 (0x2000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package System_Information, seg_00186a

Derivation

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

E3 Source Code



with Simple_Status;
with Time_Utilities;
with Bounded_String;

package System_Information is

-- Interfaces to extract information used to produce System_Report output.

    procedure Generate (Start_Time : String := "";
                        End_Time : String := "";
                        Log_Directory : String := "!Machine.Error_Logs";
                        Log_Time : out Duration;
                        Status : in out Simple_Status.Condition);

    -- Must be called prior to using the following operations.  They, then
    -- can be used to read the reduced data.  Log_Time indicates the
    -- actual duration between the first and last entries used in this
    -- report.

    -- Each iterator has a type and returns certain information.
    -- General paradign for each is:
    --
    --      I : xxx_Iterator;
    --      Info : xxx_Information;
    --
    --      Initialize (I);
    --      while not Done (I) loop
    --          Info := Value (I);
    --          -- Do something with Info
    --          Next (I);
    --      end loop;

    type Usage_Iterator is private;
    type Outage_Iterator is private;
    type Event_Iterator is private;
    type Device_Iterator is private;
    type Daemon_Iterator is private;
    type Mount_Iterator is private;

    procedure Initialize (I : out Usage_Iterator);
    procedure Initialize (I : out Outage_Iterator);
    procedure Initialize (I : out Event_Iterator);
    procedure Initialize (I : out Device_Iterator);
    procedure Initialize (I : out Daemon_Iterator);
    procedure Initialize (I : out Mount_Iterator);

    procedure Next (I : in out Usage_Iterator);
    procedure Next (I : in out Outage_Iterator);
    procedure Next (I : in out Event_Iterator);
    procedure Next (I : in out Device_Iterator);
    procedure Next (I : in out Daemon_Iterator);
    procedure Next (I : in out Mount_Iterator);

    function Done (I : Usage_Iterator) return Boolean;
    function Done (I : Outage_Iterator) return Boolean;
    function Done (I : Event_Iterator) return Boolean;
    function Done (I : Device_Iterator) return Boolean;
    function Done (I : Daemon_Iterator) return Boolean;
    function Done (I : Mount_Iterator) return Boolean;

    type Pstring is access String;  -- Strings are accessed by dereferencing
    --                                 pointers.

    -- Usage information is available for each half-hour during the
    -- report period.
    type Usage_Information is
        record
            Time : Time_Utilities.Time;  -- Time of this sample
            Users : Natural;             -- # users logged on
            Disk_Running : Boolean;      -- Disk Daemon running
            Outage : Boolean;            -- System is down
        end record;

    -- Outage information is available for each system service outage.
    type Outage_Information is
        record
            Time : Time_Utilities.Time;  -- time of outage
            Length : Duration;           -- length of outage
            Cause : Pstring;             -- Cause entered
            Explanation : Pstring;       -- Explanation entered
        end record;

    type Event_Class is (User_Operation, Exception_Cond,
                         System_Boot, Other_Event);

    -- Event information is available for each "interesting" event.
    -- The Event_Class gives some idea of the what the event is.
    -- The Info is the log entry for the event and has the standard
    -- format for a log entry.
    type Event_Information is
        record
            Time : Time_Utilities.Time;
            Info : Pstring;
            Event_Kind : Event_Class;
        end record;


    type Device_Class is (Disk, Tape, Ethernet, Memory, Other_Device);

    -- Device information is available for each device error or other
    -- event of interest.  Class indicates for which device it is, and
    -- Info is the log entry for the event.
    type Device_Information is
        record
            Time : Time_Utilities.Time; -- Time of entry
            Info : Pstring;             -- Log entry for device
            Class : Device_Class;       -- Class of device
        end record;

    -- Daemon information is available for each run of a daemon.
    -- The information is as listed below.
    type Daemon_Information is
        record
            Time : Time_Utilities.Time;         -- time of start
            Name : Bounded_String.Variable_String (40);-- Daemon name
            Length : Duration;                  -- length of run
            Pre_Size : Natural;                 -- pages at start
            Post_Size : Natural;                -- pages of state at end
            Explanation : Pstring;              -- Other info
        end record;

    type Mount_Information is
        record
            Request_Time : Time_Utilities.Time;      -- time of request
            Volume : Bounded_String.Variable_String (40);   -- Volume Name
            Mount_Time : Time_Utilities.Time;        -- Tape on-line
            Unload_Time : Time_Utilities.Time;       -- Tape unloaded
            Density : Bounded_String.Variable_String (20);
        end record;

    -- The value functions return the actual information for
    -- each value of the iterator.
    function Value (I : Usage_Iterator) return Usage_Information;
    function Value (I : Outage_Iterator) return Outage_Information;
    function Value (I : Event_Iterator) return Event_Information;
    function Value (I : Device_Iterator) return Device_Information;
    function Value (I : Daemon_Iterator) return Daemon_Information;
    function Value (I : Mount_Iterator) return Mount_Information;

private
    type Usage_Iterator is new Integer;
    type Outage_Iterator is new Integer;
    type Event_Iterator is new Integer;
    type Device_Iterator is new Integer;
    type Daemon_Iterator is new Integer;
    type Mount_Iterator is new Integer;


end System_Information;

E3 Meta Data

    nblk1=7
    nid=0
    hdr6=e
        [0x00] rec0=1d rec1=00 rec2=01 rec3=030
        [0x01] rec0=1a rec1=00 rec2=02 rec3=052
        [0x02] rec0=17 rec1=00 rec2=03 rec3=03a
        [0x03] rec0=19 rec1=00 rec2=04 rec3=00a
        [0x04] rec0=16 rec1=00 rec2=05 rec3=084
        [0x05] rec0=15 rec1=00 rec2=06 rec3=00c
        [0x06] rec0=05 rec1=00 rec2=07 rec3=000
    tail 0x205004da27da18908008e 0x42a00088462060003