/* Enqueue at the tail of the queue. 
Enqueue is destructive so tail will change to new tail NOTE: The memory will not be associated with the link-element, but rather the second-to-last link-element. */
memq_link_t* memq_enqueue(memq_link_t *link, void *mem, memq_link_t **tail)
/* Enqueue at the tail of the queue. 
Enqueue is destructive so tail will change to new tail NOTE: The memory will not be associated with the link-element, but rather the second-to-last link-element. */
memq_link_t* memq_enqueue(memq_link_t *link, void *mem, memq_link_t **tail)
{
	(*tail)->next = link;
	(*tail)->mem = mem;
	cpu_dmb();
	*tail = link;
	return link;
}