bool queue_peek(struct event_queue *q, struct queue_event *ev) { bool have_msg = false; int oldlevel = set_irq_level(HIGHEST_IRQ_LEVEL); corelock_lock(&q->cl); if (q->read != q->write) *ev = q->events[q->read & QUEUE_LENGTH_MASK]; }