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