aboutsummaryrefslogtreecommitdiff
path: root/sys/i386
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2012-06-22 07:16:29 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2012-06-22 07:16:29 +0000
commitd69ae4126b9b81928fccb50c515b5c9d3bf5e179 (patch)
treedd3eb61d571288a9c638a65afbd3b51d9d153061 /sys/i386
parent869fd80fd449c2e3f8d7caa7ff4af71e904b5f08 (diff)
downloadsrc-d69ae4126b9b81928fccb50c515b5c9d3bf5e179.tar.gz
src-d69ae4126b9b81928fccb50c515b5c9d3bf5e179.zip
Enable shared page on i386, now it has a use for vdso_timehands.
MFC after: 1 month
Notes
Notes: svn path=/head/; revision=237435
Diffstat (limited to 'sys/i386')
-rw-r--r--sys/i386/i386/elf_machdep.c5
-rw-r--r--sys/i386/include/vmparam.h3
2 files changed, 6 insertions, 2 deletions
diff --git a/sys/i386/i386/elf_machdep.c b/sys/i386/i386/elf_machdep.c
index a782445acd89..034b4c47d877 100644
--- a/sys/i386/i386/elf_machdep.c
+++ b/sys/i386/i386/elf_machdep.c
@@ -74,12 +74,15 @@ struct sysentvec elf32_freebsd_sysvec = {
.sv_setregs = exec_setregs,
.sv_fixlimit = NULL,
.sv_maxssiz = NULL,
- .sv_flags = SV_ABI_FREEBSD | SV_IA32 | SV_ILP32,
+ .sv_flags = SV_ABI_FREEBSD | SV_IA32 | SV_ILP32 | SV_SHP,
.sv_set_syscall_retval = cpu_set_syscall_retval,
.sv_fetch_syscall_args = cpu_fetch_syscall_args,
.sv_syscallnames = syscallnames,
+ .sv_shared_page_base = SHAREDPAGE,
+ .sv_shared_page_len = PAGE_SIZE,
.sv_schedtail = NULL,
};
+INIT_SYSENTVEC(elf32_sysvec, &elf32_freebsd_sysvec);
static Elf32_Brandinfo freebsd_brand_info = {
.brand = ELFOSABI_FREEBSD,
diff --git a/sys/i386/include/vmparam.h b/sys/i386/include/vmparam.h
index 56ab4b3ddaba..ce6672d4ece7 100644
--- a/sys/i386/include/vmparam.h
+++ b/sys/i386/include/vmparam.h
@@ -165,7 +165,8 @@
#define VM_MAXUSER_ADDRESS VADDR(PTDPTDI, 0)
-#define USRSTACK VM_MAXUSER_ADDRESS
+#define SHAREDPAGE (VM_MAXUSER_ADDRESS - PAGE_SIZE)
+#define USRSTACK SHAREDPAGE
#define VM_MAX_ADDRESS VADDR(PTDPTDI, PTDPTDI)
#define VM_MIN_ADDRESS ((vm_offset_t)0)