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

⟦c0093c6f2⟧ Ada Source

    Length: 9216 (0x2400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Dfs, seg_0286b4

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 Basetype;
with Calendar;
with System;

package Dfs is

    type Error_Actions is (Ignore_Errors, Report_Errors, Die_On_Errors);

    type Open_Options is (Must_Exist, Need_Not_Exist, Must_Not_Exist);

    type Close_Options is (Close, Rename, Delete);

    type Dfs_Status is (Fs_Ok, Bad_Filename, File_Does_Not_Exist,
                        File_Is_Not_Open, Disk_Full, Directory_Full,
                        File_Allready_Exists, Cant_Rename,
                        Cant_Delete, Page_Error, Slice_Error,
                        Bad_Address, Disk_Error, No_Labels, No_Dos,
                        No_Disk, Dfs_Ok, Env_Ok, Env_Name_Error,
                        Env_Already_Exists, Env_Status_Error, Env_Use_Error);

    type Fs_Status is new Dfs_Status range Dfs_Status'First .. No_Disk;

    type Env_Status is new Dfs_Status range Env_Ok .. Dfs_Status'Last;

    type Raw_Block_Data is array (0 .. 1023) of System.Byte;


    type Fs_Handle is private;


    procedure Open (Filename : in String;
                    Open_Opt : Open_Options := Must_Exist;
                    Size : in Integer;
                    Err_Opt : Error_Actions;
                    Handle : in out Fs_Handle;
                    Status : in out Fs_Status);

    -- Allows an environment user to open a DFS file.  At this
    -- point in time, writing is not supported to the DFS; and
    -- thus, Open_Opt is limited to the Must_Exist option.

    procedure Read (Handle : in out Fs_Handle;
                    Err_Action : in Error_Actions;
                    Block : out Raw_Block_Data;
                    Status : in out Fs_Status);

    -- Allows an environment level user to read a previously Dfs_Open(ed)
    -- DFS file.  This routine returns the blocks in the file in
    -- a sequential order, in 1023 byte chunks.

    procedure Copy (Dfs_Filename : in String;
                    Env_Filename : in String;
                    Allow_Overwrite : Boolean := False);

    -- Allows a DFS file to be copied to a user specified environment
    -- file.  If Allow_Overwrite is defaulted (False) the file must
    -- not exist in the environment.  Any errors (Dfs file doesn't
    -- exist, etc) will be reported via messages to the message window.

    procedure Make_Copy (Dfs_Filename : in String;
                         Env_Filename : in String;
                         Status : in out Dfs_Status;
                         Allow_Overwrite : Boolean := False);

    -- Allows a DFS file to be copied to a user specified environment
    -- file.  If Allow_Overwrite is defaulted (False) the file must
    -- not exist in the environment. Make_Copy is designed to be used
    -- from within another procedure, not in a user's command window.
    -- Any errors will be returned via the Status parameter.

    procedure Display (Dfs_Filename : in String);

    procedure Directory (Filename : String := "@"; Full : Boolean := False);

    -- Produce a directory listing of the specified files in the DFS.
    -- "@", "*", "-", and "&" work as wildcards in the filename specification.

    procedure File_Info (Handle : in Fs_Handle;
                         Size : out Integer;
                         Kernel : out Boolean;
                         Program : out Boolean;
                         No_Deletion : out Boolean;
                         Created : out Basetype.Fs_Time);

    --
    procedure Close (Option : Dfs.Close_Options;
                     Action : Dfs.Error_Actions;
                     New_Name : String;
                     Status : in out Dfs.Fs_Status;
                     Handle : in out Dfs.Fs_Handle);

    --
    procedure Write_File (Dfs_Filename : String;
                          Env_Filename : String;
                          Status : in out Dfs.Dfs_Status);

    --
    --
    procedure Read_Last (Handle : in out Fs_Handle;
                         Err_Action : in Error_Actions;
                         Block : in out Raw_Block_Data;
                         Size : in out Integer;
                         Status : in out Fs_Status);


    procedure Show_Revision (Verbose : Boolean := False);

    -- reports current revision level of the DFS.
    --
    -- Verbose => False - only the revision level is return
    -- Verbose => True  - reports both revision level and any release
    --                    note information for that revision.



    function Get_Current_Revision return String;

    -- returns a string containing the current revision level of the DFS
    -- value returned is of the form "DFS D3.0"

    procedure Show_Iop_Kernel_Revision;

    -- Report the current revision information of the IOP Kernel

    function Iop_Kernel_Revision return String;

    -- Returns a string containing the current revision information
    -- for the IOP Kernel.
    -- Null string is returned if the information can not be retrieved




    -- The following procedures are used to set and display the values
    -- of the automatic rebooting after a crash feature.
    --
    -- If this feature is enabled, upon the first crash of the R1000, the
    -- machine will analyze the failure and if no hard fault can be found
    -- the system will automatically reboot.  If a second crash occurs
    -- during the interval selected, the machine will not reboot and await
    -- a response at the console.  IF the second crash occurs past the number
    -- of days specified for the interval, the machine will, again if no
    -- hard failure is detected, automatically reboot and reset the count
    -- of days between failures.
    --
    -- It is possible to quiesce the feature for one crash, which allows
    -- the user to indicate that they want the machine to wait on the next
    -- failure even if it falls outside the interval.  After the crash
    -- the reboot on failure feature is reenabled.
    --



    procedure Reboot_On_Failure (Enabled : Boolean := True);

    -- Used to set whether the feature which allows an R1000 to automatically
    -- reboot after a failure is enabled or disabled
    --


    procedure Reboot_On_Failure_Interval (Number_Of_Days : Integer := 7);

    -- Set the number of days which must pass between two crashes
    -- for the system to allow automatic reboot.
    --


    procedure Quiesce_Reboot_On_Failure;

    -- Will temporarily disable the reboot on failure feature for the
    -- next crash.  After the crash the option will be reset to enabled.
    --
    -- It is only possible to quiesce if the option was prevously enabled.
    -- If the option to reboot on failure was disabled, quiescing will have
    -- no effect.
    --


    procedure Reboot_On_Failure_Settings;

    --
    -- Display current setting
    --




private
    type Fs_Handle_Entry;

    type Fs_Handle is access Fs_Handle_Entry;
end Dfs;

E3 Meta Data

    nblk1=8
    nid=0
    hdr6=10
        [0x00] rec0=1d rec1=00 rec2=01 rec3=034
        [0x01] rec0=19 rec1=00 rec2=02 rec3=024
        [0x02] rec0=14 rec1=00 rec2=03 rec3=064
        [0x03] rec0=1b rec1=00 rec2=04 rec3=008
        [0x04] rec0=1d rec1=00 rec2=05 rec3=01c
        [0x05] rec0=14 rec1=00 rec2=06 rec3=006
        [0x06] rec0=28 rec1=00 rec2=07 rec3=010
        [0x07] rec0=04 rec1=00 rec2=08 rec3=001
    tail 0x2152108be83c188c3b919 0x42a00088462060003