|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 13312 (0x3400)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package Krn_Entries, seg_05097e
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
-- Copyright 1991, 1993 Verdix Corporation
with System;
use System;
with Krn_Defs;
use Krn_Defs;
with Link_Block;
with Unchecked_Conversion;
package Krn_Entries is
pragma Suppress (All_Checks);
pragma Suppress (Exception_Tables);
pragma Not_Elaborated;
pragma Local_Access;
-- Kernel service entry IDs and arguments
K_Invalid : constant := 0;
-------------------------------------------------------------------------
-- Program services
-------------------------------------------------------------------------
K_Program_Init : constant := 1;
-- arg_1 =>\x09arg: a_program_init_arg_t
type Program_Init_Arg_T is
record
Usr_Link_Block : Link_Block.A_Link_Block_T;
-- link_block has pointers to stack_limit,
-- raise_interrupt_exception, predefined Ada exceptions,
-- main_task_priority.
-- Values for the following parameters were extracted from the
-- user's configuration table or were set via pragmas in the
-- main procedure
Main_Stack_Size : Natural;
Main_Prio : Priority;
Exception_Stack_Size : Natural;
Idle_Stack_Size : Natural;
Main_Stack_Area : Address;
end record;
type A_Program_Init_Arg_T is access Program_Init_Arg_T;
function To_A_Program_Init_Arg_T is
new Unchecked_Conversion (Address, A_Program_Init_Arg_T);
K_Program_Exit : constant := 2;
-- arg_1 => status: integer
K_Program_Diagnostic : constant := 3;
-- arg_1 => s_a: address, arg_2 => s_len: natural
K_Program_Start : constant := 4;
-- arg_1 =>\x09arg: a_program_start_arg_t, returns a_krn_pcb_t
type Program_Start_Arg_T is
record
Usr_Link_Block : Link_Block.A_Link_Block_T;
Key : Address;
Terminate_Callout : Address;
Ada_Program_Id : Program_Id;
end record;
type A_Program_Start_Arg_T is access Program_Start_Arg_T;
function To_A_Program_Start_Arg_T is
new Unchecked_Conversion (Address, A_Program_Start_Arg_T);
K_Program_Terminate : constant := 5;
-- arg_1 => prg: a_krn_pcb_t, arg_2 => status: integer
K_Program_Set_Is_Server : constant := 6;
-- no arg
-------------------------------------------------------------------------
-- Task services
-------------------------------------------------------------------------
K_Task_Set_Priority : constant := 7;
-- arg_1 => t: a_krn_tcb_t, arg_2 => prio: priority
K_Task_Create : constant := 8;
-- arg_1 => arg: a_task_create_arg_t, returns a_krn_tcb_t
-- SPORADIC_TASK
type Sporadic_Create_Arg_T is
record
Low_Prio : Priority;
Replenish_Period : Duration;
Initial_Budget : Duration;
Min_Replenishment : Duration;
Replenishment_Count : Natural;
end record;
type A_Sporadic_Create_Arg_T is access Sporadic_Create_Arg_T;
function To_A_Sporadic_Create_Arg_T is
new Unchecked_Conversion (Address, A_Sporadic_Create_Arg_T);
-- SPORADIC_TASK
type Task_Create_Arg_T is
record
Prio : Priority;
Stack_Size : Natural;
Start : Address;
Ada_Task_Id : Task_Id;
-- SPORADIC_TASK
Sporadic_Arg : A_Sporadic_Create_Arg_T;
-- null indicates a normal, non-sporadic task
-- SPORADIC_TASK
end record;
type A_Task_Create_Arg_T is access Task_Create_Arg_T;
function To_A_Task_Create_Arg_T is
new Unchecked_Conversion (Address, A_Task_Create_Arg_T);
K_Task_Activate : constant := 9;
-- arg_1 => t: a_krn_tcb_t
K_Task_Terminate : constant := 10;
-- arg_1 => t: a_krn_tcb_t
K_Task_Suspend : constant := 11;
-- arg_1 => t: a_krn_tcb_t
K_Task_Resume : constant := 12;
-- arg_1 => t: a_krn_tcb_t
K_Task_Get_Supervisor_State : constant := 13;
-- returns boolean (TRUE if current task is in supervisor state)
K_Task_Enter_Supervisor_State : constant := 14;
-- no args
K_Task_Leave_Supervisor_State : constant := 15;
-- no args
K_Task_Wait : constant := 16;
-- no args
K_Task_Timed_Wait : constant := 17;
-- arg_1 => sec: duration, returns boolean
K_Task_Signal : constant := 18;
-- arg_1 => t: a_krn_tcb_t
K_Task_Signal_Unlock : constant := 19;
-- arg_1 => t: a_krn_tcb_t, arg_2 => mutex: a_mutex_t
K_Task_Signal_Wait_Unlock : constant := 20;
-- arg_1 => t: a_krn_tcb_t, arg_2 => mutex: a_mutex_t
-------------------------------------------------------------------------
-- Kernel scheduling services
-------------------------------------------------------------------------
K_Kernel_Set_Time_Slicing_Enabled : constant := 21;
-- arg_1 => new_value: boolean
K_Kernel_Get_Time_Slicing_Enabled : constant := 22;
-- returns boolean
-------------------------------------------------------------------------
-- Time services
-------------------------------------------------------------------------
K_Time_Set : constant := 23;
-- arg_1 => arg: a_time_set_arg_t
type Time_Set_Arg_T is
record
Day : Day_T;
Sec : Duration;
Timer_Support_Arg : Address;
end record;
type A_Time_Set_Arg_T is access Time_Set_Arg_T;
function To_A_Time_Set_Arg_T is
new Unchecked_Conversion (Address, A_Time_Set_Arg_T);
K_Time_Get : constant := 24;
-- arg_1 => arg: a_time_get_arg_t
type Time_Get_Arg_T is
record
Day : Day_T;
Sec : Duration;
end record;
type A_Time_Get_Arg_T is access Time_Get_Arg_T;
function To_A_Time_Get_Arg_T is
new Unchecked_Conversion (Address, A_Time_Get_Arg_T);
K_Time_Delay : constant := 25;
-- arg_1 => day: day_t, arg_2 => sec: duration
Delta_Delay : constant Day_T := -1;
-------------------------------------------------------------------------
-- Mutex services
-------------------------------------------------------------------------
K_Mutex_Lock : constant := 26;
-- arg_1 => mutex: a_mutex_t
K_Mutex_Unlock : constant := 27;
-- arg_1 => mutex: a_mutex_t
K_Cond_Wait : constant := 28;
-- arg_1 => cond: a_cond_t, arg_2 => mutex: a_mutex_t
K_Cond_Timed_Wait : constant := 29;
-- arg_1 => arg: a_cond_timed_wait_arg_t, returns boolean
type Cond_Timed_Wait_Arg_T is
record
Cond : A_Cond_T;
Mutex : A_Mutex_T;
Sec : Duration;
end record;
type A_Cond_Timed_Wait_Arg_T is access Cond_Timed_Wait_Arg_T;
function To_A_Cond_Timed_Wait_Arg_T is
new Unchecked_Conversion (Address, A_Cond_Timed_Wait_Arg_T);
K_Cond_Signal : constant := 30;
-- arg_1 => cond: a_cond_t
K_Cond_Broadcast : constant := 31;
-- arg_1 => cond: a_cond_t
-------------------------------------------------------------------------
-- Mutex service combinations
-------------------------------------------------------------------------
K_Cond_Signal_Unlock : constant := 32;
-- arg_1 => cond: a_cond_t, arg_2 => mutex: a_mutex_t
-------------------------------------------------------------------------
-- Semaphore services
-------------------------------------------------------------------------
K_Semaphore_Wait : constant := 33;
-- arg_1 => s: a_semaphore_t
K_Semaphore_Timed_Wait : constant := 34;
-- arg_1 => s: a_semaphore_t, arg_2 => sec: duration, returns boolean
K_Semaphore_Signal : constant := 35;
-- arg_1 => s: a_semaphore_t
-------------------------------------------------------------------------
-- Allocation services
-------------------------------------------------------------------------
K_Alloc : constant := 36;
-- arg_1 => size: natural, returns address
K_Free : constant := 37;
-- arg_1 => a: address
-------------------------------------------------------------------------
-- Interrupt services
-------------------------------------------------------------------------
K_Isr_Attach : constant := 38;
-- arg_1 => iv: intr_vector_id_t, arg_2 => isr: address, returns address
K_Isr_Detach : constant := 39;
-- arg_1 => iv: intr_vector_id_t, returns address
-------------------------------------------------------------------------
-- Pending interrupt services
-------------------------------------------------------------------------
K_Pending_Handle : constant := 40;
-- no arg
-------------------------------------------------------------------------
-- Callout and task storage services
-------------------------------------------------------------------------
K_Callout_Install : constant := 41;
-- arg_1 => event: callout_event_t, arg_2 => proc: address,
-- returns integer
K_Task_Storage_Alloc : constant := 42;
-- arg_1 => natural, returns task_storage_id
-------------------------------------------------------------------------
-- Name services
-------------------------------------------------------------------------
K_Name_Services : constant := 43;
-- arg_1 => srv: k_name_srv_t,
-- arg_2 => arg: a_k_name_bind_arg_t | a_k_name_resolve_arg_t
type K_Name_Srv_T is (K_Name_Bind, K_Name_Resolve);
for K_Name_Srv_T'Size use Integer'Size;
type K_Name_Bind_Status_T is
(K_Name_Bind_Ok, K_Name_Bind_Out_Of_Memory, K_Name_Bind_Already_Bound);
type K_Name_Resolve_Status_T is
(K_Name_Resolve_Ok, K_Name_Resolve_Timed_Out, K_Name_Resolve_Failed);
type K_Name_Bind_Arg_T is
record
Name_Len : Natural;
Name_Addr : Address;
Prg : A_Krn_Pcb_T;
Addr : Address;
Status : K_Name_Bind_Status_T; -- out
end record;
type A_K_Name_Bind_Arg_T is access K_Name_Bind_Arg_T;
function To_A_K_Name_Bind_Arg_T is
new Unchecked_Conversion (Address, A_K_Name_Bind_Arg_T);
function To_Address is new Unchecked_Conversion
(A_K_Name_Bind_Arg_T, Address);
type K_Name_Resolve_Arg_T is
record
Name_Len : Natural;
Name_Addr : Address;
Wait_Time : Duration;
Prg : A_Krn_Pcb_T; -- out
Addr : Address; -- out
Status : K_Name_Resolve_Status_T; -- out
end record;
type A_K_Name_Resolve_Arg_T is access K_Name_Resolve_Arg_T;
function To_A_K_Name_Resolve_Arg_T is
new Unchecked_Conversion (Address, A_K_Name_Resolve_Arg_T);
function To_Address is new Unchecked_Conversion
(A_K_Name_Resolve_Arg_T, Address);
K_Last : constant := 43;
K_User_Services : constant := 44;
end Krn_Entries;
nblk1=c
nid=0
hdr6=18
[0x00] rec0=21 rec1=00 rec2=01 rec3=078
[0x01] rec0=18 rec1=00 rec2=02 rec3=044
[0x02] rec0=18 rec1=00 rec2=03 rec3=02a
[0x03] rec0=1a rec1=00 rec2=04 rec3=034
[0x04] rec0=17 rec1=00 rec2=05 rec3=028
[0x05] rec0=1b rec1=00 rec2=06 rec3=052
[0x06] rec0=18 rec1=00 rec2=07 rec3=05c
[0x07] rec0=16 rec1=00 rec2=08 rec3=092
[0x08] rec0=17 rec1=00 rec2=09 rec3=02a
[0x09] rec0=18 rec1=00 rec2=0a rec3=00c
[0x0a] rec0=19 rec1=00 rec2=0b rec3=05e
[0x0b] rec0=09 rec1=00 rec2=0c rec3=000
tail 0x217580022878e79075516 0x42a00088462060003