summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa/npx.c
diff options
context:
space:
mode:
authorjdp <jdp@FreeBSD.org>1997-04-22 06:55:47 +0000
committerjdp <jdp@FreeBSD.org>1997-04-22 06:55:47 +0000
commitae3a563c6ee04fa1b4d008183af8eb1e1f23f05e (patch)
tree4bf568e3ad4a7debc59e03b325c4fd155f8e7f1e /sys/i386/isa/npx.c
parent23b3d8266325c10c3d66be6ba93ad96a46c2f2bd (diff)
downloadFreeBSD-src-ae3a563c6ee04fa1b4d008183af8eb1e1f23f05e.zip
FreeBSD-src-ae3a563c6ee04fa1b4d008183af8eb1e1f23f05e.tar.gz
Make the necessary changes so that an ELF kernel can be built. I
have successfully built, booted, and run a number of different ELF kernel configurations, including GENERIC. LINT also builds and links cleanly, though I have not tried to boot it. The impact on developers is virtually nil, except for two things. All linker sets that might possibly be present in the kernel must be listed in "sys/i386/i386/setdefs.h". And all C symbols that are also referenced from assembly language code must be listed in "sys/i386/include/asnames.h". It so happens that failure to do these things will have no impact on the a.out kernel. But it will break the build of the ELF kernel. The ELF bootloader works, but it is not ready to commit quite yet.
Diffstat (limited to 'sys/i386/isa/npx.c')
-rw-r--r--sys/i386/isa/npx.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/sys/i386/isa/npx.c b/sys/i386/isa/npx.c
index bce496a..6e3f5c7 100644
--- a/sys/i386/isa/npx.c
+++ b/sys/i386/isa/npx.c
@@ -32,7 +32,7 @@
* SUCH DAMAGE.
*
* from: @(#)npx.c 7.2 (Berkeley) 5/12/91
- * $Id: npx.c,v 1.39 1997/02/22 09:36:57 peter Exp $
+ * $Id: npx.c,v 1.40 1997/03/24 11:23:58 bde Exp $
*/
#include "npx.h"
@@ -53,6 +53,7 @@
#endif
#include <sys/signalvar.h>
+#include <machine/asmacros.h>
#include <machine/cpu.h>
#include <machine/pcb.h>
#include <machine/md_var.h>
@@ -147,13 +148,15 @@ static volatile u_int npx_traps_while_probing;
* interrupts. We'll still need a special exception 16 handler. The busy
* latch stuff in probeintr() can be moved to npxprobe().
*/
+
inthand_t probeintr;
asm
("
.text
-_probeintr:
+ .p2align 2,0x90
+" __XSTRING(CNAME(probeintr)) ":
ss
- incl _npx_intrs_while_probing
+ incl " __XSTRING(CNAME(npx_intrs_while_probing)) "
pushl %eax
movb $0x20,%al # EOI (asm in strings loses cpp features)
outb %al,$0xa0 # IO_ICU2
@@ -168,9 +171,10 @@ inthand_t probetrap;
asm
("
.text
-_probetrap:
+ .p2align 2,0x90
+" __XSTRING(CNAME(probetrap)) ":
ss
- incl _npx_traps_while_probing
+ incl " __XSTRING(CNAME(npx_traps_while_probing)) "
fnclex
iret
");
OpenPOWER on IntegriCloud