aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2014-11-14 20:56:41 -0700
committerSimon Glass <sjg@chromium.org>2014-11-25 07:11:17 -0700
commita3c700ec7611ce579ecab7005c66c6d1e7b1dbac (patch)
tree073dd3abaa5e3f2621db3b190009e54f4ed2ff4a /drivers
parent4c59f95327966b83981cb53371a854570a01e8d9 (diff)
downloadu-boot-a3c700ec7611ce579ecab7005c66c6d1e7b1dbac.zip
u-boot-a3c700ec7611ce579ecab7005c66c6d1e7b1dbac.tar.gz
u-boot-a3c700ec7611ce579ecab7005c66c6d1e7b1dbac.tar.bz2
bios_emulator: Allow a custom interrupt handler to be installed
Sometime we want to provide an interrupt handler for the ROM, Add a function to allow this. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/bios_emulator/include/x86emu.h1
-rw-r--r--drivers/bios_emulator/x86emu/sys.c5
2 files changed, 6 insertions, 0 deletions
diff --git a/drivers/bios_emulator/include/x86emu.h b/drivers/bios_emulator/include/x86emu.h
index 278f669..63febe0 100644
--- a/drivers/bios_emulator/include/x86emu.h
+++ b/drivers/bios_emulator/include/x86emu.h
@@ -153,6 +153,7 @@ extern "C" { /* Use "C" linkage when in C++ mode */
void X86EMU_setupMemFuncs(X86EMU_memFuncs * funcs);
void X86EMU_setupPioFuncs(X86EMU_pioFuncs * funcs);
void X86EMU_setupIntrFuncs(X86EMU_intrFuncs funcs[]);
+ void X86EMU_setupIntrFunc(int intnum, X86EMU_intrFuncs func);
void X86EMU_prepareForInt(int num);
/* decode.c */
diff --git a/drivers/bios_emulator/x86emu/sys.c b/drivers/bios_emulator/x86emu/sys.c
index 21f9730..0ba9c0c 100644
--- a/drivers/bios_emulator/x86emu/sys.c
+++ b/drivers/bios_emulator/x86emu/sys.c
@@ -273,6 +273,11 @@ void X86EMU_setupPioFuncs(X86EMU_pioFuncs * funcs)
sys_outl = funcs->outl;
}
+void X86EMU_setupIntrFunc(int intnum, X86EMU_intrFuncs func)
+{
+ _X86EMU_intrTab[intnum] = func;
+}
+
/****************************************************************************
PARAMETERS:
funcs - New interrupt vector table to make active