Add a new module implementing a queue data structure.

Since the functions are simple make them inline functions. This provides a
small code size saving.
This commit is contained in:
Richard Osborne
2013-11-29 18:36:35 +00:00
parent 93590833cf
commit a695e58524
10 changed files with 164 additions and 126 deletions

11
module_queue/src/queue.xc Normal file
View File

@@ -0,0 +1,11 @@
#include "queue.h"
// Force external definitions of inline functions.
extern inline int is_power_of_2(unsigned x);
extern inline void queue_init(queue_t &q, unsigned size);
extern inline int queue_is_empty(const queue_t &q);
extern inline int queue_is_full(const queue_t &q);
extern inline void queue_push_word(queue_t &q, unsigned array[], unsigned data);
extern inline unsigned queue_pop_word(queue_t &q, unsigned array[]);
extern inline unsigned queue_space(const queue_t &q);
extern inline unsigned queue_items(const queue_t &q);