/* Remove front event from internal queue. 
This function will remove the front event from the internal queue. This function will be called once an event has been processed. That way, the event will live in the queue while being processed, hence no copying of data required.  */
static void win_pop_front_event(void)
/* Remove front event from internal queue. 
This function will remove the front event from the internal queue. This function will be called once an event has been processed. That way, the event will live in the queue while being processed, hence no copying of data required.  */
static void win_pop_front_event(void)
{
	irqflags_t iflags;
	if (win_event_queue.front == win_event_queue.end) {
		win_event_queue.front = win_event_queue.start;
	} else {
		++(win_event_queue.front);
	}
	iflags = cpu_irq_save();
	++(win_event_queue.free);
	--(win_event_queue.used);
	cpu_irq_restore(iflags);
}