Example #1
0
void hash_destroy(struct hash *h)
{
	for(size_t index = 0;index < h->length;index++) {
		if(h->table[index])
			linkedlist_destroy(h->table[index]);
	}
	kfree(h->table);
	mutex_destroy(&h->lock);
	KOBJ_DESTROY(h, HASH_ALLOC);
}
Example #2
0
void mutex_destroy(struct mutex *m)
{
	assert(m->magic == MUTEX_MAGIC);
	if(kernel_state_flags & KSF_SHUTDOWN) return;
	if(m->lock && current_thread && m->owner == current_thread)
		current_thread->held_locks--;
	m->magic = 0;
	atomic_store(&m->lock, false);
	blocklist_destroy(&m->blocklist);
	KOBJ_DESTROY(m, MT_ALLOC);
}
Example #3
0
void net_packet_destroy(struct net_packet *packet)
{
	assert(packet->count == 0);
	TRACE_MSG("net.packet", "destroying packet %x\n", packet);
	KOBJ_DESTROY(packet, NP_FLAG_ALLOC);
}
Example #4
0
void charbuffer_destroy(struct charbuffer *cb)
{
	KOBJ_DESTROY(cb, CHARBUFFER_ALLOC);
}
Example #5
0
void ticker_destroy(struct ticker *ticker)
{
	heap_destroy(&ticker->heap);
	spinlock_destroy(&ticker->lock);
	KOBJ_DESTROY(ticker, TICKER_KMALLOC);
}
Example #6
0
void workqueue_destroy(struct workqueue *wq)
{
	heap_destroy(&wq->tasks);
	spinlock_destroy(&wq->lock);
	KOBJ_DESTROY(wq, WORKQUEUE_KMALLOC);
}
Example #7
0
void stack_destroy(struct stack *stack)
{
	spinlock_destroy(&stack->lock);
	KOBJ_DESTROY(stack, STACK_KMALLOC);
}