DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

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 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ B T

⟦65e8c95e3⟧ TextFile

    Length: 4234 (0x108a)
    Types: TextFile
    Names: »B«

Derivation

└─⟦afbc8121e⟧ Bits:30000532 8mm tape, Rational 1000, MC68020_OS2000 7_2_2
    └─ ⟦77aa8350c⟧ »DATA« 
        └─⟦f794ecd1d⟧ 
            └─⟦24d1ddd49⟧ 
                └─⟦this⟧ 

TextFile

--    The use of this system is subject to the software license terms and
--    conditions agreed upon between Rational and the Customer.
--
--                Copyright 1988 by Rational.
--
--                          RESTRICTED RIGHTS LEGEND
--
--    Use, duplication, or disclosure by the Government is subject to
--    restrictions as set forth in subdivision (b)(3)(ii) of the Rights in
--    Technical Data and Computer Software clause at 52.227-7013.
--
--
--                Rational
--                3320 Scott Boulevard
--                Santa Clara, California 95054-3197
--
--   PROPRIETARY AND CONFIDENTIAL INFORMATION OF RATIONAL;
--   USE OR COPYING WITHOUT EXPRESS WRITTEN AUTHORIZATION
--   IS STRICTLY PROHIBITED.  THIS MATERIAL IS PROTECTED AS
--   AN UNPUBLISHED WORK UNDER THE U.S. COPYRIGHT ACT OF
--   1976.  CREATED 1988.  ALL RIGHTS RESERVED.
--
--

separate (Task_Management)
package body Attributes is

    pragma Suppress_All;

    function Entry_Count (For_Entry : Entry_Id) return Integer is
        pragma Routine_Number (Runtime_Ids.Entry_Count);
        Current_Task : constant Task_Id := Task_Map.Get_Current_Task_Id;
        Status       : Mq.Stratus;
        Result       : Mq.Queue_Length;
        Wait_List    : Wait_List_Skin renames Current_Task.Queues.Wait_List.all;
    begin
        -- if Debug_Mode then
        --     Debugging.Put_Message ("Entered Entry_Count");
        -- end if;
        --
        -- if Safety_Check and then
        --    Mq.Wait_List_Index (Integer (For_Entry)) not in
        --       First_Entry_Index .. Wait_List.List'Last then
        --     Runtime_Exceptions.Raise_Runtime_Error
        --        ("Entry_Count", "entry number out of bounds",
        --         Err.Bad_Entry_Number,
        --         Current_Task => Current_Task);
        -- end if;

        Mq.Length (Wait_List.List (Mq.Wait_List_Index (For_Entry)).Wait_Queue,
                   Status, Result);
        -- if Safety_Check then
        --     Checking.Check_Message_Queue_Status
        --        (Status, Err.Bad_Status_From_Length,
        --         Current_Task => Current_Task);
        -- end if;

        return Integer (Result);
    end Entry_Count;


    function Task_Callable (The_Task : Task_Id) return Boolean is
        pragma Routine_Number (Runtime_Ids.Task_Callable);
        Current_Task : constant Task_Id := Get_Current_Task_And_Acquire_Lock;
        Result       : Boolean;
    begin
        -- if Debug_Mode then
        --     Debugging.Put_Message ("Entered Task_Callable");
        -- end if;
        --
        -- if Safety_Check then
        --     Checking.Check_Task (The_Task, "Task_Callable",
        --                          Current_Task => Current_Task);
        -- end if;

        Result := not (The_Task.Action_State (Non_Callable));
        Release_Lock;
        return Result;
    end Task_Callable;


    function Task_Terminated (The_Task : Task_Id) return Boolean is
        pragma Routine_Number (Runtime_Ids.Task_Terminated);
        Current_Task : constant Task_Id := Get_Current_Task_And_Acquire_Lock;
        Result       : Boolean;
    begin
        -- if Debug_Mode then
        --     Debugging.Put_Message ("Entered Task_Terminated");
        -- end if;
        --
        -- if Safety_Check then
        --     Checking.Check_Task (The_Task, "Task_Terminated",
        --                          Current_Task => Current_Task);
        -- end if;

        Result := The_Task.Suspension_State = Terminated;
        Release_Lock;
        return Result;
    end Task_Terminated;


    function Stack_Size (For_Task : Task_Id) return Integer is
        pragma Routine_Number (Runtime_Ids.Task_Stack_Size);
    begin
        -- if Debug_Mode then
        --     Debugging.Put_Message ("Entered Stack_Size");
        -- end if;
        --
        -- if Safety_Check then
        --     Checking.Check_Task (For_Task, "Stack_Size",
        --                          Current_Task => Current_Task);
        -- end if;

        return For_Task.Stack_Bounds.Size;
    end Stack_Size;

end Attributes;
pragma Runtime_Unit (Unit_Number         => Runtime_Ids.Runtime_Compunit,
                     Elab_Routine_Number => Runtime_Ids.Internal);