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 - 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;