diff options
Diffstat (limited to 'src/synth/elab-vhdl_heap.ads')
-rw-r--r-- | src/synth/elab-vhdl_heap.ads | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/synth/elab-vhdl_heap.ads b/src/synth/elab-vhdl_heap.ads index 7c2846a31..668ec0df8 100644 --- a/src/synth/elab-vhdl_heap.ads +++ b/src/synth/elab-vhdl_heap.ads @@ -16,6 +16,8 @@ -- You should have received a copy of the GNU General Public License -- along with this program. If not, see <gnu.org/licenses>. +with Types; use Types; + with Elab.Vhdl_Objtypes; use Elab.Vhdl_Objtypes; with Elab.Vhdl_Values; use Elab.Vhdl_Values; @@ -23,11 +25,16 @@ package Elab.Vhdl_Heap is -- Allocate a value. function Allocate_By_Type (Acc_Typ : Type_Acc; T : Type_Acc) - return Heap_Index; + return Heap_Ptr; function Allocate_By_Value (Acc_Typ : Type_Acc; V : Valtyp) - return Heap_Index; + return Heap_Ptr; + + function Synth_Dereference (Ptr : Heap_Ptr) return Memtyp; + + procedure Synth_Deallocate (Ptr : Heap_Ptr); - function Synth_Dereference (Idx : Heap_Index) return Memtyp; + type Heap_Slot is new Uns32; - procedure Synth_Deallocate (Idx : Heap_Index); + function Get_Index (Ptr : Heap_Ptr) return Heap_Slot; + function Get_Pointer (Idx : Heap_Slot) return Heap_Ptr; end Elab.Vhdl_Heap; |