aboutsummaryrefslogtreecommitdiffstats
path: root/src/grt/grt-vhpi.ads
diff options
context:
space:
mode:
authorMarlon James <marlon.james@gmail.com>2021-04-17 12:08:22 -0700
committertgingold <tgingold@users.noreply.github.com>2021-04-18 17:34:57 +0200
commite9de3601fcd8e164ffcbf8243b45619d72a4ef3a (patch)
treea483c8274007b113f0b34aa605bf1efc256b1d6e /src/grt/grt-vhpi.ads
parentc9bc646a01a8ebdc9e7251c7033ff65706350927 (diff)
downloadghdl-e9de3601fcd8e164ffcbf8243b45619d72a4ef3a.tar.gz
ghdl-e9de3601fcd8e164ffcbf8243b45619d72a4ef3a.tar.bz2
ghdl-e9de3601fcd8e164ffcbf8243b45619d72a4ef3a.zip
VHPI: add tracing
Diffstat (limited to 'src/grt/grt-vhpi.ads')
-rw-r--r--src/grt/grt-vhpi.ads13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/grt/grt-vhpi.ads b/src/grt/grt-vhpi.ads
index 372e4e433..558ed69be 100644
--- a/src/grt/grt-vhpi.ads
+++ b/src/grt/grt-vhpi.ads
@@ -43,6 +43,9 @@ package Grt.Vhpi is
type Vhpi_External_Handle is access Vhpi_Internal_Handle;
pragma No_Strict_Aliasing (Vhpi_External_Handle);
+ -- A null handle.
+ Null_External_Handle : constant Vhpi_External_Handle;
+
type VhpiFormatT is
(
VhpiBinStrVal,
@@ -383,6 +386,7 @@ package Grt.Vhpi is
VhpiSizeConstraint
);
pragma Convention (C, VhpiPutValueModeT);
+ for VhpiPutValueModeT'Size use Integer'Size;
type VhpiDelayModeT is
(
@@ -390,6 +394,7 @@ package Grt.Vhpi is
VhpiTransport
);
pragma Convention (C, VhpiDelayModeT);
+ for VhpiDelayModeT'Size use Integer'Size;
-- int vhpi_get_value (vhpiHandleT expr, vhpiValueT *value_p)
function vhpi_get_value
@@ -428,8 +433,11 @@ package Grt.Vhpi is
-- For time processing
+ type Long_Access is access Long_Integer;
+ pragma Convention (C, Long_Access);
+
-- void vhpi_get_time (vhpiTimeT *time_p, long *cycles)
- procedure vhpi_get_time (Time : VhpiTime_Access; Cycles : access Integer);
+ procedure vhpi_get_time (Time : VhpiTime_Access; Cycles : Long_Access);
pragma Export (C, vhpi_get_time, "vhpi_get_time");
vhpiNoActivity : constant Integer := -1;
@@ -551,6 +559,7 @@ package Grt.Vhpi is
);
pragma Convention (C, VhpiSimControlT);
for VhpiSimControlT use (VhpiStop => 0, VhpiFinish => 1, VhpiReset => 2);
+ for VhpiSimControlT'Size use Integer'Size;
-- int vhpi_control (vhpiSimControlT command, ...)
-- See grt-cvhpi.c
@@ -571,6 +580,8 @@ private
VhpiReturnCb : constant Callback_Flags := 2#0000_0001#;
VhpiDisableCb : constant Callback_Flags := 2#0000_0010#;
+ Null_External_Handle : constant Vhpi_External_Handle := null;
+
-- Wrap VhpiHandleT
-- Keep Callback objects out of Avhpi, they are allocated when registered
type Vhpi_Internal_Handle (Kind : VhpiClassKindT) is record