to keep the driver portable, the data in the FIFOs will be contiguous regions with well defined sizes, not C structs anymore.

will implement this using the types defined in <linux/types.h> and malloc()'ing the sum of field sizes to compose the data in the FIFOs. casts and pointer operations must be done by hand to assure compatibility with the C++ lib (or any other user programs).

this should fix our major bug now.