Module Name: src Committed By: maxv Date: Sat Jan 20 13:42:07 UTC 2018
Modified Files: src/sys/arch/amd64/amd64: amd64_trap.S machdep.c Log Message: Don't declare exceptions[] with IDTVEC, it's an array, not a function. Rename it to x86_exceptions[], and move it to .rodata. To generate a diff of this commit: cvs rdiff -u -r1.19 -r1.20 src/sys/arch/amd64/amd64/amd64_trap.S cvs rdiff -u -r1.292 -r1.293 src/sys/arch/amd64/amd64/machdep.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/amd64/amd64/amd64_trap.S diff -u src/sys/arch/amd64/amd64/amd64_trap.S:1.19 src/sys/arch/amd64/amd64/amd64_trap.S:1.20 --- src/sys/arch/amd64/amd64/amd64_trap.S:1.19 Sat Jan 20 08:30:53 2018 +++ src/sys/arch/amd64/amd64/amd64_trap.S Sat Jan 20 13:42:07 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: amd64_trap.S,v 1.19 2018/01/20 08:30:53 maxv Exp $ */ +/* $NetBSD: amd64_trap.S,v 1.20 2018/01/20 13:42:07 maxv Exp $ */ /* * Copyright (c) 1998, 2007, 2008, 2017 The NetBSD Foundation, Inc. @@ -66,7 +66,7 @@ #if 0 #include <machine/asm.h> -__KERNEL_RCSID(0, "$NetBSD: amd64_trap.S,v 1.19 2018/01/20 08:30:53 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: amd64_trap.S,v 1.20 2018/01/20 13:42:07 maxv Exp $"); #endif /* @@ -360,25 +360,6 @@ IDTVEC_END(trap29) IDTVEC_END(trap30) IDTVEC_END(trap31) -IDTVEC(exceptions) - .quad _C_LABEL(Xtrap00), _C_LABEL(Xtrap01) - .quad _C_LABEL(Xtrap02), _C_LABEL(Xtrap03) - .quad _C_LABEL(Xtrap04), _C_LABEL(Xtrap05) - .quad _C_LABEL(Xtrap06), _C_LABEL(Xtrap07) - .quad _C_LABEL(Xtrap08), _C_LABEL(Xtrap09) - .quad _C_LABEL(Xtrap10), _C_LABEL(Xtrap11) - .quad _C_LABEL(Xtrap12), _C_LABEL(Xtrap13) - .quad _C_LABEL(Xtrap14), _C_LABEL(Xtrap15) - .quad _C_LABEL(Xtrap16), _C_LABEL(Xtrap17) - .quad _C_LABEL(Xtrap18), _C_LABEL(Xtrap19) - .quad _C_LABEL(Xtrap20), _C_LABEL(Xtrap21) - .quad _C_LABEL(Xtrap22), _C_LABEL(Xtrap23) - .quad _C_LABEL(Xtrap24), _C_LABEL(Xtrap25) - .quad _C_LABEL(Xtrap26), _C_LABEL(Xtrap27) - .quad _C_LABEL(Xtrap28), _C_LABEL(Xtrap29) - .quad _C_LABEL(Xtrap30), _C_LABEL(Xtrap31) -IDTVEC_END(exceptions) - IDTVEC(intrspurious) ZTRAP_NJ(T_ASTFLT) INTRENTRY @@ -512,3 +493,24 @@ calltrap: #endif END(alltraps) + .section .rodata + +LABEL(x86_exceptions) + .quad _C_LABEL(Xtrap00), _C_LABEL(Xtrap01) + .quad _C_LABEL(Xtrap02), _C_LABEL(Xtrap03) + .quad _C_LABEL(Xtrap04), _C_LABEL(Xtrap05) + .quad _C_LABEL(Xtrap06), _C_LABEL(Xtrap07) + .quad _C_LABEL(Xtrap08), _C_LABEL(Xtrap09) + .quad _C_LABEL(Xtrap10), _C_LABEL(Xtrap11) + .quad _C_LABEL(Xtrap12), _C_LABEL(Xtrap13) + .quad _C_LABEL(Xtrap14), _C_LABEL(Xtrap15) + .quad _C_LABEL(Xtrap16), _C_LABEL(Xtrap17) + .quad _C_LABEL(Xtrap18), _C_LABEL(Xtrap19) + .quad _C_LABEL(Xtrap20), _C_LABEL(Xtrap21) + .quad _C_LABEL(Xtrap22), _C_LABEL(Xtrap23) + .quad _C_LABEL(Xtrap24), _C_LABEL(Xtrap25) + .quad _C_LABEL(Xtrap26), _C_LABEL(Xtrap27) + .quad _C_LABEL(Xtrap28), _C_LABEL(Xtrap29) + .quad _C_LABEL(Xtrap30), _C_LABEL(Xtrap31) +END(x86_exceptions) + Index: src/sys/arch/amd64/amd64/machdep.c diff -u src/sys/arch/amd64/amd64/machdep.c:1.292 src/sys/arch/amd64/amd64/machdep.c:1.293 --- src/sys/arch/amd64/amd64/machdep.c:1.292 Sat Jan 20 07:43:28 2018 +++ src/sys/arch/amd64/amd64/machdep.c Sat Jan 20 13:42:07 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.292 2018/01/20 07:43:28 maxv Exp $ */ +/* $NetBSD: machdep.c,v 1.293 2018/01/20 13:42:07 maxv Exp $ */ /* * Copyright (c) 1996, 1997, 1998, 2000, 2006, 2007, 2008, 2011 @@ -110,7 +110,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.292 2018/01/20 07:43:28 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.293 2018/01/20 13:42:07 maxv Exp $"); /* #define XENDEBUG_LOW */ @@ -1488,7 +1488,7 @@ typedef void (vector)(void); extern vector IDTVEC(syscall); extern vector IDTVEC(syscall32); extern vector IDTVEC(osyscall); -extern vector *IDTVEC(exceptions)[]; +extern vector *x86_exceptions[]; static void init_x86_64_ksyms(void) @@ -1777,7 +1777,7 @@ init_x86_64(paddr_t first_avail) ist = 0; break; } - setgate(&idt[x], IDTVEC(exceptions)[x], ist, SDT_SYS386IGT, + setgate(&idt[x], x86_exceptions[x], ist, SDT_SYS386IGT, (x == 3 || x == 4) ? SEL_UPL : SEL_KPL, GSEL(GCODE_SEL, SEL_KPL)); #else /* XEN */ @@ -1801,7 +1801,7 @@ init_x86_64(paddr_t first_avail) xen_idt[xen_idt_idx].cs = GSEL(GCODE_SEL, SEL_KPL); xen_idt[xen_idt_idx].address = - (unsigned long)IDTVEC(exceptions)[x]; + (unsigned long)x86_exceptions[x]; xen_idt_idx++; #endif /* XEN */ }