DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ T V ┃
Length: 3973 (0xf85) Types: TextFile Names: »V«
└─⟦516dceb10⟧ Bits:30000751 8mm tape, Rational 1000, RCI_VADS └─ ⟦9a14c9417⟧ »DATA« └─⟦this⟧
-- Copyright 1986, 1987, 1988, 1989 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; ------------------------------------------------------------------------------ -- 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. ------------------------------------------------------------------------------ FUNCTION Krn_Aa_Global_New (Size : V_I_Types.Alloc_T) RETURN System.Address; PROCEDURE Krn_Aa_Global_Free (A : System.Address); -- 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. PROCEDURE 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"); PRAGMA Interface (Ada, Krn_Aa_Global_New); PRAGMA Interface_Name (Krn_Aa_Global_New, "__AA_GLOBAL_NEW"); PRAGMA Interface (Ada, Krn_Aa_Global_Free); PRAGMA Interface_Name (Krn_Aa_Global_Free, "__AA_GLOBAL_FREE"); PRAGMA Interface (Ada, Extend_Stack); PRAGMA Interface_Name (Extend_Stack, "__EXTEND_STACK"); END V_I_Alloc;