Adjust to cspecs changes
[libxhcidbg.git] / TODO.md
1 # General
2
3
4 ## Documentation
5
6 Document the build process for a stand-alone library (utilizing
7 *libhwbase*'s build system).
8
9
10 ## SPARK
11
12 * Prove absence of runtime errors
13
14
15 ## Configuration options
16
17 There are various configuration options throughout the code that
18 should be moved into `HW.DbC_Config`.
19
20
21 # Current Code
22
23
24 ## `Receive`
25
26  * Do not unconditionally poll in Receive and respect poll
27    deadline.
28
29
30 ## `Transfers.Send`
31
32 * On `Start_Now`, make sure we start transferring even if we
33   only appended to an already queued transfer. Or make it part
34   of the contract that we are never called with `Start_Now =>
35   True` when an already queued but not started transfer exists
36   (which is currently true).
37
38 * Don't acquire a `Transfer_Id` (or release it on failure) if
39   we can't enqueue it. Or make it part of the contract, that
40   the `Transfer_Rings` are always big enough to hold all
41   `Transfer_Id`s (which is currently true).
42
43
44 ## `Transfer_Info`
45
46 * Use better strings in receive statistics
47
48 * Use wider numeric types for statistics
49
50
51 ## `DMA_Buffers`
52
53 Currently, DMA addresses are precalculated which results in
54 redundancies with constants used throughout the code. We could
55 calculate DMA addresses based on compile time constants instead.