queue->max_entries = max_entries;
INIT_LIST_HEAD(&(queue->entries));
- spin_lock_init(&(queue->lock));
+ palacios_spinlock_init(&(queue->lock));
+}
+
+void deinit_queue(struct gen_queue * queue) {
+ while (dequeue(queue)) {
+ ERROR("Freeing non-empty queue. PROBABLE MEMORY LEAK DETECTED\n");
+ }
+ palacios_spinlock_deinit(&(queue->lock));
}
struct gen_queue * create_queue(unsigned int max_entries) {
return -1;
}
- spin_lock_irqsave(&(queue->lock), flags);
+ palacios_spinlock_lock_irqsave(&(queue->lock), flags);
q_entry->entry = entry;
list_add_tail(&(q_entry->node), &(queue->entries));
queue->num_entries++;
- spin_unlock_irqrestore(&(queue->lock), flags);
+ palacios_spinlock_unlock_irqrestore(&(queue->lock), flags);
return 0;
}
void * entry_val = 0;
unsigned long flags;
- spin_lock_irqsave(&(queue->lock), flags);
+ palacios_spinlock_lock_irqsave(&(queue->lock), flags);
if (!list_empty(&(queue->entries))) {
struct list_head * q_entry = queue->entries.next;
}
- spin_unlock_irqrestore(&(queue->lock), flags);
+ palacios_spinlock_unlock_irqrestore(&(queue->lock), flags);
return entry_val;
}