svn commit: r195410 - head/sys/amd64/amd64
John Baldwin
jhb at FreeBSD.org
Mon Jul 6 18:10:28 UTC 2009
Author: jhb
Date: Mon Jul 6 18:10:27 2009
New Revision: 195410
URL: http://svn.freebsd.org/changeset/base/195410
Log:
MFi386: Add a 'show idt' command to DDB to display the non-default function
pointers in the interrupt descriptor table.
Approved by: re (kensmith)
Modified:
head/sys/amd64/amd64/machdep.c
Modified: head/sys/amd64/amd64/machdep.c
==============================================================================
--- head/sys/amd64/amd64/machdep.c Mon Jul 6 17:23:48 2009 (r195409)
+++ head/sys/amd64/amd64/machdep.c Mon Jul 6 18:10:27 2009 (r195410)
@@ -100,8 +100,9 @@ __FBSDID("$FreeBSD$");
#ifndef KDB
#error KDB must be enabled in order for DDB to work!
#endif
-#endif
#include <ddb/ddb.h>
+#include <ddb/db_sym.h>
+#endif
#include <net/netisr.h>
@@ -1083,6 +1084,30 @@ extern inthand_t
IDTVEC(xmm), IDTVEC(dblfault),
IDTVEC(fast_syscall), IDTVEC(fast_syscall32);
+#ifdef DDB
+/*
+ * Display the index and function name of any IDT entries that don't use
+ * the default 'rsvd' entry point.
+ */
+DB_SHOW_COMMAND(idt, db_show_idt)
+{
+ struct gate_descriptor *ip;
+ int idx;
+ uintptr_t func;
+
+ ip = idt;
+ for (idx = 0; idx < NIDT && !db_pager_quit; idx++) {
+ func = ((long)ip->gd_hioffset << 16 | ip->gd_looffset);
+ if (func != (uintptr_t)&IDTVEC(rsvd)) {
+ db_printf("%3d\t", idx);
+ db_printsym(func, DB_STGY_PROC);
+ db_printf("\n");
+ }
+ ip++;
+ }
+}
+#endif
+
void
sdtossd(sd, ssd)
struct user_segment_descriptor *sd;
More information about the svn-src-head
mailing list