summaryrefslogtreecommitdiff
path: root/payloads/libpayload/arch
diff options
context:
space:
mode:
authorRaul E Rangel <rrangel@chromium.org>2018-08-22 10:03:05 -0600
committerPatrick Georgi <pgeorgi@google.com>2018-09-10 15:01:19 +0000
commitf47ccbdd47c57def602201869081d1025014c042 (patch)
tree92ea7ff14cdabdc0dc04c44414507db47b628bb5 /payloads/libpayload/arch
parent80d5c195901d7fa1a442b36d697f9f0f3f063379 (diff)
downloadcoreboot-f47ccbdd47c57def602201869081d1025014c042.tar.xz
libpayload/x86/gdb: Migrate to use set_interrupt_handler
BUG=b:109749762 TEST=Verified GDB still functions by hitting Ctrl+G on the developer screen and stepping through some code. Change-Id: I723a8a95f681c500d9d8e35e49fd1d893cb1f133 Signed-off-by: Raul E Rangel <rrangel@chromium.org> Reviewed-on: https://review.coreboot.org/28240 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin Roth <martinroth@google.com>
Diffstat (limited to 'payloads/libpayload/arch')
-rw-r--r--payloads/libpayload/arch/x86/gdb.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/payloads/libpayload/arch/x86/gdb.c b/payloads/libpayload/arch/x86/gdb.c
index 66a5a24090..7d2951282e 100644
--- a/payloads/libpayload/arch/x86/gdb.c
+++ b/payloads/libpayload/arch/x86/gdb.c
@@ -38,17 +38,17 @@ static const u8 type_to_signal[] = {
[EXC_SX] = GDB_SIGFPE,
};
-static int gdb_exception_hook(u32 type)
+static void gdb_exception_hook(u8 vector)
{
- if (type >= ARRAY_SIZE(type_to_signal) || !type_to_signal[type])
- return 0;
- gdb_command_loop(type_to_signal[type]);
- return 1;
+ gdb_command_loop(type_to_signal[vector]);
}
void gdb_arch_init(void)
{
- exception_install_hook(&gdb_exception_hook);
+ for (int vector = 0; vector < ARRAY_SIZE(type_to_signal); ++vector) {
+ if (type_to_signal[vector])
+ set_interrupt_handler(vector, &gdb_exception_hook);
+ }
}
void gdb_arch_enter(void)