@{ struct gm_port *my_port; gm_recv_event_t *e; void *some_buffer; ... while (1) @{ e = gm_receive (my_port); switch (gm_htohc (e->recv.type)) @{ case GM_HIGH_RECV_EVENT: /* Handle high-priority control messages here in bounded time */ gm_provide_recv_buffer (my_port, gm_ntohp (e->recv.buffer), gm_ntohc (e->recv.size), GM_HIGH_PRIORITY); break; case GM_RECV_EVENT: /* Handle data messages here in bounded time */ gm_provide_recv_buffer (my_port, some_buffer, gm_ntohc (e->recv.size), GM_LOW_PRIORITY); break; case GM_NO_RECV_EVENT: /* Do bounded-time processing here, if desired. */ break; default: gm_unknown (my_port, e); @} @} @}