This PR updates the ethernet driver HW rings to comply with sDDF queue conventions. Changes are:
Use overflowing unsigneds for head and tail indices (rather than keeping indices modulo ring capacity).
Use the entire capacity of the HW rings (rather than keeping 1-2 entries as guard entries which was previously required before changing 1).
Keep ring capacity as an element in the HW ring struct. Prior to this PR, it was used as a macro throughout the code, and required as a function parameter to queue functions which already took the queue data structure as a parameter.
Correct the memory barriers when reading from and writing to the ring DMA region. This involved the addition of two acquire fences to prevent re-orderings before reading, and the relaxing of a full memory barrier to a release barrier when adding an entry to the ring (writing).
This PR updates the ethernet driver HW rings to comply with sDDF queue conventions. Changes are:
Note that this PR is based off https://github.com/au-ts/sddf/pull/253, and should be merged secondary to that.