|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 13312 (0x3400)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, seg_03bdbe
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦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;
nblk1=c
nid=0
hdr6=18
[0x00] rec0=19 rec1=00 rec2=01 rec3=05a
[0x01] rec0=12 rec1=00 rec2=02 rec3=05a
[0x02] rec0=12 rec1=00 rec2=03 rec3=020
[0x03] rec0=00 rec1=00 rec2=0c rec3=004
[0x04] rec0=14 rec1=00 rec2=04 rec3=044
[0x05] rec0=12 rec1=00 rec2=05 rec3=080
[0x06] rec0=00 rec1=00 rec2=0b rec3=006
[0x07] rec0=14 rec1=00 rec2=06 rec3=046
[0x08] rec0=00 rec1=00 rec2=0a rec3=006
[0x09] rec0=15 rec1=00 rec2=07 rec3=034
[0x0a] rec0=11 rec1=00 rec2=08 rec3=078
[0x0b] rec0=12 rec1=00 rec2=09 rec3=000
tail 0x21739b98885657469689c 0x489e0066482863c01