|
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: 6144 (0x1800) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package V_I_Alloc, seg_04b9a4
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
-- Copyright 1986, 1987, 1988, 1989, 1992 Verdix Corporation -- Interface to library and kernel memory support with System; with V_I_Types; package V_I_Alloc is pragma Suppress (All_Checks); pragma Suppress (Exception_Tables); pragma Not_Elaborated; pragma Local_Access; ------------------------------------------------------------------------------ -- The following routines are called directly by code generated by the VADS -- compiler. The aa_global_new routine is called to allocate for the NEW -- allocator of Ada. Likewise the aa_aligned new is called when a NEW -- is done on a record with an alignment clause. The aa_global_free -- routine is called from unchecked_deallocation. The aa_local_new routine -- is called for the NEW allocators for any access type that is declared local -- to a subprogram and is given a collection size; aa_local_free is called for -- unchecked_deallocation of entities declared local to a subprogram. See -- VADS User manual for lheap meaning and exact usage. extend_intr_heap -- is called when a program needs to allocate more fixed size blocks for the -- interrupt heap (not available in SLIM_MALLOC). get_intr_heap_size is -- called when a program wants to find out how many of the fixed sized blocks -- remain. ------------------------------------------------------------------------------ function Aa_Global_New (Size : in V_I_Types.Alloc_T) return System.Address; function Aa_Aligned_New (Size, Dope_Size : in V_I_Types.Alloc_T; Alignment : in Integer) return System.Address; procedure Aa_Global_Free (A : in System.Address); function Aa_Local_New (Size : in V_I_Types.Alloc_T; Lheap : System.Address) return System.Address; procedure Aa_Local_Free (A : in System.Address; Lheap : System.Address); procedure Extend_Intr_Heap (Extension : in Integer); function Get_Intr_Heap_Size return Integer; ------------------------------------------------------------------------------ -- User interface to the kernel's memory allocation services. -- -- Note: the compiler does NOT generate calls to these routines, -- but instead calls AA_GLOBAL_NEW and AA_GLOBAL_FREE. These calls -- reach the kernel's user-accessible memory allocators, and are typically -- used as a backstop to get more memory in large chunks. -- -- Note: krn_aa_global_new returns system.no_addr if allocation -- wasn't possible. It doesn't raise a STORAGE_ERROR exception. -- -- Provides backward compatibility with earlier releases of VADS. -- -- The interface to ALL the low kernel services is now provided in -- ada_krn_i.a. ------------------------------------------------------------------------------ function Krn_Aa_Global_New (Size : V_I_Types.Alloc_T) return System.Address; pragma Inline_Only (Krn_Aa_Global_New); procedure Krn_Aa_Global_Free (A : System.Address); pragma Inline_Only (Krn_Aa_Global_Free); -- Extend the size of the current task's stack. Note, this may only -- be applicable to the main program's stack. If unable to extend stack, -- STORAGE_ERROR exception is raised. -- -- Not supported. Always raises STORAGE_ERROR exception. procedure Extend_Stack; pragma Inline_Only (Extend_Stack); private pragma Interface (Ada, Aa_Global_New); pragma Interface_Name (Aa_Global_New, "AA_GLOBAL_NEW"); pragma Interface (Ada, Aa_Aligned_New); pragma Interface_Name (Aa_Aligned_New, "AA_ALIGNED_NEW"); pragma Interface (Ada, Aa_Global_Free); pragma Interface_Name (Aa_Global_Free, "AA_GLOBAL_FREE"); pragma Interface (Ada, Aa_Local_New); pragma Interface_Name (Aa_Local_New, "AA_LOCAL_NEW"); pragma Interface (Ada, Aa_Local_Free); pragma Interface_Name (Aa_Local_Free, "AA_LOCAL_FREE"); pragma Interface (Ada, Extend_Intr_Heap); pragma Interface_Name (Extend_Intr_Heap, "__EXTEND_INTR_HEAP"); pragma Interface (Ada, Get_Intr_Heap_Size); pragma Interface_Name (Get_Intr_Heap_Size, "__GET_INTR_HEAP_SIZE"); end V_I_Alloc;
nblk1=5 nid=0 hdr6=a [0x00] rec0=18 rec1=00 rec2=01 rec3=094 [0x01] rec0=11 rec1=00 rec2=02 rec3=000 [0x02] rec0=15 rec1=00 rec2=03 rec3=028 [0x03] rec0=16 rec1=00 rec2=04 rec3=060 [0x04] rec0=05 rec1=00 rec2=05 rec3=001 tail 0x21750bd1a868437fe7d75 0x42a00088462060003