
Buffering and other data structures 349
memory usage for small and simple data. Variable size
buffers are a solution to this but require more complex
control to handle the length of the valid data. The buffer size
must still be large enough for the biggest message and thus
the problem of buffer size granularity may come back
again.
• The buffers must be accessible by both the driver and
requesting tasks. This may seem to be very obvious but if
the device driver is running in supervisor mode and the
requesting task is in the user mode, the memory manage-
ment unit or address decode hardware may prevent the
correct access. This problem can also occur with ...