blob: 11d7ab71378aaea90165f602e3c0b10028110a97 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#ifndef LIB_Q_H
#define LIB_Q_H
struct Q_base {
struct Q* next;
struct Q* last;
} __attribute__((packed));
struct Q {
struct Q* next;
void* data;
} __attribute__((packed));
struct Q_base* new_q();
void push_q(struct Q_base* qb, void* val);
void pop_q(struct Q_base* qb);
unsigned long length_q(struct Q_base* qb);
#define show_q(QQ, TYPE) { \
if (QQ->next != 0) { \
struct Q* t = QQ->next; \
while (t->next != 0) { \
uart_hex(*(TYPE*)t->data); \
t = t->next; \
uart_char(' '); \
} \
uart_hex(*(TYPE*)t->data); \
} \
}
#endif
|