|
|
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: 6144 (0x1800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package V_I_Alloc, seg_0509b6
└─⟦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=000
tail 0x2175804f6878e79b511fe 0x42a00088462060003