Cleanup hardware queue

Some code cleanup. 
Nie zmienia to faktu, że cast na `uint16_t` jest nieintuicyjny.

Doszliśmy do wniosku z @rexina że surowe adresy w pamięci powinny być typu `void *` gdyż jest to jasny sygnał, że nie wiadomo co to jest.

Inna sprawa, że w tym pliku powinniśmy cisnąć `extern "C"` przed całym blokiem.