DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

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

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦d8944301e⟧ Ada Source

    Length: 6144 (0x1800)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package V_I_Sig, seg_04ce15

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦this⟧ 

E3 Source Code



-- Copyright 1987, 1988, 1992 Verdix Corporation

------------------------------------------------------------------------------
-- User interface to the interrupt entry signal services
------------------------------------------------------------------------------
with System;
use System;
with Unsigned_Types;
with Ada_Krn_Defs;
package V_I_Sig is

    pragma Suppress (All_Checks);
    pragma Suppress (Exception_Tables);
    pragma Not_Elaborated;
    pragma Local_Access;

    type Signal_Id is new Unsigned_Types.Unsigned_Integer;
    No_Signal_Id : constant Signal_Id := 0;

    --------------------------------------------------------------------------
    -- Interrupt entry's ISR header record built by the compiler
    --------------------------------------------------------------------------
    type Isr_Header is
        record
            Vector_Num : Integer;
            S : Signal_Id;
        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;
    pragma Local_Access (Isr_Header_Ref);

    --------------------------------------------------------------------------
    -- 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
    --
    --  intr_entry - points to a record containing the intr_vector. The
    --\x09\x09signal_isr() handler is passed the address of an isr_header
    --      record containing this intr_vector number.
    --
    --      A task interrupt entry does:
    --      for interrupt_entry use at intr_entry_rec'address.
    --
    -- Returns address of signal structure that can be posted.
    --------------------------------------------------------------------------
    function Create_Signal
                (Intr_Entry : Ada_Krn_Defs.A_Intr_Entry_T) return Signal_Id;

    ------------------
    -- Post signal
    ------------------
    procedure Post_Signal (S : Signal_Id);

    --------------------------------------------------------------------------
    -- Interrupt entry's ISR
    --------------------------------------------------------------------------
    procedure Signal_Isr (I : Isr_Header_Ref);

    --------------------------------------------------------------------------
    -- Services for supporting POSIX_Signals
    --------------------------------------------------------------------------
    procedure Ignore_Signal (Intr_Vector : Ada_Krn_Defs.Intr_Vector_Id_T);
    procedure Unignore_Signal (Intr_Vector : Ada_Krn_Defs.Intr_Vector_Id_T);
    function Is_Signal_Ignored
                (Intr_Vector : Ada_Krn_Defs.Intr_Vector_Id_T) return Boolean;

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");
    pragma Interface (Ada, Ignore_Signal);
    pragma Interface_Name (Ignore_Signal, "__IGNORE_SIGNAL");
    pragma Interface (Ada, Unignore_Signal);
    pragma Interface_Name (Unignore_Signal, "__UNIGNORE_SIGNAL");
    pragma Interface (Ada, Is_Signal_Ignored);
    pragma Interface_Name (Is_Signal_Ignored, "__IS_SIGNAL_IGNORED");
end V_I_Sig;

E3 Meta Data

    nblk1=5
    nid=0
    hdr6=a
        [0x00] rec0=1f rec1=00 rec2=01 rec3=032
        [0x01] rec0=18 rec1=00 rec2=02 rec3=004
        [0x02] rec0=16 rec1=00 rec2=03 rec3=08e
        [0x03] rec0=15 rec1=00 rec2=04 rec3=012
        [0x04] rec0=03 rec1=00 rec2=05 rec3=000
    tail 0x21754239e874f7c10761e 0x42a00088462060003