DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T V

⟦114d254e0⟧ TextFile

    Length: 3079 (0xc07)
    Types: TextFile
    Names: »V«

Derivation

└─⟦516dceb10⟧ Bits:30000751 8mm tape, Rational 1000, RCI_VADS
    └─ ⟦9a14c9417⟧ »DATA« 
        └─⟦this⟧ 

TextFile

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