summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/alpha/linux/linux_dummy.c16
-rw-r--r--sys/compat/linux/linux_misc.c32
-rw-r--r--sys/i386/linux/linux_dummy.c16
-rw-r--r--sys/i386/linux/linux_misc.c32
-rw-r--r--sys/i386/linux/linux_proto.h2
5 files changed, 65 insertions, 33 deletions
diff --git a/sys/alpha/linux/linux_dummy.c b/sys/alpha/linux/linux_dummy.c
index 4c08f78..bb935f3 100644
--- a/sys/alpha/linux/linux_dummy.c
+++ b/sys/alpha/linux/linux_dummy.c
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: linux_dummy.c,v 1.5 1997/02/22 09:38:19 peter Exp $
+ * $Id: linux_dummy.c,v 1.6 1997/07/20 16:05:53 bde Exp $
*/
#include <sys/param.h>
@@ -106,13 +106,6 @@ linux_gtty(struct proc *p, struct linux_gtty_args *args, int *retval)
}
int
-linux_nice(struct proc *p, struct linux_nice_args *args, int *retval)
-{
- printf("Linux-emul(%d): nice() not supported\n", p->p_pid);
- return ENOSYS;
-}
-
-int
linux_ftime(struct proc *p, struct linux_ftime_args *args, int *retval)
{
printf("Linux-emul(%d): ftime() not supported\n", p->p_pid);
@@ -184,13 +177,6 @@ linux_ksyslog(struct proc *p, struct linux_ksyslog_args *args, int *retval)
}
int
-linux_iopl(struct proc *p, struct linux_iopl_args *args, int *retval)
-{
- printf("Linux-emul(%d): iopl() not supported\n", p->p_pid);
- return ENOSYS;
-}
-
-int
linux_vhangup(struct proc *p, struct linux_vhangup_args *args, int *retval)
{
printf("Linux-emul(%d): vhangup() not supported\n", p->p_pid);
diff --git a/sys/compat/linux/linux_misc.c b/sys/compat/linux/linux_misc.c
index 723732b..cc55b1e 100644
--- a/sys/compat/linux/linux_misc.c
+++ b/sys/compat/linux/linux_misc.c
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: linux_misc.c,v 1.29 1997/07/20 16:06:01 bde Exp $
+ * $Id: linux_misc.c,v 1.30 1997/09/21 21:43:45 gibbs Exp $
*/
#include <sys/param.h>
@@ -52,6 +52,9 @@
#include <vm/vm_map.h>
#include <vm/vm_extern.h>
+#include <machine/cpu.h>
+#include <machine/psl.h>
+
#include <i386/linux/linux.h>
#include <i386/linux/linux_proto.h>
#include <i386/linux/linux_util.h>
@@ -931,3 +934,30 @@ linux_getitimer(struct proc *p, struct linux_getitimer_args *args, int *retval)
bsa.itv = args->itv;
return getitimer(p, &bsa, retval);
}
+
+int
+linux_iopl(struct proc *p, struct linux_iopl_args *args, int *retval)
+{
+ int error;
+ struct trapframe *fp;
+
+ error = suser(p->p_ucred, &p->p_acflag);
+ if (error)
+ return (error);
+ fp = (struct trapframe *)p->p_md.md_regs;
+ fp->tf_eflags |= PSL_IOPL;
+
+ return 0;
+}
+
+int
+linux_nice(struct proc *p, struct linux_nice_args *args, int *retval)
+{
+ struct setpriority_args bsd_args;
+
+ bsd_args.which = PRIO_PROCESS;
+ bsd_args.who = 0; /* current process */
+ bsd_args.prio = args->inc;
+ return setpriority(p, &bsd_args, retval);
+}
+
diff --git a/sys/i386/linux/linux_dummy.c b/sys/i386/linux/linux_dummy.c
index 4c08f78..bb935f3 100644
--- a/sys/i386/linux/linux_dummy.c
+++ b/sys/i386/linux/linux_dummy.c
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: linux_dummy.c,v 1.5 1997/02/22 09:38:19 peter Exp $
+ * $Id: linux_dummy.c,v 1.6 1997/07/20 16:05:53 bde Exp $
*/
#include <sys/param.h>
@@ -106,13 +106,6 @@ linux_gtty(struct proc *p, struct linux_gtty_args *args, int *retval)
}
int
-linux_nice(struct proc *p, struct linux_nice_args *args, int *retval)
-{
- printf("Linux-emul(%d): nice() not supported\n", p->p_pid);
- return ENOSYS;
-}
-
-int
linux_ftime(struct proc *p, struct linux_ftime_args *args, int *retval)
{
printf("Linux-emul(%d): ftime() not supported\n", p->p_pid);
@@ -184,13 +177,6 @@ linux_ksyslog(struct proc *p, struct linux_ksyslog_args *args, int *retval)
}
int
-linux_iopl(struct proc *p, struct linux_iopl_args *args, int *retval)
-{
- printf("Linux-emul(%d): iopl() not supported\n", p->p_pid);
- return ENOSYS;
-}
-
-int
linux_vhangup(struct proc *p, struct linux_vhangup_args *args, int *retval)
{
printf("Linux-emul(%d): vhangup() not supported\n", p->p_pid);
diff --git a/sys/i386/linux/linux_misc.c b/sys/i386/linux/linux_misc.c
index 723732b..cc55b1e 100644
--- a/sys/i386/linux/linux_misc.c
+++ b/sys/i386/linux/linux_misc.c
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: linux_misc.c,v 1.29 1997/07/20 16:06:01 bde Exp $
+ * $Id: linux_misc.c,v 1.30 1997/09/21 21:43:45 gibbs Exp $
*/
#include <sys/param.h>
@@ -52,6 +52,9 @@
#include <vm/vm_map.h>
#include <vm/vm_extern.h>
+#include <machine/cpu.h>
+#include <machine/psl.h>
+
#include <i386/linux/linux.h>
#include <i386/linux/linux_proto.h>
#include <i386/linux/linux_util.h>
@@ -931,3 +934,30 @@ linux_getitimer(struct proc *p, struct linux_getitimer_args *args, int *retval)
bsa.itv = args->itv;
return getitimer(p, &bsa, retval);
}
+
+int
+linux_iopl(struct proc *p, struct linux_iopl_args *args, int *retval)
+{
+ int error;
+ struct trapframe *fp;
+
+ error = suser(p->p_ucred, &p->p_acflag);
+ if (error)
+ return (error);
+ fp = (struct trapframe *)p->p_md.md_regs;
+ fp->tf_eflags |= PSL_IOPL;
+
+ return 0;
+}
+
+int
+linux_nice(struct proc *p, struct linux_nice_args *args, int *retval)
+{
+ struct setpriority_args bsd_args;
+
+ bsd_args.which = PRIO_PROCESS;
+ bsd_args.who = 0; /* current process */
+ bsd_args.prio = args->inc;
+ return setpriority(p, &bsd_args, retval);
+}
+
diff --git a/sys/i386/linux/linux_proto.h b/sys/i386/linux/linux_proto.h
index 07c990a..52a13b0 100644
--- a/sys/i386/linux/linux_proto.h
+++ b/sys/i386/linux/linux_proto.h
@@ -107,7 +107,7 @@ struct linux_access_args {
int flags;
};
struct linux_nice_args {
- int dummy;
+ int inc;
};
struct linux_ftime_args {
int dummy;
OpenPOWER on IntegriCloud