diff options
Diffstat (limited to 'firmware/kernel.c')
-rw-r--r-- | firmware/kernel.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/firmware/kernel.c b/firmware/kernel.c index b30a3bb12b..f8b9cec2e1 100644 --- a/firmware/kernel.c +++ b/firmware/kernel.c | |||
@@ -83,6 +83,26 @@ void queue_init(struct event_queue *q) | |||
83 | all_queues[num_queues++] = q; | 83 | all_queues[num_queues++] = q; |
84 | } | 84 | } |
85 | 85 | ||
86 | void queue_delete(struct event_queue *q) | ||
87 | { | ||
88 | int i; | ||
89 | |||
90 | /* Find the queue to be deleted */ | ||
91 | for(i = 0;i < num_queues;i++) | ||
92 | { | ||
93 | if(all_queues[i] == q) | ||
94 | break; | ||
95 | } | ||
96 | |||
97 | /* Move the following queues up in the list */ | ||
98 | for(;i < num_queues-1;i++) | ||
99 | { | ||
100 | all_queues[i] = all_queues[i+1]; | ||
101 | } | ||
102 | |||
103 | num_queues--; | ||
104 | } | ||
105 | |||
86 | void queue_wait(struct event_queue *q, struct event *ev) | 106 | void queue_wait(struct event_queue *q, struct event *ev) |
87 | { | 107 | { |
88 | while(q->read == q->write) | 108 | while(q->read == q->write) |