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: 3079 (0xc07) Types: TextFile Names: »V«
└─⟦516dceb10⟧ Bits:30000751 8mm tape, Rational 1000, RCI_VADS └─ ⟦9a14c9417⟧ »DATA« └─⟦this⟧
-- Copyright 1987, 1988 Verdix Corporation ------------------------------------------------------------------------------ -- User interface to the interrupt entry signal services ------------------------------------------------------------------------------ WITH System; USE System; WITH V_I_Types; PACKAGE V_I_Sig IS PRAGMA Suppress (All_Checks); PRAGMA Suppress (Exception_Tables); PRAGMA Not_Elaborated; SUBTYPE A_Signal_T IS V_I_Types.A_Signal_T; -------------------------------------------------------------------------- -- Interrupt entry's ISR header record built by the compiler -------------------------------------------------------------------------- TYPE Isr_Header IS RECORD Vector_Num : Integer; S : A_Signal_T; 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; S AT 4 RANGE 0 .. 4 * Storage_Unit - 1; END RECORD; Signal_Isr_Vector_Num_Off : CONSTANT := 0; Signal_Isr_S_Off : CONSTANT := 4; TYPE Isr_Header_Ref IS ACCESS Isr_Header; -------------------------------------------------------------------------- -- Signals provide the mechanism for an interrupt handler to notify a task -- of an asynchronous event. An interrupt entry in a task is attached to -- a signal. At the completion of interrupt handling, the signal is -- posted, whereby, a call is made to the attached interrupt entry. -------------------------------------------------------------------------- -------------------------------------------------------------------------- -- Create signal -- -- -- -- signal_code - code shared by interrupt handler and task interrupt -- -- entry. A task interrupt entry does: -- -- for interrupt_entry use at address'ref(signal_code); -- -- -- -- Returns address of signal structure that can be posted. -- -------------------------------------------------------------------------- FUNCTION Create_Signal (Signal_Code : Integer) RETURN A_Signal_T; ------------------ -- Post signal -- ------------------ PROCEDURE Post_Signal (S : A_Signal_T); -------------------------------------------------------------------------- -- Interrupt entry's ISR -------------------------------------------------------------------------- PROCEDURE Signal_Isr (I : Isr_Header_Ref); PRIVATE PRAGMA Interface (Ada, Create_Signal); PRAGMA Interface_Name (Create_Signal, "TS_CREATE_SIGNAL"); PRAGMA Interface (Ada, Post_Signal); PRAGMA Interface_Name (Post_Signal, "TS_POST_SIGNAL"); PRAGMA Interface (Ada, Signal_Isr); PRAGMA Interface_Name (Signal_Isr, "SIGNAL_ISR"); END V_I_Sig;