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

⟦022744c4b⟧ Ada Source

    Length: 4096 (0x1000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Generate_Link_Commands, seg_01c34c, separate Batch_Extensions_Support

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 (Batch_Extensions_Support)
procedure Generate_Link_Commands (Compilation_Script_File : Io.File_Type;
                                  Host_Units : Dt.Object.Iterator;
                                  Target_Key : String;
                                  Status : in out Simple_Status.Condition) is
    Host_Units_Iter : Dt.Object.Iterator := Host_Units;
    Current_Object : Directory.Object;
    Has_Secondary : Boolean := False;
    Error_Status : Directory.Error_Status;
begin  
    Dt.Object.Reset (Host_Units_Iter);
    -- Reset the iterator

    while not Dt.Object.Done (Host_Units_Iter) loop
        -- First generate all secondary commands for the host units

        Dt.Object.Low_Level.Get_Object
           (Dt.Object.Value (Host_Units_Iter), Current_Object, Error_Status);
        -- Convert current handle to a directorty object

        if Directory."/=" (Error_Status, Directory.Successful) then
            Log.Put_Line ("Error in getting object from its handle",
                          Profile.Error_Msg);
            return;
        end if;


        if Is_Main_Program (Current_Object) then
            -- Generate link commands only for main units

            Log.Put_Line ("Generating link commands for " &
                          Naming.Unique_Full_Name (Current_Object),
                          Profile.Note_Msg);

            Generate_Context_Change_Command
               (Compilation_Script_File, Current_Object, Target_Key, Status);
            -- Set remote context to the unit's remote directory

            if Simple_Status.Error (Status) then
                return;
            end if;

            Bi.Generate_Link_Commands (Compilation_Script_File, Current_Object,
                                       Target_Key, Status, Profile.Get);

            if Simple_Status.Error (Status) then
                Log.Put_Line ("Error while generating link commands for " &
                              Naming.Unique_Full_Name (Current_Object),
                              Profile.Error_Msg);
                return;
            end if;  
        end if;
        Dt.Object.Next (Host_Units_Iter);
    end loop;
exception
    when others =>
        Unhandled_Exception (Status, "generate_link_commands");

end Generate_Link_Commands;



E3 Meta Data

    nblk1=3
    nid=0
    hdr6=6
        [0x00] rec0=17 rec1=00 rec2=01 rec3=060
        [0x01] rec0=1a rec1=00 rec2=02 rec3=022
        [0x02] rec0=0e rec1=00 rec2=03 rec3=000
    tail 0x217197518836571c3b86f 0x42a00088462060003