summaryrefslogtreecommitdiff
path: root/i386
diff options
context:
space:
mode:
authorDamien Zammit <damien@zamaudio.com>2019-11-11 20:35:17 +1100
committerDamien Zammit <damien@zamaudio.com>2019-11-11 20:42:51 +1100
commitaf33188fc5a13ad7ad8e6160e9bc1884a8d4af29 (patch)
treeff740bbfee86a4ad39cd28292b5114763e9c2dd3 /i386
parente45601b0780b2c81a6448cdafd952cb98112b9f4 (diff)
deb base
Diffstat (limited to 'i386')
-rw-r--r--i386/i386at/conf.c3
-rw-r--r--i386/i386at/interrupt.S7
-rw-r--r--i386/i386at/kd.c4
-rw-r--r--i386/include/mach/i386/fp_reg.h2
4 files changed, 16 insertions, 0 deletions
diff --git a/i386/i386at/conf.c b/i386/i386at/conf.c
index fe7c7c09..7b82ff47 100644
--- a/i386/i386at/conf.c
+++ b/i386/i386at/conf.c
@@ -31,6 +31,7 @@
#include <device/conf.h>
#include <kern/mach_clock.h>
#include <i386at/model_dep.h>
+#include <device/ramdisk.h>
#define timename "time"
@@ -135,6 +136,8 @@ struct dev_ops dev_name_list[] =
nodev },
#endif /* MACH_HYP */
+ RAMDISK_DEV_OPS,
+
#ifdef MACH_KMSG
{ kmsgname, kmsgopen, kmsgclose, kmsgread,
nulldev_write, kmsggetstat, nulldev_setstat, nomap,
diff --git a/i386/i386at/interrupt.S b/i386/i386at/interrupt.S
index 076e34bc..9f159c5c 100644
--- a/i386/i386at/interrupt.S
+++ b/i386/i386at/interrupt.S
@@ -41,11 +41,18 @@ ENTRY(interrupt)
cli /* XXX no more nested interrupts */
popl %eax /* restore irq number */
movl %eax,%ecx /* copy irq number */
+ movb $0xff,%al /* mask for all interrupts */
+ outb %al,$(PIC_MASTER_OCW) /* mask master out */
+ outb %al,$(PIC_SLAVE_OCW) /* mask slave out */
+ movl %ecx,%eax /* restore eax */
movb $(NON_SPEC_EOI),%al /* non-specific EOI */
outb %al,$(PIC_MASTER_ICW) /* ack interrupt to master */
cmpl $8,%ecx /* do we need to ack slave? */
jl 1f /* no, skip it */
outb %al,$(PIC_SLAVE_ICW)
1:
+ movb $0,%al /* empty mask */
+ outb %al,$(PIC_MASTER_OCW) /* unmask master */
+ outb %al,$(PIC_SLAVE_OCW) /* unmask slave */
ret /* return */
END(interrupt)
diff --git a/i386/i386at/kd.c b/i386/i386at/kd.c
index 8e9222a0..c448adab 100644
--- a/i386/i386at/kd.c
+++ b/i386/i386at/kd.c
@@ -1733,6 +1733,10 @@ kd_parserest(u_char *cp)
kd_erase(number[0]);
esc_spt = esc_seq;
break;
+ case 'n':
+ /* Ignore status/cursor report request */
+ esc_spt = esc_seq;
+ break;
case '\0':
break; /* not enough yet */
default:
diff --git a/i386/include/mach/i386/fp_reg.h b/i386/include/mach/i386/fp_reg.h
index 56730555..f4906238 100644
--- a/i386/include/mach/i386/fp_reg.h
+++ b/i386/include/mach/i386/fp_reg.h
@@ -117,6 +117,7 @@ struct i386_xfp_save {
#define FPS_C3 0x4000 /* condition code bit 3 */
#define FPS_BUSY 0x8000 /* FPU busy */
+#ifdef MACH_KERNEL
/*
* Kind of floating-point support provided by kernel.
*/
@@ -125,5 +126,6 @@ struct i386_xfp_save {
#define FP_287 2 /* 80287 */
#define FP_387 3 /* 80387 or 80486 */
#define FP_387X 4 /* FXSAVE/RSTOR-capable */
+#endif
#endif /* _MACH_I386_FP_REG_H_ */