diff options
Diffstat (limited to 'sys/compat/ia32')
-rw-r--r-- | sys/compat/ia32/ia32_sysvec.c | 8 | ||||
-rw-r--r-- | sys/compat/ia32/ia32_util.h | 7 |
2 files changed, 13 insertions, 2 deletions
diff --git a/sys/compat/ia32/ia32_sysvec.c b/sys/compat/ia32/ia32_sysvec.c index 9c14fc4..67b7db3 100644 --- a/sys/compat/ia32/ia32_sysvec.c +++ b/sys/compat/ia32/ia32_sysvec.c @@ -68,9 +68,15 @@ __FBSDID("$FreeBSD$"); #include <compat/freebsd32/freebsd32_proto.h> #include <compat/freebsd32/freebsd32_syscall.h> #include <compat/ia32/ia32_signal.h> +#ifdef __amd64__ #include <machine/psl.h> #include <machine/segments.h> #include <machine/specialreg.h> +#else +#include <i386/include/psl.h> +#include <i386/include/segments.h> +#include <i386/include/specialreg.h> +#endif #include <machine/frame.h> #include <machine/md_var.h> #include <machine/pcb.h> @@ -111,7 +117,7 @@ struct sysentvec ia32_freebsd_sysvec = { elf32_coredump, NULL, MINSIGSTKSZ, - PAGE_SIZE, + IA32_PAGE_SIZE, 0, FREEBSD32_USRSTACK, FREEBSD32_USRSTACK, diff --git a/sys/compat/ia32/ia32_util.h b/sys/compat/ia32/ia32_util.h index f6de375..a2b88cb 100644 --- a/sys/compat/ia32/ia32_util.h +++ b/sys/compat/ia32/ia32_util.h @@ -37,8 +37,13 @@ #include <sys/sysent.h> #include <sys/cdefs.h> -#define FREEBSD32_USRSTACK ((1ul << 32) - PAGE_SIZE) +#ifdef __ia64__ +#define FREEBSD32_USRSTACK ((1ul << 32) - IA32_PAGE_SIZE * 2) +#else +#define FREEBSD32_USRSTACK ((1ul << 32) - IA32_PAGE_SIZE) +#endif +#define IA32_PAGE_SIZE 4096 #define IA32_MAXDSIZ (512*1024*1024) /* 512MB */ #define IA32_MAXSSIZ (64*1024*1024) /* 64MB */ #define IA32_MAXVMEM 0 /* Unlimited */ |