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

⟦401c6b903⟧ TextFile

    Length: 2707 (0xa93)
    Types: TextFile
    Notes: R1k Text-file segment

Derivation

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

TextFile

-- 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