summaryrefslogtreecommitdiffstats
path: root/sys/i386/include/vm86.h
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2010-08-05 18:48:30 +0000
committerjkim <jkim@FreeBSD.org>2010-08-05 18:48:30 +0000
commitf183f61cf27d17b22884ede6ef23e211e9a237e2 (patch)
treeb0c8c9a67306d060e349407a35aadc5ff9640537 /sys/i386/include/vm86.h
parent8f25a1f5690a3220ab26f9ae74a0c54cc3a0075a (diff)
downloadFreeBSD-src-f183f61cf27d17b22884ede6ef23e211e9a237e2.zip
FreeBSD-src-f183f61cf27d17b22884ede6ef23e211e9a237e2.tar.gz
Implement a simple native VM86 backend for X86BIOS. Now i386 uses native
VM86 calls instead of the real mode emulator as a backend. VM86 has been proven reliable for very long time and it is actually few times faster than emulation. Increase maximum number of page table entries per VM86 context from 3 to 8 pages. It was (ridiculously) low and insufficient for new VM86 backend, which shares one context globally. Slighly rearrange and clean up the emulator backend to accommodate new code. The only visible change here is stack size, which is decreased from 64K to 4K bytes to sync. with VM86. Actually, it seems there is no need for big stack in real mode. MFC after: 1 month
Diffstat (limited to 'sys/i386/include/vm86.h')
-rw-r--r--sys/i386/include/vm86.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/i386/include/vm86.h b/sys/i386/include/vm86.h
index 041504a..b574e58 100644
--- a/sys/i386/include/vm86.h
+++ b/sys/i386/include/vm86.h
@@ -93,13 +93,14 @@ struct vm86frame {
#define vmf_ds ds.r_w.r_x
#define vmf_es es.r_w.r_x
#define vmf_ss ss.r_w.r_x
+#define vmf_bp ebp.r_w.r_x
#define vmf_sp esp.r_w.r_x
#define vmf_ip eip.r_w.r_x
#define vmf_flags eflags.r_w.r_x
#define vmf_eflags eflags.r_ex
};
-#define VM86_PMAPSIZE 3
+#define VM86_PMAPSIZE 8
#define VMAP_MALLOC 1 /* page was malloced by us */
struct vm86context {
OpenPOWER on IntegriCloud