The memory layout of all Oceanic devices is very similar, which allows to share the parsing code between the different backends. Differences in the layout are passed by means of a new layout descriptor structure. Memory buffers are now allocated dynamically to support devices with different amounts of memory.