|
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 - download
Length: 10209 (0x27e1) Types: TextFile Notes: R1k Text-file segment
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦9284b1ca0⟧ └─⟦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 => arg: 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 => arg: 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 K_ISR_GET : constant := 40; -- arg_1 => iv: intr_vector_id_t, returns address K_ISR_GET_IVT : constant := 41; -- no arg, returns address ------------------------------------------------------------------------- -- Pending interrupt services ------------------------------------------------------------------------- K_PENDING_HANDLE : constant := 42; -- no arg ------------------------------------------------------------------------- -- Callout and task storage services ------------------------------------------------------------------------- K_CALLOUT_INSTALL : constant := 43; -- arg_1 => event: callout_event_t, arg_2 => proc: address, -- returns integer K_TASK_STORAGE_ALLOC : constant := 44; -- arg_1 => natural, returns task_storage_id ------------------------------------------------------------------------- -- Name services ------------------------------------------------------------------------- K_NAME_SERVICES : constant := 45; -- 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 := 45; K_USER_SERVICES : constant := 46; end krn_entries; package body krn_entries is end krn_entries