-/* ****** Lunaix ISRM Interfacing ****** */
-
-void
-isrm_init()
-{
- // nothing to do
-}
-
-void
-isrm_ivfree(int iv)
-{
- struct gic_interrupt* ent;
- struct gic_distributor* dist;
-
- ent = __find_interrupt_record(iv);
- if (!ent) {
- return;
- }
-
- dist = __attached_distributor(0, ent);
- __undone_interrupt(&gic, dist, ent);
-
- hlist_delete(&ent->node);
- vfree(ent);
-}
-
-int
-isrm_ivosalloc(isr_cb handler)
-{
- return isrm_ivexalloc(handler);
-}
-
-int
-isrm_ivexalloc(isr_cb handler)
-{
- struct gic_int_param param;
- struct gic_interrupt* intr;
-
- param = (struct gic_int_param) {
- .class = GIC_SPI,
- .group = GIC_G1NS,
- .trigger = GIC_TRIG_EDGE,
- };
-
- intr = __gic_install_int(¶m, handler, true);
-
- return intr->intid;
-}
-
-isr_cb
-isrm_get(int iv)
-{
- struct gic_interrupt* intr;
-
- intr = __find_interrupt_record(iv);
- if (!intr) {
- return NULL;
- }
-
- return intr->handler;
-}
-
-ptr_t
-isrm_get_payload(const struct hart_state* state)