CLEANUP: Cleaned up testbench and removed testcases not required
This commit is contained in:
@ -24,7 +24,7 @@ library work;
|
||||
------------------------------------------------------------------------------
|
||||
-- Entity Declaration
|
||||
------------------------------------------------------------------------------
|
||||
-- $$ testcases=single_simple,priorities,single_window,multi_window,ringbuf,overwrite$$
|
||||
-- $$ testcases=single_simple,priorities,single_window,multi_window$$
|
||||
-- $$ processes=control,dma_cmd,dma_resp,ctx $$
|
||||
-- $$ tbpkg=work.psi_tb_txt_util,work.psi_tb_compare_pkg $$
|
||||
entity psi_ms_daq_daq_sm is
|
||||
|
@ -48,9 +48,7 @@ add_sources "../tb" {
|
||||
psi_ms_daq_daq_sm/psi_ms_daq_daq_sm_tb_pkg.vhd \
|
||||
psi_ms_daq_daq_sm/psi_ms_daq_daq_sm_tb_case_single_window.vhd \
|
||||
psi_ms_daq_daq_sm/psi_ms_daq_daq_sm_tb_case_single_simple.vhd \
|
||||
psi_ms_daq_daq_sm/psi_ms_daq_daq_sm_tb_case_ringbuf.vhd \
|
||||
psi_ms_daq_daq_sm/psi_ms_daq_daq_sm_tb_case_priorities.vhd \
|
||||
psi_ms_daq_daq_sm/psi_ms_daq_daq_sm_tb_case_overwrite.vhd \
|
||||
psi_ms_daq_daq_sm/psi_ms_daq_daq_sm_tb_case_multi_window.vhd \
|
||||
psi_ms_daq_daq_sm/psi_ms_daq_daq_sm_tb.vhd \
|
||||
} -tag tb
|
||||
|
@ -27,8 +27,6 @@ library work;
|
||||
use work.psi_ms_daq_daq_sm_tb_case_priorities.all;
|
||||
use work.psi_ms_daq_daq_sm_tb_case_single_window.all;
|
||||
use work.psi_ms_daq_daq_sm_tb_case_multi_window.all;
|
||||
use work.psi_ms_daq_daq_sm_tb_case_ringbuf.all;
|
||||
use work.psi_ms_daq_daq_sm_tb_case_overwrite.all;
|
||||
|
||||
------------------------------------------------------------
|
||||
-- Entity Declaration
|
||||
@ -132,12 +130,7 @@ begin
|
||||
-- multi_window
|
||||
NextCase <= 3;
|
||||
wait until ProcessDone = AllProcessesDone_c;
|
||||
-- ringbuf
|
||||
NextCase <= 4;
|
||||
wait until ProcessDone = AllProcessesDone_c;
|
||||
-- overwrite
|
||||
NextCase <= 5;
|
||||
wait until ProcessDone = AllProcessesDone_c;
|
||||
|
||||
TbRunning <= false;
|
||||
wait;
|
||||
end process;
|
||||
@ -190,18 +183,6 @@ begin
|
||||
work.psi_ms_daq_daq_sm_tb_case_multi_window.control(Clk, Rst, Inp_HasLast, Inp_Level, Ts_Vld, Ts_Rdy, Ts_Data, Dma_Cmd, Dma_Cmd_Vld, Generics_c);
|
||||
wait for 1 ps;
|
||||
ProcessDone(TbProcNr_control_c) <= '1';
|
||||
-- ringbuf
|
||||
wait until NextCase = 4;
|
||||
ProcessDone(TbProcNr_control_c) <= '0';
|
||||
work.psi_ms_daq_daq_sm_tb_case_ringbuf.control(Clk, Rst, Inp_HasLast, Inp_Level, Ts_Vld, Ts_Rdy, Ts_Data, Dma_Cmd, Dma_Cmd_Vld, Generics_c);
|
||||
wait for 1 ps;
|
||||
ProcessDone(TbProcNr_control_c) <= '1';
|
||||
-- overwrite
|
||||
wait until NextCase = 5;
|
||||
ProcessDone(TbProcNr_control_c) <= '0';
|
||||
work.psi_ms_daq_daq_sm_tb_case_overwrite.control(Clk, Rst, Inp_HasLast, Inp_Level, Ts_Vld, Ts_Rdy, Ts_Data, Dma_Cmd, Dma_Cmd_Vld, Generics_c);
|
||||
wait for 1 ps;
|
||||
ProcessDone(TbProcNr_control_c) <= '1';
|
||||
wait;
|
||||
end process;
|
||||
|
||||
@ -232,18 +213,6 @@ begin
|
||||
work.psi_ms_daq_daq_sm_tb_case_multi_window.dma_cmd(Clk, Dma_Cmd, Dma_Cmd_Vld, Generics_c);
|
||||
wait for 1 ps;
|
||||
ProcessDone(TbProcNr_dma_cmd_c) <= '1';
|
||||
-- ringbuf
|
||||
wait until NextCase = 4;
|
||||
ProcessDone(TbProcNr_dma_cmd_c) <= '0';
|
||||
work.psi_ms_daq_daq_sm_tb_case_ringbuf.dma_cmd(Clk, Dma_Cmd, Dma_Cmd_Vld, Generics_c);
|
||||
wait for 1 ps;
|
||||
ProcessDone(TbProcNr_dma_cmd_c) <= '1';
|
||||
-- overwrite
|
||||
wait until NextCase = 5;
|
||||
ProcessDone(TbProcNr_dma_cmd_c) <= '0';
|
||||
work.psi_ms_daq_daq_sm_tb_case_overwrite.dma_cmd(Clk, Dma_Cmd, Dma_Cmd_Vld, Generics_c);
|
||||
wait for 1 ps;
|
||||
ProcessDone(TbProcNr_dma_cmd_c) <= '1';
|
||||
wait;
|
||||
end process;
|
||||
|
||||
@ -274,18 +243,6 @@ begin
|
||||
work.psi_ms_daq_daq_sm_tb_case_multi_window.dma_resp(Clk, Dma_Resp, Dma_Resp_Vld, Dma_Resp_Rdy, Generics_c);
|
||||
wait for 1 ps;
|
||||
ProcessDone(TbProcNr_dma_resp_c) <= '1';
|
||||
-- ringbuf
|
||||
wait until NextCase = 4;
|
||||
ProcessDone(TbProcNr_dma_resp_c) <= '0';
|
||||
work.psi_ms_daq_daq_sm_tb_case_ringbuf.dma_resp(Clk, Dma_Resp, Dma_Resp_Vld, Dma_Resp_Rdy, Generics_c);
|
||||
wait for 1 ps;
|
||||
ProcessDone(TbProcNr_dma_resp_c) <= '1';
|
||||
-- overwrite
|
||||
wait until NextCase = 5;
|
||||
ProcessDone(TbProcNr_dma_resp_c) <= '0';
|
||||
work.psi_ms_daq_daq_sm_tb_case_overwrite.dma_resp(Clk, Dma_Resp, Dma_Resp_Vld, Dma_Resp_Rdy, Generics_c);
|
||||
wait for 1 ps;
|
||||
ProcessDone(TbProcNr_dma_resp_c) <= '1';
|
||||
wait;
|
||||
end process;
|
||||
|
||||
@ -316,18 +273,6 @@ begin
|
||||
work.psi_ms_daq_daq_sm_tb_case_multi_window.ctx(Clk, CtxStr_Cmd, CtxStr_Resp, CtxWin_Cmd, CtxWin_Resp, Generics_c);
|
||||
wait for 1 ps;
|
||||
ProcessDone(TbProcNr_ctx_c) <= '1';
|
||||
-- ringbuf
|
||||
wait until NextCase = 4;
|
||||
ProcessDone(TbProcNr_ctx_c) <= '0';
|
||||
work.psi_ms_daq_daq_sm_tb_case_ringbuf.ctx(Clk, CtxStr_Cmd, CtxStr_Resp, CtxWin_Cmd, CtxWin_Resp, Generics_c);
|
||||
wait for 1 ps;
|
||||
ProcessDone(TbProcNr_ctx_c) <= '1';
|
||||
-- overwrite
|
||||
wait until NextCase = 5;
|
||||
ProcessDone(TbProcNr_ctx_c) <= '0';
|
||||
work.psi_ms_daq_daq_sm_tb_case_overwrite.ctx(Clk, CtxStr_Cmd, CtxStr_Resp, CtxWin_Cmd, CtxWin_Resp, Generics_c);
|
||||
wait for 1 ps;
|
||||
ProcessDone(TbProcNr_ctx_c) <= '1';
|
||||
wait;
|
||||
end process;
|
||||
|
||||
|
@ -124,7 +124,6 @@ package body psi_ms_daq_daq_sm_tb_case_multi_window is
|
||||
ControlWaitCompl(Clk);
|
||||
|
||||
-- Ringbuf without overwrite
|
||||
wait for 10 us;
|
||||
print(">> Ringbuf without overwrite");
|
||||
InitTestCase(Clk, Rst);
|
||||
TestCase := 4;
|
||||
|
@ -1,109 +0,0 @@
|
||||
------------------------------------------------------------
|
||||
-- Libraries
|
||||
------------------------------------------------------------
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
|
||||
library work;
|
||||
use work.psi_common_math_pkg.all;
|
||||
use work.psi_common_array_pkg.all;
|
||||
use work.psi_ms_daq_pkg.all;
|
||||
|
||||
library work;
|
||||
use work.psi_ms_daq_daq_sm_tb_pkg.all;
|
||||
|
||||
library work;
|
||||
use work.psi_tb_txt_util.all;
|
||||
use work.psi_tb_compare_pkg.all;
|
||||
|
||||
------------------------------------------------------------
|
||||
-- Package Header
|
||||
------------------------------------------------------------
|
||||
package psi_ms_daq_daq_sm_tb_case_overwrite is
|
||||
|
||||
procedure control (
|
||||
signal Clk : in std_logic;
|
||||
signal Rst : inout std_logic;
|
||||
signal Inp_HasLast : inout std_logic_vector;
|
||||
signal Inp_Level : inout t_aslv16;
|
||||
signal Ts_Vld : inout std_logic_vector;
|
||||
signal Ts_Rdy : in std_logic_vector;
|
||||
signal Ts_Data : inout t_aslv64;
|
||||
signal Dma_Cmd : in DaqSm2DaqDma_Cmd_t;
|
||||
signal Dma_Cmd_Vld : in std_logic;
|
||||
constant Generics_c : Generics_t);
|
||||
|
||||
procedure dma_cmd (
|
||||
signal Clk : in std_logic;
|
||||
signal Dma_Cmd : in DaqSm2DaqDma_Cmd_t;
|
||||
signal Dma_Cmd_Vld : in std_logic;
|
||||
constant Generics_c : Generics_t);
|
||||
|
||||
procedure dma_resp (
|
||||
signal Clk : in std_logic;
|
||||
signal Dma_Resp : inout DaqDma2DaqSm_Resp_t;
|
||||
signal Dma_Resp_Vld : inout std_logic;
|
||||
signal Dma_Resp_Rdy : in std_logic;
|
||||
constant Generics_c : Generics_t);
|
||||
|
||||
procedure ctx (
|
||||
signal Clk : in std_logic;
|
||||
signal CtxStr_Cmd : in ToCtxStr_t;
|
||||
signal CtxStr_Resp : inout FromCtx_t;
|
||||
signal CtxWin_Cmd : in ToCtxWin_t;
|
||||
signal CtxWin_Resp : inout FromCtx_t;
|
||||
constant Generics_c : Generics_t);
|
||||
|
||||
end package;
|
||||
|
||||
------------------------------------------------------------
|
||||
-- Package Body
|
||||
------------------------------------------------------------
|
||||
package body psi_ms_daq_daq_sm_tb_case_overwrite is
|
||||
procedure control (
|
||||
signal Clk : in std_logic;
|
||||
signal Rst : inout std_logic;
|
||||
signal Inp_HasLast : inout std_logic_vector;
|
||||
signal Inp_Level : inout t_aslv16;
|
||||
signal Ts_Vld : inout std_logic_vector;
|
||||
signal Ts_Rdy : in std_logic_vector;
|
||||
signal Ts_Data : inout t_aslv64;
|
||||
signal Dma_Cmd : in DaqSm2DaqDma_Cmd_t;
|
||||
signal Dma_Cmd_Vld : in std_logic;
|
||||
constant Generics_c : Generics_t) is
|
||||
begin
|
||||
assert false report "Case OVERWRITE Procedure CONTROL: No Content added yet!" severity warning;
|
||||
end procedure;
|
||||
|
||||
procedure dma_cmd (
|
||||
signal Clk : in std_logic;
|
||||
signal Dma_Cmd : in DaqSm2DaqDma_Cmd_t;
|
||||
signal Dma_Cmd_Vld : in std_logic;
|
||||
constant Generics_c : Generics_t) is
|
||||
begin
|
||||
assert false report "Case OVERWRITE Procedure DMA_CMD: No Content added yet!" severity warning;
|
||||
end procedure;
|
||||
|
||||
procedure dma_resp (
|
||||
signal Clk : in std_logic;
|
||||
signal Dma_Resp : inout DaqDma2DaqSm_Resp_t;
|
||||
signal Dma_Resp_Vld : inout std_logic;
|
||||
signal Dma_Resp_Rdy : in std_logic;
|
||||
constant Generics_c : Generics_t) is
|
||||
begin
|
||||
assert false report "Case OVERWRITE Procedure DMA_RESP: No Content added yet!" severity warning;
|
||||
end procedure;
|
||||
|
||||
procedure ctx (
|
||||
signal Clk : in std_logic;
|
||||
signal CtxStr_Cmd : in ToCtxStr_t;
|
||||
signal CtxStr_Resp : inout FromCtx_t;
|
||||
signal CtxWin_Cmd : in ToCtxWin_t;
|
||||
signal CtxWin_Resp : inout FromCtx_t;
|
||||
constant Generics_c : Generics_t) is
|
||||
begin
|
||||
assert false report "Case OVERWRITE Procedure CTX: No Content added yet!" severity warning;
|
||||
end procedure;
|
||||
|
||||
end;
|
@ -1,109 +0,0 @@
|
||||
------------------------------------------------------------
|
||||
-- Libraries
|
||||
------------------------------------------------------------
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
|
||||
library work;
|
||||
use work.psi_common_math_pkg.all;
|
||||
use work.psi_common_array_pkg.all;
|
||||
use work.psi_ms_daq_pkg.all;
|
||||
|
||||
library work;
|
||||
use work.psi_ms_daq_daq_sm_tb_pkg.all;
|
||||
|
||||
library work;
|
||||
use work.psi_tb_txt_util.all;
|
||||
use work.psi_tb_compare_pkg.all;
|
||||
|
||||
------------------------------------------------------------
|
||||
-- Package Header
|
||||
------------------------------------------------------------
|
||||
package psi_ms_daq_daq_sm_tb_case_ringbuf is
|
||||
|
||||
procedure control (
|
||||
signal Clk : in std_logic;
|
||||
signal Rst : inout std_logic;
|
||||
signal Inp_HasLast : inout std_logic_vector;
|
||||
signal Inp_Level : inout t_aslv16;
|
||||
signal Ts_Vld : inout std_logic_vector;
|
||||
signal Ts_Rdy : in std_logic_vector;
|
||||
signal Ts_Data : inout t_aslv64;
|
||||
signal Dma_Cmd : in DaqSm2DaqDma_Cmd_t;
|
||||
signal Dma_Cmd_Vld : in std_logic;
|
||||
constant Generics_c : Generics_t);
|
||||
|
||||
procedure dma_cmd (
|
||||
signal Clk : in std_logic;
|
||||
signal Dma_Cmd : in DaqSm2DaqDma_Cmd_t;
|
||||
signal Dma_Cmd_Vld : in std_logic;
|
||||
constant Generics_c : Generics_t);
|
||||
|
||||
procedure dma_resp (
|
||||
signal Clk : in std_logic;
|
||||
signal Dma_Resp : inout DaqDma2DaqSm_Resp_t;
|
||||
signal Dma_Resp_Vld : inout std_logic;
|
||||
signal Dma_Resp_Rdy : in std_logic;
|
||||
constant Generics_c : Generics_t);
|
||||
|
||||
procedure ctx (
|
||||
signal Clk : in std_logic;
|
||||
signal CtxStr_Cmd : in ToCtxStr_t;
|
||||
signal CtxStr_Resp : inout FromCtx_t;
|
||||
signal CtxWin_Cmd : in ToCtxWin_t;
|
||||
signal CtxWin_Resp : inout FromCtx_t;
|
||||
constant Generics_c : Generics_t);
|
||||
|
||||
end package;
|
||||
|
||||
------------------------------------------------------------
|
||||
-- Package Body
|
||||
------------------------------------------------------------
|
||||
package body psi_ms_daq_daq_sm_tb_case_ringbuf is
|
||||
procedure control (
|
||||
signal Clk : in std_logic;
|
||||
signal Rst : inout std_logic;
|
||||
signal Inp_HasLast : inout std_logic_vector;
|
||||
signal Inp_Level : inout t_aslv16;
|
||||
signal Ts_Vld : inout std_logic_vector;
|
||||
signal Ts_Rdy : in std_logic_vector;
|
||||
signal Ts_Data : inout t_aslv64;
|
||||
signal Dma_Cmd : in DaqSm2DaqDma_Cmd_t;
|
||||
signal Dma_Cmd_Vld : in std_logic;
|
||||
constant Generics_c : Generics_t) is
|
||||
begin
|
||||
assert false report "Case RINGBUF Procedure CONTROL: No Content added yet!" severity warning;
|
||||
end procedure;
|
||||
|
||||
procedure dma_cmd (
|
||||
signal Clk : in std_logic;
|
||||
signal Dma_Cmd : in DaqSm2DaqDma_Cmd_t;
|
||||
signal Dma_Cmd_Vld : in std_logic;
|
||||
constant Generics_c : Generics_t) is
|
||||
begin
|
||||
assert false report "Case RINGBUF Procedure DMA_CMD: No Content added yet!" severity warning;
|
||||
end procedure;
|
||||
|
||||
procedure dma_resp (
|
||||
signal Clk : in std_logic;
|
||||
signal Dma_Resp : inout DaqDma2DaqSm_Resp_t;
|
||||
signal Dma_Resp_Vld : inout std_logic;
|
||||
signal Dma_Resp_Rdy : in std_logic;
|
||||
constant Generics_c : Generics_t) is
|
||||
begin
|
||||
assert false report "Case RINGBUF Procedure DMA_RESP: No Content added yet!" severity warning;
|
||||
end procedure;
|
||||
|
||||
procedure ctx (
|
||||
signal Clk : in std_logic;
|
||||
signal CtxStr_Cmd : in ToCtxStr_t;
|
||||
signal CtxStr_Resp : inout FromCtx_t;
|
||||
signal CtxWin_Cmd : in ToCtxWin_t;
|
||||
signal CtxWin_Resp : inout FromCtx_t;
|
||||
constant Generics_c : Generics_t) is
|
||||
begin
|
||||
assert false report "Case RINGBUF Procedure CTX: No Content added yet!" severity warning;
|
||||
end procedure;
|
||||
|
||||
end;
|
@ -34,7 +34,9 @@ package psi_ms_daq_daq_sm_tb_pkg is
|
||||
constant Windows_g : positive := 4;
|
||||
constant Streams_g : positive := 4;
|
||||
|
||||
-- Handwritten Stuff
|
||||
------------------------------------------------------------
|
||||
-- Handwritten constants and variables
|
||||
------------------------------------------------------------
|
||||
constant Size4k_c : positive := 4096;
|
||||
constant DataWidth_c : positive := 64;
|
||||
constant DataWidthBytes_c : positive := DataWidth_c/8;
|
||||
@ -44,6 +46,9 @@ package psi_ms_daq_daq_sm_tb_pkg is
|
||||
shared variable ProcDone : std_logic_vector(0 to 2) := "000";
|
||||
constant AllDone : std_logic_vector(ProcDone'range) := (others => '1');
|
||||
|
||||
------------------------------------------------------------
|
||||
-- Test Case Control
|
||||
------------------------------------------------------------
|
||||
procedure InitTestCase( signal Clk : in std_logic;
|
||||
signal Rst : out std_logic);
|
||||
|
||||
@ -54,6 +59,9 @@ package psi_ms_daq_daq_sm_tb_pkg is
|
||||
procedure WaitForCase( SubCase : in integer;
|
||||
signal Clk : in std_logic);
|
||||
|
||||
------------------------------------------------------------
|
||||
-- Low Level Test Functions
|
||||
------------------------------------------------------------
|
||||
shared variable DmaCmdOpen : integer := 0;
|
||||
|
||||
procedure ExpCtxRead( Stream : in integer;
|
||||
@ -151,7 +159,9 @@ package psi_ms_daq_daq_sm_tb_pkg is
|
||||
signal Dma_Resp_Rdy : in std_logic;
|
||||
Msg : in string := "");
|
||||
|
||||
-- higher level functions
|
||||
------------------------------------------------------------
|
||||
-- High Level (Auto) Functions
|
||||
------------------------------------------------------------
|
||||
type IntStrWin_t is array (0 to 3) of t_ainteger(0 to 31);
|
||||
shared variable PtrStr_v : t_ainteger(0 to 3);
|
||||
shared variable PtrDma_v : t_ainteger(0 to 3);
|
||||
@ -217,7 +227,15 @@ package psi_ms_daq_daq_sm_tb_pkg is
|
||||
signal Dma_Resp : out DaqDma2DaqSm_Resp_t;
|
||||
signal Dma_Resp_Vld : out std_logic;
|
||||
signal Dma_Resp_Rdy : in std_logic;
|
||||
Msg : in string := "");
|
||||
Msg : in string := "");
|
||||
|
||||
------------------------------------------------------------
|
||||
-- Helper Functions
|
||||
------------------------------------------------------------
|
||||
function GetWindowOffset( Stream : integer;
|
||||
Ptr : integer;
|
||||
AutoWincur_v : t_ainteger;
|
||||
AutoWinSize_v : integer) return integer;
|
||||
|
||||
|
||||
end package;
|
||||
@ -643,9 +661,9 @@ package body psi_ms_daq_daq_sm_tb_pkg is
|
||||
end if;
|
||||
else
|
||||
-- wraparound for ringbuffer case
|
||||
if (PtrStr_v(Stream) - BufStart_c(Stream) - AutoWincur_v(Stream)*AutoWinSize_v > AutoWinSize_v) then
|
||||
if GetWindowOffset(Stream, PtrStr_v(Stream), AutoWincur_v, AutoWinSize_v) > AutoWinSize_v then
|
||||
report "###ERROR### TB assertion, unhandled window crossing" severity error;
|
||||
elsif (PtrStr_v(Stream) - BufStart_c(Stream) - AutoWincur_v(Stream)*AutoWinSize_v = AutoWinSize_v) then
|
||||
elsif GetWindowOffset(Stream, PtrStr_v(Stream), AutoWincur_v, AutoWinSize_v) = AutoWinSize_v then
|
||||
if AutoRingbuf_v = '1' then
|
||||
PtrStr_v(Stream) := BufStart_c(Stream);
|
||||
end if;
|
||||
@ -730,9 +748,9 @@ package body psi_ms_daq_daq_sm_tb_pkg is
|
||||
else
|
||||
PtrDma_v(Stream) := PtrDma_v(Stream) + ExeSize_v;
|
||||
-- wraparound for ringbuffer case
|
||||
if (PtrDma_v(Stream) - BufStart_c(Stream) - AutoWincur_v(Stream)*AutoWinSize_v > AutoWinSize_v) then
|
||||
if GetWindowOffset(Stream, PtrDma_v(Stream), AutoWincur_v, AutoWinSize_v) > AutoWinSize_v then
|
||||
report "###ERROR### TB assertion, unhandled window crossing" severity error;
|
||||
elsif (PtrDma_v(Stream) - BufStart_c(Stream) - AutoWincur_v(Stream)*AutoWinSize_v = AutoWinSize_v) then
|
||||
elsif GetWindowOffset(Stream, PtrDma_v(Stream), AutoWincur_v, AutoWinSize_v) = AutoWinSize_v then
|
||||
if AutoRingbuf_v = '1' then
|
||||
PtrDma_v(Stream) := BufStart_c(Stream) + AutoWincur_v(Stream)*AutoWinSize_v;
|
||||
end if;
|
||||
@ -764,5 +782,13 @@ package body psi_ms_daq_daq_sm_tb_pkg is
|
||||
Dma_Resp_Rdy => Dma_Resp_Rdy,
|
||||
Msg => Msg);
|
||||
end procedure;
|
||||
|
||||
function GetWindowOffset( Stream : integer;
|
||||
Ptr : integer;
|
||||
AutoWincur_v : t_ainteger;
|
||||
AutoWinSize_v : integer) return integer is
|
||||
begin
|
||||
return Ptr - BufStart_c(Stream) - AutoWincur_v(Stream)*AutoWinSize_v;
|
||||
end function;
|
||||
|
||||
end;
|
||||
|
Reference in New Issue
Block a user