6 Document the build process for a stand-alone library (utilizing
7 *libhwbase*'s build system).
12 * Rework the code to be valid SPARK (no errors from `gnatprove
15 * Prove absence of runtime errors
18 ## Configuration options
20 There are various configuration options throughout the code that
21 should be moved into `HW.DbC_Config`.
29 * Do not unconditionally poll in Receive and respect poll
35 * On `Start_Now`, make sure we start transferring even if we
36 only appended to an already queued transfer. Or make it part
37 of the contract that we are never called with `Start_Now =>
38 True` when an already queued but not started transfer exists
39 (which is currently true).
41 * Don't acquire a `Transfer_Id` (or release it on failure) if
42 we can't enqueue it. Or make it part of the contract, that
43 the `Transfer_Rings` are always big enough to hold all
44 `Transfer_Id`s (which is currently true).
49 * Use better strings in receive statistics
51 * Use wider numeric types for statistics
56 Currently, DMA addresses are precalculated which results in
57 redundancies with constants used throughout the code. We could
58 calculate DMA addresses based on compile time constants instead.