A generic C implementation of a Queue. Uses a pre-processor macro to enable the generic-ness. To use this Queue you must embed a QNode struct into your data objects, and then use the macro QUEUE_ENTRY(DATA_OBJECT, STRUCT_TYPE (of your DATA_OBJECT), MEMBER (the variable name in DATA_OBJECT of the QNode stored in it))