|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: B T
Length: 4234 (0x108a)
Types: TextFile
Names: »B«
└─⟦afbc8121e⟧ Bits:30000532 8mm tape, Rational 1000, MC68020_OS2000 7_2_2
└─⟦77aa8350c⟧ »DATA«
└─⟦f794ecd1d⟧
└─⟦24d1ddd49⟧
└─⟦this⟧
-- 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);