|
|
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: 2707 (0xa93)
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«
└─⟦4216c10a1⟧
└─⟦this⟧
-- Copyright 1991 Verdix Corporation
with system;
with krn_defs;
with ada_krn_defs;
with unchecked_conversion;
package usr_defs is
pragma suppress(ALL_CHECKS);
pragma suppress(EXCEPTION_TABLES);
pragma not_elaborated;
pragma local_access;
-------------------------------------------------------------------------
-- Type definitions for services resident in the user program
-------------------------------------------------------------------------
-- The following information is stored below the Ada tcb.
type Ada_tcb_hdr_t is record
krn_tsk : ada_krn_defs.krn_task_id;
mutex : ada_krn_defs.mutex_t;
-- stack_limit : system.address; -- handled by VADS micro kernel
end record;
type a_Ada_tcb_hdr_t is access Ada_tcb_hdr_t;
function to_a_Ada_tcb_hdr_t is
new unchecked_conversion(system.address, a_Ada_tcb_hdr_t);
-- KLUDGE, this should be a constant not needing elaboration code.
-- Ada_tcb_hdr_len: constant integer :=
-- Ada_tcb_hdr_t'size / system.STORAGE_UNIT;
function Ada_tcb_hdr_len return integer;
pragma inline_only(Ada_tcb_hdr_len);
function to_krn_task_id is
new unchecked_conversion(krn_defs.a_krn_tcb_t,
ada_krn_defs.krn_task_id);
function to_a_krn_tcb_t is
new unchecked_conversion(ada_krn_defs.krn_task_id,
krn_defs.a_krn_tcb_t);
-- The following information is stored below the Ada program control
-- block (pcb).
type Ada_pcb_hdr_t is record
krn_prg : ada_krn_defs.krn_program_id;
idle_callout : system.address;
end record;
type a_Ada_pcb_hdr_t is access Ada_pcb_hdr_t;
function to_a_Ada_pcb_hdr_t is
new unchecked_conversion(system.address, a_Ada_pcb_hdr_t);
-- KLUDGE, this should be a constant not needing elaboration code.
-- Ada_pcb_hdr_len: constant integer :=
-- Ada_pcb_hdr_t'size / system.STORAGE_UNIT;
function Ada_pcb_hdr_len return integer;
pragma inline_only(Ada_pcb_hdr_len);
function to_krn_program_id is
new unchecked_conversion(krn_defs.a_krn_pcb_t,
ada_krn_defs.krn_program_id);
function to_a_krn_pcb_t is
new unchecked_conversion(ada_krn_defs.krn_program_id,
krn_defs.a_krn_pcb_t);
type a_natural is access natural;
function to_a_natural is
new unchecked_conversion(system.address, a_natural);
type a_address is access system.address;
function to_a_address is
new unchecked_conversion(system.address, a_address);
end usr_defs;
with system;
package body usr_defs is
pragma suppress(ALL_CHECKS);
pragma suppress(EXCEPTION_TABLES);
function Ada_tcb_hdr_len return integer is
begin
return Ada_tcb_hdr_t'size / system.STORAGE_UNIT;
end;
function Ada_pcb_hdr_len return integer is
begin
return Ada_pcb_hdr_t'size / system.STORAGE_UNIT;
end;
end usr_defs