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

⟦a12ceaa5d⟧ Ada Source

    Length: 6144 (0x1800)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body C_Unit, seg_027700, seg_027c64, seg_027cff, separate Object_Management_System

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



separate (Object_Management_System)
package body C_Unit is


    function Image (The_Unit_Kind : Unit_Kind) return String is
    begin
        case The_Unit_Kind is
            when C_Main =>
                return "C_Main";
            when C_Spec =>
                return "C_Spec";
            when C_Body =>
                return "C_Body";
            when Not_A_C_Unit =>
                return "      ";
        end case;
    end Image;

    function Image (The_Unit_State : Unit_State) return String is
    begin
        case The_Unit_State is
            when Source =>
                return "S";
            when Compiled =>
                return "C";
            when Linked =>
                return "L";
            when Nonexistent =>
                return " ";
        end case;
    end Image;

    function Kind (The_C_Unit : Library_Object) return Unit_Kind is
    begin
        if The_C_Unit.Subclass = C_Unit_Subclass then
            return The_C_Unit.C_Kind;
        else
            return Not_A_C_Unit;
        end if;
    end Kind;


    function State (The_C_Unit : Library_Object) return Unit_State is
    begin
        if The_C_Unit.Subclass = C_Unit_Subclass then
            return The_C_Unit.C_State;
        else
            return Nonexistent;
        end if;
    end State;

    function Is_Spec (The_C_Unit : Library_Object) return Boolean is
    begin
        return The_C_Unit.C_Kind = C_Spec;
    end Is_Spec;

    function Is_Body (The_C_Unit : Library_Object) return Boolean is
    begin
        return The_C_Unit.C_Kind = C_Body;
    end Is_Body;

    function Is_Main (The_C_Unit : Library_Object) return Boolean is
    begin
        return The_C_Unit.C_Kind = C_Main;
    end Is_Main;

    function Is_Source (The_C_Unit : Library_Object) return Boolean is
    begin
        return The_C_Unit.C_State = Source;
    end Is_Source;


    function Is_Compiled (The_C_Unit : Library_Object) return Boolean is
    begin
        return The_C_Unit.C_State = Compiled;
    end Is_Compiled;


    function Is_Linked (The_C_Unit : Library_Object) return Boolean is
    begin
        return The_C_Unit.C_State = Linked;
    end Is_Linked;


    procedure Create (The_C_Unit : in out Library_Object;
                      Name : String;
                      Kind : Unit_Kind) is
        Obj : Directory.Object;
    begin
        case Kind is
            when C_Spec =>
                Directory.Any_Object.Create
                   (The_Object => Obj,
                    Object_Name => Name & ".h",
                    Object_Class => Directory.File_Class);
            when C_Body | C_Main =>
                Directory.Any_Object.Create
                   (The_Object => Obj,
                    Object_Name => Name & ".c",
                    Object_Class => Directory.File_Class);
            when others =>
                Obj := Directory.Nil;
        end case;
        The_C_Unit := Library_Object'(Subclass => C_Unit_Subclass,
                                      Name => Gs.Value (Name),
                                      C_Kind => Kind,
                                      C_State => Source,
                                      Source_File => Obj,
                                      Object_File => Directory.Nil,
                                      Exec_File => Directory.Nil);
    exception
        when Directory.Already_Existent_Object_Error =>
            The_C_Unit := Nil;
        when Directory.System_Error =>
            The_C_Unit := Nil;
    end Create;
end C_Unit;



E3 Meta Data

    nblk1=5
    nid=0
    hdr6=a
        [0x00] rec0=24 rec1=00 rec2=01 rec3=06a
        [0x01] rec0=26 rec1=00 rec2=03 rec3=016
        [0x02] rec0=0e rec1=00 rec2=05 rec3=04a
        [0x03] rec0=17 rec1=00 rec2=04 rec3=012
        [0x04] rec0=0a rec1=00 rec2=02 rec3=000
    tail 0x217219e5a83ac4b197a9e 0x42a00088462060003