|
|
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: T V
Length: 8743 (0x2227)
Types: TextFile
Names: »V«
└─⟦516dceb10⟧ Bits:30000751 8mm tape, Rational 1000, RCI_VADS
└─⟦9a14c9417⟧ »DATA«
└─⟦this⟧
-- Copyright 1986,1987,1988,1991 Verdix Corporation
------------------------------------------------------------------------------
-- User interface to the ADA tasking extensions
------------------------------------------------------------------------------
WITH V_I_Types;
USE V_I_Types;
WITH System;
PACKAGE V_I_Tasks IS
PRAGMA Suppress (All_Checks);
PRAGMA Suppress (Exception_Tables);
PRAGMA Not_Elaborated;
--------------------------------------------------------------------------
-- Returns the Program Control Block (PCB) of the current program.
--------------------------------------------------------------------------
FUNCTION Get_Current_Program RETURN A_Program_T;
--------------------------------------------------------------------------
-- Returns the specified task's Program Control Block (PCB)
--------------------------------------------------------------------------
FUNCTION Get_Program (A_Task : A_Task_T) RETURN A_Program_T;
--------------------------------------------------------------------------
-- Terminates the specified Ada program
--------------------------------------------------------------------------
PROCEDURE Terminate_Program
(Status : Integer; -- exit status
A_Program : A_Program_T := Get_Current_Program);
--------------------------------------------------------------------------
-- Gets the user defined key for the specified program.
--------------------------------------------------------------------------
FUNCTION Get_Program_Key (A_Program : A_Program_T := Get_Current_Program)
RETURN System.Address;
--------------------------------------------------------------------------
-- Returns the Task Control Block (TCB) of the current task.
--------------------------------------------------------------------------
FUNCTION Get_Current_Task RETURN A_Task_T;
--------------------------------------------------------------------------
-- Returns the Task Control Block (TCB) associated with the specified task.
--------------------------------------------------------------------------
FUNCTION Get_Task (Id : System.Task_Id) RETURN A_Task_T;
--------------------------------------------------------------------------
-- Suspends/resumes the specified task. Returns TRUE, if specified task
-- is excecuting (current_task), ready (on_runq) or suspended via
-- previous suspend_task request.
--------------------------------------------------------------------------
FUNCTION Suspend_Task (A_Task : A_Task_T) RETURN Boolean;
FUNCTION Resume_Task (A_Task : A_Task_T) RETURN Boolean;
--------------------------------------------------------------------------
-- Gets/sets the user field in the specified task.
--------------------------------------------------------------------------
FUNCTION Get_User_Field (A_Task : A_Task_T) RETURN User_Field_T;
PROCEDURE Set_User_Field (A_Task : A_Task_T; New_Value : User_Field_T);
--------------------------------------------------------------------------
-- Gets/sets the current or static priority of the specified task.
--
-- Task scheduling is only re-evaluated if the current priority of the
-- current task is lowered or if the current priority of any other
-- task is set.
--
-- The current priority is used for all scheduling activities.
-- The static priority is only used for rendezvous as follows:
-- rendezvous_start:
-- if not PRIORITY_INHERITANCE_ENABLED and then
-- called_task.current_priority < calling_task.static_priority
-- then
-- called_task.current_priority := calling_task.static_prioity;
-- end if;
-- rendezvous_end:
-- called_task.current_priority := called_task.static_priority;
--------------------------------------------------------------------------
FUNCTION Get_Current_Priority (A_Task : A_Task_T) RETURN System.Priority;
PROCEDURE Set_Current_Priority
(A_Task : A_Task_T; New_Value : System.Priority);
FUNCTION Get_Static_Priority (A_Task : A_Task_T) RETURN System.Priority;
PROCEDURE Set_Static_Priority
(A_Task : A_Task_T; New_Value : System.Priority);
--------------------------------------------------------------------------
-- Gets/sets the time slice interval for the specified task.
--
-- Time slicing for a task is disabled by setting it to 0.0 seconds
--------------------------------------------------------------------------
FUNCTION Get_Time_Slice (A_Task : A_Task_T) RETURN Duration;
PROCEDURE Set_Time_Slice (A_Task : A_Task_T; New_Time_Slice : Duration);
--------------------------------------------------------------------------
-- Gets/sets the global time slicing enabled configuration parameter
--------------------------------------------------------------------------
FUNCTION Get_Time_Slicing RETURN Boolean;
PROCEDURE Set_Time_Slicing (Enabled : Boolean);
--------------------------------------------------------------------------
-- Gets/sets the current pool (cp) for the current task
--------------------------------------------------------------------------
FUNCTION Get_Pool RETURN System.Address;
PROCEDURE Set_Pool (P : System.Address);
--------------------------------------------------------------------------
-- Gets/sets the flag to disable the program from exiting
--------------------------------------------------------------------------
FUNCTION Get_Exit_Disabled_Flag RETURN Boolean;
PROCEDURE Set_Exit_Disabled_Flag (Disabled_Flag : Boolean);
--------------------------------------------------------------------------
-- Disables/enables task preemption
--
-- Shouldn't be called from an ISR. disable_preemption doesn't
-- disable interrupts.
--------------------------------------------------------------------------
PROCEDURE Disable_Preemption;
PROCEDURE Enable_Preemption;
PRIVATE
PRAGMA Interface (Ada, Get_Current_Program);
PRAGMA Interface_Name (Get_Current_Program, "__GET_CURRENT_PROGRAM");
PRAGMA Interface (Ada, Get_Program);
PRAGMA Interface_Name (Get_Program, "__GET_PROGRAM");
PRAGMA Interface (Ada, Terminate_Program);
PRAGMA Interface_Name (Terminate_Program, "__TERMINATE_PROGRAM");
PRAGMA Interface (Ada, Get_Program_Key);
PRAGMA Interface_Name (Get_Program_Key, "__GET_PROGRAM_KEY");
PRAGMA Interface (Ada, Get_Current_Task);
PRAGMA Interface_Name (Get_Current_Task, "__GET_CURRENT_TASK");
PRAGMA Interface (Ada, Get_Task);
PRAGMA Interface_Name (Get_Task, "__GET_TASK");
PRAGMA Interface (Ada, Suspend_Task);
PRAGMA Interface_Name (Suspend_Task, "TS_SUSPEND_TASK");
PRAGMA Interface (Ada, Resume_Task);
PRAGMA Interface_Name (Resume_Task, "TS_RESUME_TASK");
PRAGMA Interface (Ada, Get_User_Field);
PRAGMA Interface_Name (Get_User_Field, "__GET_USER_FIELD");
PRAGMA Interface (Ada, Set_User_Field);
PRAGMA Interface_Name (Set_User_Field, "__SET_USER_FIELD");
PRAGMA Interface (Ada, Get_Current_Priority);
PRAGMA Interface_Name (Get_Current_Priority, "__GET_CURRENT_PRIORITY");
PRAGMA Interface (Ada, Set_Current_Priority);
PRAGMA Interface_Name (Set_Current_Priority, "__SET_CURRENT_PRIORITY");
PRAGMA Interface (Ada, Get_Static_Priority);
PRAGMA Interface_Name (Get_Static_Priority, "__GET_STATIC_PRIORITY");
PRAGMA Interface (Ada, Set_Static_Priority);
PRAGMA Interface_Name (Set_Static_Priority, "__SET_STATIC_PRIORITY");
PRAGMA Interface (Ada, Get_Time_Slice);
PRAGMA Interface_Name (Get_Time_Slice, "__GET_TIME_SLICE");
PRAGMA Interface (Ada, Set_Time_Slice);
PRAGMA Interface_Name (Set_Time_Slice, "__SET_TIME_SLICE");
PRAGMA Interface (Ada, Get_Time_Slicing);
PRAGMA Interface_Name (Get_Time_Slicing, "__GET_TIME_SLICING");
PRAGMA Interface (Ada, Set_Time_Slicing);
PRAGMA Interface_Name (Set_Time_Slicing, "__SET_TIME_SLICING");
PRAGMA Interface (Ada, Get_Pool);
PRAGMA Interface_Name (Get_Pool, "__GET_POOL");
PRAGMA Interface (Ada, Set_Pool);
PRAGMA Interface_Name (Set_Pool, "__SET_POOL");
PRAGMA Interface (Ada, Get_Exit_Disabled_Flag);
PRAGMA Interface_Name (Get_Exit_Disabled_Flag, "__GET_EXIT_DISABLED_FLAG");
PRAGMA Interface (Ada, Set_Exit_Disabled_Flag);
PRAGMA Interface_Name (Set_Exit_Disabled_Flag, "__SET_EXIT_DISABLED_FLAG");
PRAGMA Interface (Ada, Disable_Preemption);
PRAGMA Interface_Name (Disable_Preemption, "__DISABLE_PREEMPTION");
PRAGMA Interface (Ada, Enable_Preemption);
PRAGMA Interface_Name (Enable_Preemption, "__ENABLE_PREEMPTION");
END V_I_Tasks;