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