From bc600ecc3bdf0f189861dfb840f70c2339a7a853 Mon Sep 17 00:00:00 2001 From: Kimplul Date: Fri, 24 May 2024 13:24:27 +0300 Subject: rename common to src + I keep starting to type src and wondering why autocomplete won't work, I guess src is just uncounciously a better name --- common/irq.c | 67 ------------------------------------------------------------ 1 file changed, 67 deletions(-) delete mode 100644 common/irq.c (limited to 'common/irq.c') diff --git a/common/irq.c b/common/irq.c deleted file mode 100644 index db90d34..0000000 --- a/common/irq.c +++ /dev/null @@ -1,67 +0,0 @@ -/* SPDX-License-Identifier: copyleft-next-0.3.1 */ -/* Copyright 2023, Kim Kuparinen < kimi.h.kuparinen@gmail.com > */ - -/** - * @file irq.c - * Common IRQ handling stuff implementations. - */ - -#include -#include -#include -#include -#include -#include - -/** Hold maximum IRQ id supported by system. */ -static size_t max_irq; - -/** Hold map of IRD ID -> thread id. @todo process id? */ -static id_t *irq_map; - -void init_irq(void *fdt) -{ - /** @todo check arch max irq and adjust accordingly */ - irq_map = (id_t *)alloc_page(MM_O0); - memset(irq_map, 0, order_size(MM_O0)); - max_irq = order_size(MM_O0) / sizeof(irq_map[0]); - - setup_irq(fdt); -} - -stat_t register_irq(struct tcb *t, irq_t id) -{ - if (id >= max_irq) - return ERR_INVAL; - - if (irq_map[id]) - return ERR_EXT; - - irq_map[id] = t->tid; - return activate_irq(id); -} - -stat_t unregister_irq(struct tcb *t, irq_t id) -{ - id_t tid = irq_map[id]; - if (tid != t->tid) - return ERR_PERM; - - irq_map[id] = 0; - return deactivate_irq(id); -} - -void handle_irq() -{ - irq_t id = get_irq(); - hard_assert(id < max_irq, RETURN_VOID); - - id_t tid = irq_map[id]; - - if (!tid) { - bug("unregistered irq: %llu\n", (unsigned long long)id); - return; - } - - /** @todo switch to thread */ -} -- cgit v1.3