Message queues

Message queues, as described in queue.h.

This directory provides two targets.

  • The message queue library (message_queue_library) provides APIs for message queues that can be shared between two threads in the same compartment.
  • The message queue compartment (message_queue) wraps these in APIs that can be used from different compartments.

The library uses the setjmp-based error handler (see: unwind.h) to recover from invalid bounds or permissions. If you are using the library and want to be robust in the presence of CHERI exceptions, you should either add unwind_error_handler as a dependency of your compartment or provide an error handler that calls cleanup_unwind.