summaryrefslogtreecommitdiff
path: root/lib/ultralib/src/os/setpiinterrupt.c
blob: 1af72b5a8154e40e2ab28d368f7b01041c8163c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "PR/os_internal.h"

struct __osHwInt {
    s32 (*handler)(void);
    void* stackEnd;
};

extern struct __osHwInt __osPiIntTable;

void __osSetPIIntrRoutine(struct __osHwInt* ir) {
    register u32 saveMask = __osDisableInt();

    __osPiIntTable.handler = ir->handler;
    __osPiIntTable.stackEnd = ir->stackEnd;
    __osRestoreInt(saveMask);
}