|
|
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: 11264 (0x2c00)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, seg_03bdb8
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
-- Copyright 1988 Verdix Corporation
------------------------------------------------------------------------------
-- Interface to the passive task data structure and subprograms.
--
-- The compiler emits calls to these subprograms when
-- "pragma passive" is present in task specification.
------------------------------------------------------------------------------
WITH System;
USE System;
WITH V_I_Types;
WITH V_I_Sema;
PACKAGE V_I_Pass IS
PRAGMA Suppress (All_Checks);
PRAGMA Suppress (Exception_Tables);
PRAGMA Not_Elaborated;
--------------------------------------------------------------------------
-- Passive task header record built by the compiler
--------------------------------------------------------------------------
TYPE Entry_Array IS ARRAY (1 .. 8) OF System.Address;
TYPE Task_Header IS
RECORD
State : Integer;
Region : Integer;
Static_Priority : Priority;
Intr_Flag : Integer;
Intr_Status : V_I_Types.Intr_Status_T;
Sema4 : V_I_Sema.Semaphore_Rec;
Queue : V_I_Sema.Semaphore_Rec;
Entries : Entry_Array;
END RECORD;
--
-- Offsets for these fields must agree with those used in il_task.c
--
FOR Task_Header USE
RECORD
State AT 0 RANGE 0 .. 4 * Storage_Unit - 1;
Region AT 4 RANGE 0 .. 4 * Storage_Unit - 1;
Static_Priority AT 8 RANGE 0 .. 4 * Storage_Unit - 1;
Intr_Flag AT 12 RANGE 0 .. 4 * Storage_Unit - 1;
Intr_Status AT 16 RANGE 0 .. 4 * Storage_Unit - 1;
Sema4 AT 20 RANGE 0 .. 20 * Storage_Unit - 1;
Queue AT 40 RANGE 0 .. 20 * Storage_Unit - 1;
Entries AT 60 RANGE 0 .. 32 * Storage_Unit - 1;
END RECORD;
TYPE Task_Header_Ref IS ACCESS Task_Header;
--------------------------------------------------------------------------
-- Interrupt entry's ISR header record built by the compiler
--------------------------------------------------------------------------
TYPE Isr_Header IS
RECORD
Vector_Num : Integer;
Entry_Num : Integer;
T : Task_Header_Ref;
Finish_Accept_A : Address;
END RECORD;
--
-- Offsets for these fields must agree with those used in il_task.c
--
FOR Isr_Header USE
RECORD
Vector_Num AT 0 RANGE 0 .. 4 * Storage_Unit - 1;
Entry_Num AT 4 RANGE 0 .. 4 * Storage_Unit - 1;
T AT 8 RANGE 0 .. 4 * Storage_Unit - 1;
Finish_Accept_A AT 12 RANGE 0 .. 4 * Storage_Unit - 1;
END RECORD;
Pt_Isr_Vector_Num_Off : CONSTANT := 0;
Pt_Isr_Entry_Num_Off : CONSTANT := 4;
Pt_Isr_T_Off : CONSTANT := 8;
Pt_Isr_Finish_Accept_A_Off : CONSTANT := 12;
TYPE Isr_Header_Ref IS ACCESS Isr_Header;
--------------------------------------------------------------------------
-- Subprograms to call/enter a passive task's entry
--------------------------------------------------------------------------
FUNCTION Pt_Enter (Entry_Num : Integer; T : Task_Header_Ref) RETURN Address;
FUNCTION Pt_Cond_Enter
(Entry_Num : Integer; T : Task_Header_Ref) RETURN Address;
FUNCTION Pt_Timed_Enter
(Timeout : Duration; Entry_Num : Integer; T : Task_Header_Ref)
RETURN Address;
--------------------------------------------------------------------------
-- Subprogam to call/enter a passive task's entry from an ISR
--------------------------------------------------------------------------
FUNCTION Pt_Isr_Enter
(Entry_Num : Integer; T : Task_Header_Ref) RETURN Address;
--------------------------------------------------------------------------
-- Subprogram to leave a passive task
--------------------------------------------------------------------------
PROCEDURE Pt_Leave (T : Task_Header_Ref);
--------------------------------------------------------------------------
-- Subprogram to initialize a passive task
--------------------------------------------------------------------------
PROCEDURE Pt_Init (T : Task_Header_Ref);
--------------------------------------------------------------------------
-- Interrupt entry's ISR
--------------------------------------------------------------------------
PROCEDURE Pt_Isr (I : Isr_Header_Ref);
PRIVATE
PRAGMA Interface (Ada, Pt_Enter);
PRAGMA Interface_Name (Pt_Enter, "PT_ENTER");
PRAGMA Interface (Ada, Pt_Cond_Enter);
PRAGMA Interface_Name (Pt_Cond_Enter, "PT_COND_ENTER");
PRAGMA Interface (Ada, Pt_Timed_Enter);
PRAGMA Interface_Name (Pt_Timed_Enter, "PT_TIMED_ENTER");
PRAGMA Interface (Ada, Pt_Isr_Enter);
PRAGMA Interface_Name (Pt_Isr_Enter, "PT_ISR_ENTER");
PRAGMA Interface (Ada, Pt_Leave);
PRAGMA Interface_Name (Pt_Leave, "PT_LEAVE");
PRAGMA Interface (Ada, Pt_Init);
PRAGMA Interface_Name (Pt_Init, "PT_INIT");
PRAGMA Interface (Ada, Pt_Isr);
PRAGMA Interface_Name (Pt_Isr, "PT_ISR");
END V_I_Pass;
nblk1=a
nid=0
hdr6=14
[0x00] rec0=1d rec1=00 rec2=01 rec3=046
[0x01] rec0=01 rec1=00 rec2=0a rec3=01e
[0x02] rec0=19 rec1=00 rec2=02 rec3=03e
[0x03] rec0=01 rec1=00 rec2=09 rec3=062
[0x04] rec0=1d rec1=00 rec2=03 rec3=03c
[0x05] rec0=01 rec1=00 rec2=08 rec3=038
[0x06] rec0=12 rec1=00 rec2=04 rec3=046
[0x07] rec0=00 rec1=00 rec2=07 rec3=00c
[0x08] rec0=17 rec1=00 rec2=05 rec3=012
[0x09] rec0=05 rec1=00 rec2=06 rec3=000
tail 0x21739b9068565745933e3 0x489e0066482863c01