24.05.2014 10:38, Michael Tokarev wrote:
> [...]
> if (tx_desc_get_last(desc)) {
> + unsigned desc_first[2];
> +
> /* Modify the 1st descriptor of this packet to be owned by
> * the processor.
> */
> cpu_physical_memory_read(s->tx_desc_addr,
> - (uint8_t *)&desc[0], sizeof(desc));
> - tx_desc_set_used(desc);
> + (uint8_t *)&desc_first[0],
> sizeof(desc));
> + tx_desc_set_used(desc_first);
> cpu_physical_memory_write(s->tx_desc_addr,
> - (uint8_t *)&desc[0], sizeof(desc));
> + (uint8_t *)&desc_first[0],
> sizeof(desc));
> /* Advance the hardare current descriptor past this packet */
>
> This is quite fun.
>
> Can we, please,
>
> a) s/unsigned/uint8_t/ in the variable declaration,
> and remove the useless casts and "readdressing" everywhere?
Um, no, this is ofcourse wrong - tx_desc_set_used() expects unsigned.
Still it's possible to remove "readdressing", instead of
(uint8_t *)&desc[0]
use
(uint8_t *)desc
The second point stands.. ;)
> and, more interesting,
>
> b) s/sizeof(desc)/sizeof(desc_first)/g
> ? :)
>
> Thanks,
>
> /mjt
>