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

⟦05a893c5c⟧ Ada Source

    Length: 14336 (0x3800)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Krn_Call_I, seg_04cdf0

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 1991 Verdix Corporation

with System;
use System;
with Krn_Defs;
use Krn_Defs;
with Krn_Entries;
use Krn_Entries;
with Unchecked_Conversion;
package Krn_Call_I is
    pragma Suppress (All_Checks);
    pragma Suppress (Exception_Tables);
    pragma Not_Elaborated;

    -- Interface to the routines resident in the user program that call the
    -- kernel services

    -- Kernel services are restricted to only two parameters. No OUT
    -- parameters. May return an integer'size result.

    -------------------------------------------------------------------------
    -- Program services
    -------------------------------------------------------------------------
    procedure Krn_Program_Init (Arg : A_Program_Init_Arg_T);
    pragma Interface (Ada, Krn_Program_Init);
    pragma Interface_Name (Krn_Program_Init, "__KRN_CALL_PROGRAM_INIT");

    procedure Krn_Program_Exit (Status : Integer);
    pragma Interface (Ada, Krn_Program_Exit);
    pragma Interface_Name (Krn_Program_Exit, "__KRN_CALL_PROGRAM_EXIT");

    procedure Krn_Program_Diagnostic (S_A : Address; S_Len : Natural);
    pragma Interface (Ada, Krn_Program_Diagnostic);
    pragma Interface_Name (Krn_Program_Diagnostic,
                           "__KRN_CALL_PROGRAM_DIAGNOSTIC");

    function Krn_Program_Start (Arg : A_Program_Start_Arg_T) return A_Krn_Pcb_T;
    pragma Interface (Ada, Krn_Program_Start);
    pragma Interface_Name (Krn_Program_Start, "__KRN_CALL_PROGRAM_START");

    procedure Krn_Program_Terminate (Prg : A_Krn_Pcb_T; Status : Integer);
    pragma Interface (Ada, Krn_Program_Terminate);
    pragma Interface_Name (Krn_Program_Terminate,
                           "__KRN_CALL_PROGRAM_TERMINATE");

    procedure Krn_Program_Set_Is_Server;
    pragma Interface (Ada, Krn_Program_Set_Is_Server);
    pragma Interface_Name (Krn_Program_Set_Is_Server,
                           "__KRN_CALL_PROGRAM_SET_IS_SERVER");

    -------------------------------------------------------------------------
    -- Task services
    -------------------------------------------------------------------------
    procedure Krn_Task_Set_Priority (T : A_Krn_Tcb_T; Prio : Priority);
    pragma Interface (Ada, Krn_Task_Set_Priority);
    pragma Interface_Name (Krn_Task_Set_Priority,
                           "__KRN_CALL_TASK_SET_PRIORITY");
    function Krn_Task_Create (Arg : A_Task_Create_Arg_T) return A_Krn_Tcb_T;
    pragma Interface (Ada, Krn_Task_Create);
    pragma Interface_Name (Krn_Task_Create, "__KRN_CALL_TASK_CREATE");
    procedure Krn_Task_Activate (T : A_Krn_Tcb_T);
    pragma Interface (Ada, Krn_Task_Activate);
    pragma Interface_Name (Krn_Task_Activate, "__KRN_CALL_TASK_ACTIVATE");
    procedure Krn_Task_Terminate (T : A_Krn_Tcb_T);
    pragma Interface (Ada, Krn_Task_Terminate);
    pragma Interface_Name (Krn_Task_Terminate, "__KRN_CALL_TASK_TERMINATE");
    procedure Krn_Task_Suspend (T : A_Krn_Tcb_T);
    pragma Interface (Ada, Krn_Task_Suspend);
    pragma Interface_Name (Krn_Task_Suspend, "__KRN_CALL_TASK_SUSPEND");
    procedure Krn_Task_Resume (T : A_Krn_Tcb_T);
    pragma Interface (Ada, Krn_Task_Resume);
    pragma Interface_Name (Krn_Task_Resume, "__KRN_CALL_TASK_RESUME");
    function Krn_Task_Get_Supervisor_State return Boolean;
    pragma Interface (Ada, Krn_Task_Get_Supervisor_State);
    pragma Interface_Name (Krn_Task_Get_Supervisor_State,
                           "__KRN_CALL_TASK_GET_SUPERVISOR_STATE");
    procedure Krn_Task_Enter_Supervisor_State;
    pragma Interface (Ada, Krn_Task_Enter_Supervisor_State);
    pragma Interface_Name (Krn_Task_Enter_Supervisor_State,
                           "__KRN_CALL_TASK_ENTER_SUPERVISOR_STATE");
    procedure Krn_Task_Leave_Supervisor_State;
    pragma Interface (Ada, Krn_Task_Leave_Supervisor_State);
    pragma Interface_Name (Krn_Task_Leave_Supervisor_State,
                           "__KRN_CALL_TASK_LEAVE_SUPERVISOR_STATE");
    procedure Krn_Task_Wait;
    pragma Interface (Ada, Krn_Task_Wait);
    pragma Interface_Name (Krn_Task_Wait, "__KRN_CALL_TASK_WAIT");
    function Krn_Task_Timed_Wait (Sec : Duration) return Boolean;
    pragma Interface (Ada, Krn_Task_Timed_Wait);
    pragma Interface_Name (Krn_Task_Timed_Wait, "__KRN_CALL_TASK_TIMED_WAIT");
    procedure Krn_Task_Signal (T : A_Krn_Tcb_T);
    pragma Interface (Ada, Krn_Task_Signal);
    pragma Interface_Name (Krn_Task_Signal, "__KRN_CALL_TASK_SIGNAL");
    procedure Krn_Task_Signal_Unlock (T : A_Krn_Tcb_T; Mutex : A_Mutex_T);
    pragma Interface (Ada, Krn_Task_Signal_Unlock);
    pragma Interface_Name (Krn_Task_Signal_Unlock,
                           "__KRN_CALL_TASK_SIGNAL_UNLOCK");
    procedure Krn_Task_Signal_Wait_Unlock (T : A_Krn_Tcb_T; Mutex : A_Mutex_T);
    pragma Interface (Ada, Krn_Task_Signal_Wait_Unlock);
    pragma Interface_Name (Krn_Task_Signal_Wait_Unlock,
                           "__KRN_CALL_TASK_SIGNAL_WAIT_UNLOCK");

    -------------------------------------------------------------------------
    -- Kernel scheduling services
    -------------------------------------------------------------------------
    procedure Krn_Kernel_Set_Time_Slicing_Enabled (New_Value : Boolean);
    pragma Interface (Ada, Krn_Kernel_Set_Time_Slicing_Enabled);
    pragma Interface_Name (Krn_Kernel_Set_Time_Slicing_Enabled,
                           "__KRN_CALL_KERNEL_SET_TIME_SLICING_ENABLED");
    function Krn_Kernel_Get_Time_Slicing_Enabled return Boolean;
    pragma Interface (Ada, Krn_Kernel_Get_Time_Slicing_Enabled);
    pragma Interface_Name (Krn_Kernel_Get_Time_Slicing_Enabled,
                           "__KRN_CALL_KERNEL_GET_TIME_SLICING_ENABLED");

    -------------------------------------------------------------------------
    -- Time services
    -------------------------------------------------------------------------
    procedure Krn_Time_Set (Arg : A_Time_Set_Arg_T);
    pragma Interface (Ada, Krn_Time_Set);
    pragma Interface_Name (Krn_Time_Set, "__KRN_CALL_TIME_SET");
    procedure Krn_Time_Get (Arg : A_Time_Get_Arg_T);
    pragma Interface (Ada, Krn_Time_Get);
    pragma Interface_Name (Krn_Time_Get, "__KRN_CALL_TIME_GET");
    procedure Krn_Time_Delay (Day : Day_T; Sec : Duration);
    pragma Interface (Ada, Krn_Time_Delay);
    pragma Interface_Name (Krn_Time_Delay, "__KRN_CALL_TIME_DELAY");

    -------------------------------------------------------------------------
    -- Callout and task storage services
    -------------------------------------------------------------------------
    -- Service to install a callout.
    function Krn_Callout_Install
                (Event : Callout_Event_T; Proc : Address) return Integer;
    pragma Interface (Ada, Krn_Callout_Install);
    pragma Interface_Name (Krn_Callout_Install, "__KRN_CALL_CALLOUT_INSTALL");

    -- Service to allocate storage in the task control block
    function Krn_Task_Storage_Alloc (Size : Natural) return Task_Storage_Id;
    pragma Interface (Ada, Krn_Task_Storage_Alloc);
    pragma Interface_Name (Krn_Task_Storage_Alloc,
                           "__KRN_CALL_TASK_STORAGE_ALLOC");

    -------------------------------------------------------------------------
    -- Allocation services
    -------------------------------------------------------------------------
    function Krn_Alloc (Size : Natural) return Address;
    pragma Interface (Ada, Krn_Alloc);
    pragma Interface_Name (Krn_Alloc, "__KRN_CALL_ALLOC");
    procedure Krn_Free (A : Address);
    pragma Interface (Ada, Krn_Free);
    pragma Interface_Name (Krn_Free, "__KRN_CALL_FREE");

    -------------------------------------------------------------------------
    -- Interrupt services
    -------------------------------------------------------------------------
    function Krn_Isr_Attach
                (Iv : Intr_Vector_Id_T; Isr : Address) return Address;
    pragma Interface (Ada, Krn_Isr_Attach);
    pragma Interface_Name (Krn_Isr_Attach, "__KRN_CALL_ISR_ATTACH");
    function Krn_Isr_Detach (Iv : Intr_Vector_Id_T) return Address;
    pragma Interface (Ada, Krn_Isr_Detach);
    pragma Interface_Name (Krn_Isr_Detach, "__KRN_CALL_ISR_DETACH");
    function Krn_Isr_Get (Iv : Intr_Vector_Id_T) return Address;
    pragma Interface (Ada, Krn_Isr_Get);
    pragma Interface_Name (Krn_Isr_Get, "__KRN_CALL_ISR_GET");
    function Krn_Isr_Get_Ivt return Address;
    pragma Interface (Ada, Krn_Isr_Get_Ivt);
    pragma Interface_Name (Krn_Isr_Get_Ivt, "__KRN_CALL_ISR_GET_IVT");

    -------------------------------------------------------------------------
    -- Semaphore services
    -------------------------------------------------------------------------
    procedure Krn_Semaphore_Wait (S : A_Semaphore_T);
    pragma Interface (Ada, Krn_Semaphore_Wait);
    pragma Interface_Name (Krn_Semaphore_Wait, "__KRN_CALL_SEMAPHORE_WAIT");
    function Krn_Semaphore_Timed_Wait
                (S : A_Semaphore_T; Sec : Duration) return Boolean;
    pragma Interface (Ada, Krn_Semaphore_Timed_Wait);
    pragma Interface_Name (Krn_Semaphore_Timed_Wait,
                           "__KRN_CALL_SEMAPHORE_TIMED_WAIT");
    procedure Krn_Semaphore_Signal (S : A_Semaphore_T);
    pragma Interface (Ada, Krn_Semaphore_Signal);
    pragma Interface_Name (Krn_Semaphore_Signal, "__KRN_CALL_SEMAPHORE_SIGNAL");

    -------------------------------------------------------------------------
    -- Mutex services
    -------------------------------------------------------------------------
    procedure Krn_Mutex_Lock (Mutex : A_Mutex_T);
    pragma Interface (Ada, Krn_Mutex_Lock);
    pragma Interface_Name (Krn_Mutex_Lock, "__KRN_CALL_MUTEX_LOCK");
    procedure Krn_Mutex_Unlock (Mutex : A_Mutex_T);
    pragma Interface (Ada, Krn_Mutex_Unlock);
    pragma Interface_Name (Krn_Mutex_Unlock, "__KRN_CALL_MUTEX_UNLOCK");
    procedure Krn_Cond_Wait (Cond : A_Cond_T; Mutex : A_Mutex_T);
    pragma Interface (Ada, Krn_Cond_Wait);
    pragma Interface_Name (Krn_Cond_Wait, "__KRN_CALL_COND_WAIT");
    function Krn_Cond_Timed_Wait (Arg : A_Cond_Timed_Wait_Arg_T) return Boolean;
    pragma Interface (Ada, Krn_Cond_Timed_Wait);
    pragma Interface_Name (Krn_Cond_Timed_Wait, "__KRN_CALL_COND_TIMED_WAIT");
    procedure Krn_Cond_Signal (Cond : A_Cond_T);
    pragma Interface (Ada, Krn_Cond_Signal);
    pragma Interface_Name (Krn_Cond_Signal, "__KRN_CALL_COND_SIGNAL");
    procedure Krn_Cond_Broadcast (Cond : A_Cond_T);
    pragma Interface (Ada, Krn_Cond_Broadcast);
    pragma Interface_Name (Krn_Cond_Broadcast, "__KRN_CALL_COND_BROADCAST");

    -------------------------------------------------------------------------
    -- Mutex service combinations
    -------------------------------------------------------------------------
    -- cond_signal, mutex_unlock
    procedure Krn_Cond_Signal_Unlock (Cond : A_Cond_T; Mutex : A_Mutex_T);
    pragma Interface (Ada, Krn_Cond_Signal_Unlock);
    pragma Interface_Name (Krn_Cond_Signal_Unlock,
                           "__KRN_CALL_COND_SIGNAL_UNLOCK");

    -------------------------------------------------------------------------
    -- Pending interrupt services
    -------------------------------------------------------------------------
    procedure Krn_Pending_Handle;
    pragma Interface (Ada, Krn_Pending_Handle);
    pragma Interface_Name (Krn_Pending_Handle, "__KRN_CALL_PENDING_HANDLE");

    -------------------------------------------------------------------------
    -- Name services
    -------------------------------------------------------------------------
    procedure Krn_Name_Services (Srv : K_Name_Srv_T; Arg : Address);
    pragma Interface (Ada, Krn_Name_Services);
    pragma Interface_Name (Krn_Name_Services, "__KRN_CALL_NAME_SERVICES");


end Krn_Call_I;

E3 Meta Data

    nblk1=d
    nid=0
    hdr6=1a
        [0x00] rec0=1e rec1=00 rec2=01 rec3=058
        [0x01] rec0=16 rec1=00 rec2=02 rec3=00a
        [0x02] rec0=10 rec1=00 rec2=03 rec3=04a
        [0x03] rec0=11 rec1=00 rec2=04 rec3=048
        [0x04] rec0=11 rec1=00 rec2=05 rec3=026
        [0x05] rec0=11 rec1=00 rec2=06 rec3=02e
        [0x06] rec0=13 rec1=00 rec2=07 rec3=04c
        [0x07] rec0=14 rec1=00 rec2=08 rec3=03e
        [0x08] rec0=12 rec1=00 rec2=09 rec3=040
        [0x09] rec0=12 rec1=00 rec2=0a rec3=042
        [0x0a] rec0=11 rec1=00 rec2=0b rec3=032
        [0x0b] rec0=15 rec1=00 rec2=0c rec3=00e
        [0x0c] rec0=01 rec1=00 rec2=0d rec3=000
    tail 0x217542062874f7bc92b7e 0x42a00088462060003