summaryrefslogtreecommitdiff
path: root/sys/compat/linux
diff options
context:
space:
mode:
authorperry <perry@NetBSD.org>1998-08-05 00:44:32 +0000
committerperry <perry@NetBSD.org>1998-08-05 00:44:32 +0000
commitf15ade7552142e9cc1bcced64441cb673f565273 (patch)
treedd76b7aea18de23fecdf43ada93e00697800d5fc /sys/compat/linux
parentb791320225eacef932c411015cc0a1f7454e0d5c (diff)
enable nanosleep in linux emul, per pr-5906 from Soren S. Jorvang
Diffstat (limited to 'sys/compat/linux')
-rw-r--r--sys/compat/linux/arch/i386/syscalls.master5
-rw-r--r--sys/compat/linux/i386/syscalls.master5
-rw-r--r--sys/compat/linux/linux_syscall.h5
-rw-r--r--sys/compat/linux/linux_syscallargs.h3
-rw-r--r--sys/compat/linux/linux_syscalls.c4
-rw-r--r--sys/compat/linux/linux_sysent.c6
-rw-r--r--sys/compat/linux/syscalls.master5
7 files changed, 20 insertions, 13 deletions
diff --git a/sys/compat/linux/arch/i386/syscalls.master b/sys/compat/linux/arch/i386/syscalls.master
index cecb1a00ffb..ecb40e9da7f 100644
--- a/sys/compat/linux/arch/i386/syscalls.master
+++ b/sys/compat/linux/arch/i386/syscalls.master
@@ -1,4 +1,4 @@
- $NetBSD: syscalls.master,v 1.23 1998/02/20 18:09:04 mycroft Exp $
+ $NetBSD: syscalls.master,v 1.24 1998/08/05 00:44:34 perry Exp $
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
@@ -253,6 +253,7 @@
159 UNIMPL sched_get_priority_max
160 UNIMPL sched_get_priority_min
161 UNIMPL sched_rr_get_interval
-162 UNIMPL nanosleep
+162 NOARGS { int sys_nanosleep(const struct timespec *rqtp, \
+ struct timespec *rmtp); }
163 STD { void *linux_sys_mremap(void *old_address, \
size_t old_size, size_t new_size, u_long flags); }
diff --git a/sys/compat/linux/i386/syscalls.master b/sys/compat/linux/i386/syscalls.master
index cecb1a00ffb..ecb40e9da7f 100644
--- a/sys/compat/linux/i386/syscalls.master
+++ b/sys/compat/linux/i386/syscalls.master
@@ -1,4 +1,4 @@
- $NetBSD: syscalls.master,v 1.23 1998/02/20 18:09:04 mycroft Exp $
+ $NetBSD: syscalls.master,v 1.24 1998/08/05 00:44:34 perry Exp $
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
@@ -253,6 +253,7 @@
159 UNIMPL sched_get_priority_max
160 UNIMPL sched_get_priority_min
161 UNIMPL sched_rr_get_interval
-162 UNIMPL nanosleep
+162 NOARGS { int sys_nanosleep(const struct timespec *rqtp, \
+ struct timespec *rmtp); }
163 STD { void *linux_sys_mremap(void *old_address, \
size_t old_size, size_t new_size, u_long flags); }
diff --git a/sys/compat/linux/linux_syscall.h b/sys/compat/linux/linux_syscall.h
index 373a97fb282..7cd155120d3 100644
--- a/sys/compat/linux/linux_syscall.h
+++ b/sys/compat/linux/linux_syscall.h
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_syscall.h,v 1.29 1998/02/20 18:09:29 mycroft Exp $ */
+/* $NetBSD: linux_syscall.h,v 1.30 1998/08/05 00:44:32 perry Exp $ */
/*
* System call numbers.
@@ -366,6 +366,9 @@
/* syscall: "munlock" ret: "int" args: "caddr_t" "size_t" */
#define LINUX_SYS_munlock 151
+/* syscall: "nanosleep" ret: "int" args: "const struct timespec *" "struct timespec *" */
+#define LINUX_SYS_nanosleep 162
+
/* syscall: "mremap" ret: "void *" args: "void *" "size_t" "size_t" "u_long" */
#define LINUX_SYS_mremap 163
diff --git a/sys/compat/linux/linux_syscallargs.h b/sys/compat/linux/linux_syscallargs.h
index 4de47ad9fd0..e0619d2bf41 100644
--- a/sys/compat/linux/linux_syscallargs.h
+++ b/sys/compat/linux/linux_syscallargs.h
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_syscallargs.h,v 1.28 1998/02/20 18:09:29 mycroft Exp $ */
+/* $NetBSD: linux_syscallargs.h,v 1.29 1998/08/05 00:44:32 perry Exp $ */
/*
* System call argument lists.
@@ -467,4 +467,5 @@ int linux_sys_fdatasync __P((struct proc *, void *, register_t *));
int linux_sys___sysctl __P((struct proc *, void *, register_t *));
int sys_mlock __P((struct proc *, void *, register_t *));
int sys_munlock __P((struct proc *, void *, register_t *));
+int sys_nanosleep __P((struct proc *, void *, register_t *));
int linux_sys_mremap __P((struct proc *, void *, register_t *));
diff --git a/sys/compat/linux/linux_syscalls.c b/sys/compat/linux/linux_syscalls.c
index f82637f7829..c5e81afcdb6 100644
--- a/sys/compat/linux/linux_syscalls.c
+++ b/sys/compat/linux/linux_syscalls.c
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_syscalls.c,v 1.27 1998/02/20 18:09:29 mycroft Exp $ */
+/* $NetBSD: linux_syscalls.c,v 1.28 1998/08/05 00:44:33 perry Exp $ */
/*
* System call names.
@@ -194,6 +194,6 @@ char *linux_syscallnames[] = {
"#159 (unimplemented sched_get_priority_max)", /* 159 = unimplemented sched_get_priority_max */
"#160 (unimplemented sched_get_priority_min)", /* 160 = unimplemented sched_get_priority_min */
"#161 (unimplemented sched_rr_get_interval)", /* 161 = unimplemented sched_rr_get_interval */
- "#162 (unimplemented nanosleep)", /* 162 = unimplemented nanosleep */
+ "nanosleep", /* 162 = nanosleep */
"mremap", /* 163 = mremap */
};
diff --git a/sys/compat/linux/linux_sysent.c b/sys/compat/linux/linux_sysent.c
index 805210ef2a3..17ea656e643 100644
--- a/sys/compat/linux/linux_sysent.c
+++ b/sys/compat/linux/linux_sysent.c
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_sysent.c,v 1.30 1998/02/20 18:09:30 mycroft Exp $ */
+/* $NetBSD: linux_sysent.c,v 1.31 1998/08/05 00:44:33 perry Exp $ */
/*
* System call switch table.
@@ -359,8 +359,8 @@ struct sysent linux_sysent[] = {
sys_nosys }, /* 160 = unimplemented sched_get_priority_min */
{ 0, 0,
sys_nosys }, /* 161 = unimplemented sched_rr_get_interval */
- { 0, 0,
- sys_nosys }, /* 162 = unimplemented nanosleep */
+ { 2, s(struct sys_nanosleep_args),
+ sys_nanosleep }, /* 162 = nanosleep */
{ 4, s(struct linux_sys_mremap_args),
linux_sys_mremap }, /* 163 = mremap */
};
diff --git a/sys/compat/linux/syscalls.master b/sys/compat/linux/syscalls.master
index cecb1a00ffb..ecb40e9da7f 100644
--- a/sys/compat/linux/syscalls.master
+++ b/sys/compat/linux/syscalls.master
@@ -1,4 +1,4 @@
- $NetBSD: syscalls.master,v 1.23 1998/02/20 18:09:04 mycroft Exp $
+ $NetBSD: syscalls.master,v 1.24 1998/08/05 00:44:34 perry Exp $
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
@@ -253,6 +253,7 @@
159 UNIMPL sched_get_priority_max
160 UNIMPL sched_get_priority_min
161 UNIMPL sched_rr_get_interval
-162 UNIMPL nanosleep
+162 NOARGS { int sys_nanosleep(const struct timespec *rqtp, \
+ struct timespec *rmtp); }
163 STD { void *linux_sys_mremap(void *old_address, \
size_t old_size, size_t new_size, u_long flags); }