svn commit: r250311 - stable/8/sys/compat/x86bios
Jung-uk Kim
jkim at FreeBSD.org
Mon May 6 21:13:23 UTC 2013
Author: jkim
Date: Mon May 6 21:13:22 2013
New Revision: 250311
URL: http://svnweb.freebsd.org/changeset/base/250311
Log:
MFC: r210877 (partial)
Decrease emulated stack size from 64K to 4K bytes.
Modified:
stable/8/sys/compat/x86bios/x86bios.c
stable/8/sys/compat/x86bios/x86bios.h
Modified: stable/8/sys/compat/x86bios/x86bios.c
==============================================================================
--- stable/8/sys/compat/x86bios/x86bios.c Mon May 6 21:04:42 2013 (r250310)
+++ stable/8/sys/compat/x86bios/x86bios.c Mon May 6 21:13:22 2013 (r250311)
@@ -55,7 +55,6 @@ __FBSDID("$FreeBSD$");
#define X86BIOS_PAGE_SIZE 0x00001000 /* 4K */
#define X86BIOS_IVT_SIZE 0x00000500 /* 1K + 256 (BDA) */
-#define X86BIOS_SEG_SIZE 0x00010000 /* 64K */
#define X86BIOS_MEM_SIZE 0x00100000 /* 1M */
#define X86BIOS_IVT_BASE 0x00000000
@@ -63,11 +62,12 @@ __FBSDID("$FreeBSD$");
#define X86BIOS_ROM_BASE 0x000a0000
#define X86BIOS_ROM_SIZE (X86BIOS_MEM_SIZE - (uint32_t)x86bios_rom_phys)
+#define X86BIOS_SEG_SIZE X86BIOS_PAGE_SIZE
#define X86BIOS_PAGES (X86BIOS_MEM_SIZE / X86BIOS_PAGE_SIZE)
-#define X86BIOS_R_DS _pad1
#define X86BIOS_R_SS _pad2
+#define X86BIOS_R_SP _pad3.I16_reg.x_reg
static struct x86emu x86bios_emu;
@@ -332,8 +332,8 @@ x86bios_init_regs(struct x86regs *regs)
{
bzero(regs, sizeof(*regs));
- regs->X86BIOS_R_DS = 0x40;
- regs->X86BIOS_R_SS = x86bios_seg_phys >> 4;
+ regs->X86BIOS_R_SS = X86BIOS_PHYSTOSEG(x86bios_seg_phys);
+ regs->X86BIOS_R_SP = X86BIOS_PAGE_SIZE - 2;
}
void
Modified: stable/8/sys/compat/x86bios/x86bios.h
==============================================================================
--- stable/8/sys/compat/x86bios/x86bios.h Mon May 6 21:04:42 2013 (r250310)
+++ stable/8/sys/compat/x86bios/x86bios.h Mon May 6 21:13:22 2013 (r250311)
@@ -138,8 +138,8 @@ typedef struct x86regs x86regs_t;
#define R_FS register_fs
#define R_GS register_gs
-#define X86BIOS_PHYSTOSEG(x) (((x) >> 4) & 0xffff)
-#define X86BIOS_PHYSTOOFF(x) ((x) & 0x000f)
+#define X86BIOS_PHYSTOSEG(x) (((x) >> 4) & 0xff00)
+#define X86BIOS_PHYSTOOFF(x) ((x) & 0x0fff)
__BEGIN_DECLS
void *x86bios_alloc(uint32_t *offset, size_t size);
More information about the svn-src-stable
mailing list