summaryrefslogtreecommitdiff
path: root/memdisk/setup.c
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2006-09-28 11:25:20 -0700
committerH. Peter Anvin <hpa@zytor.com>2006-09-28 11:25:20 -0700
commit3748de36714958902ebaf0669e004ae4113204db (patch)
tree9000df597bd8dca5c4859cde368cee6e86631bd4 /memdisk/setup.c
parenta584b423450923389f4dc25480e30472c8641d38 (diff)
downloadsyslinux-3748de36714958902ebaf0669e004ae4113204db.tar.gz
Add "safeint" mode to memdisk
Diffstat (limited to 'memdisk/setup.c')
-rw-r--r--memdisk/setup.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/memdisk/setup.c b/memdisk/setup.c
index 76775fd4..2f41a4d9 100644
--- a/memdisk/setup.c
+++ b/memdisk/setup.c
@@ -85,8 +85,10 @@ struct patch_area {
uint8_t drivetype;
uint8_t drivecnt;
uint8_t configflags;
+
#define CONFIG_READONLY 0x01
#define CONFIG_RAW 0x02
+#define CONFIG_SAFEINT 0x04
#define CONFIG_BIGRAW 0x08 /* MUST be 8! */
uint16_t mystack;
@@ -586,10 +588,17 @@ uint32_t setup(syscall_t cs_syscall, void *cs_bounce)
}
if ( getcmditem("raw") != CMD_NOTFOUND ) {
puts("Using raw access to high memory\n");
+ pptr->configflags &= ~CONFIG_SAFEINT|CONFIG_BIGRAW;
pptr->configflags |= CONFIG_RAW;
}
+ if ( getcmditem("safeint") != CMD_NOTFOUND ) {
+ puts("Using safe INT 15h access to high memory\n");
+ pptr->configflags &= ~CONFIG_RAW|CONFIG_BIGRAW;
+ pptr->configflags |= CONFIG_SAFEINT;
+ }
if ( getcmditem("bigraw") != CMD_NOTFOUND ) {
puts("Using raw access to high memory - assuming big real mode\n");
+ pptr->configflags &= ~CONFIG_SAFEINT;
pptr->configflags |= CONFIG_BIGRAW|CONFIG_RAW;
}