1with System; 2 3package Unc_Memops is 4 pragma Elaborate_Body; 5 6 type size_t is mod 2 ** Standard'Address_Size; 7 subtype addr_t is System.Address; 8 9 function Alloc (Size : size_t) return addr_t; 10 procedure Free (Ptr : addr_t); 11 function Realloc (Ptr : addr_t; Size : size_t) return addr_t; 12 13 procedure Expect_Symetry (Status : Boolean); 14 -- Whether we expect "free"s to match "alloc" return values in 15 -- reverse order, like alloc->X, alloc->Y should be followed by 16 -- free Y, free X. 17 18private 19 20 -- Uncomment the exports below to really exercise the alternate versions. 21 22 -- This only works when using an installed version of the tools which 23 -- grabs the runtime library objects from an archive, hence doesn't force 24 -- the inclusion of s-memory.o. 25 26 -- pragma Export (C, Alloc, "__gnat_malloc"); 27 -- pragma Export (C, Free, "__gnat_free"); 28 -- pragma Export (C, Realloc, "__gnat_realloc"); 29 30end; 31