Initial import of libxhcidbg library
[libxhcidbg.git] / src / hw-dbc-transfer_info.ads
1 --
2 -- Copyright (C) 2016-2017 secunet Security Networks AG
3 --
4 -- This program is free software; you can redistribute it and/or modify
5 -- it under the terms of the GNU General Public License as published by
6 -- the Free Software Foundation; either version 2 of the License, or
7 -- (at your option) any later version.
8 --
9 -- This program is distributed in the hope that it will be useful,
10 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
11 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 -- GNU General Public License for more details.
13 --
14
15 private package HW.DbC.Transfer_Info
16 with
17    Abstract_State => (State with Part_Of  => HW.DbC.State)
18 is
19
20    procedure Start
21      (Endpoint : in     Endpoint_Range;
22       Length   : in     Natural;
23       Id       :    out Transfer_Id;
24       Success  :    out Boolean);
25
26    procedure Restart
27      (Id       : Transfer_Id;
28       Length   : Natural);
29
30    procedure Append
31      (Endpoint : in     Endpoint_Range;
32       Length   : in out Natural;
33       Offset   :    out Natural;
34       Id       :    out Transfer_Id);
35
36    procedure Finish
37      (DMA_Physical      : Word64;
38       Remaining_Length  : Natural;
39       Status            : Error);
40
41    procedure Reset (Id : Transfer_Id);
42
43    ----------------------------------------------------------------------------
44
45    procedure Walk_Started
46      (Minimum_Ctr : in out Word64;
47       Id          :    out Transfer_Id;
48       Success     :    out Boolean);
49
50    procedure Walk_Finished
51      (Endpoint    : in     Endpoint_Range;
52       Minimum_Ctr : in out Word64;
53       Id          :    out Transfer_Id;
54       Success     :    out Boolean);
55
56    ----------------------------------------------------------------------------
57
58    function Get_Endpoint (Id : Transfer_Id) return Endpoint_Range;
59
60    function Get_Offset (Id : Transfer_Id) return Natural;
61
62    procedure Set_Offset (Id : Transfer_Id; Offset : Natural);
63
64    function Get_Length (Id : Transfer_Id) return Natural;
65
66    function Get_Status (Id : Transfer_Id) return Error;
67
68    function Physical (Id : Transfer_Id) return Word64;
69
70    ----------------------------------------------------------------------------
71
72    procedure Dump_Stats;
73
74 end HW.DbC.Transfer_Info;
75
76 --  vim: set ts=8 sts=3 sw=3 et: