X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/1fe5f5eb5378a47bf0f3451762743c162e40faad..f044ca812256b421e793c4335ce1ffed74710a70:/lunaix-os/arch/i386/exceptions/i386_isrm.c diff --git a/lunaix-os/arch/i386/exceptions/i386_isrm.c b/lunaix-os/arch/i386/exceptions/i386_isrm.c index 1d5950e..0628535 100644 --- a/lunaix-os/arch/i386/exceptions/i386_isrm.c +++ b/lunaix-os/arch/i386/exceptions/i386_isrm.c @@ -12,6 +12,7 @@ static char iv_bmp[(IV_EX_END - IV_BASE_END) / 8]; static isr_cb handlers[TOTAL_IV]; +static ptr_t ivhand_payload[TOTAL_IV]; extern void intr_routine_fallback(const isr_param* param); @@ -117,4 +118,21 @@ isrm_get(int iv) assert(iv < 256); return handlers[iv]; +} + +ptr_t +isrm_get_payload(const isr_param* param) +{ + int iv = param->execp->vector; + assert(iv < 256); + + return ivhand_payload[iv]; +} + +void +isrm_set_payload(int iv, ptr_t payload) +{ + assert(iv < 256); + + ivhand_payload[iv] = payload; } \ No newline at end of file