diff options
-rw-r--r-- | sys/alpha/linux/linux_dummy.c | 16 | ||||
-rw-r--r-- | sys/compat/linux/linux_misc.c | 32 | ||||
-rw-r--r-- | sys/i386/linux/linux_dummy.c | 16 | ||||
-rw-r--r-- | sys/i386/linux/linux_misc.c | 32 | ||||
-rw-r--r-- | sys/i386/linux/linux_proto.h | 2 |
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; |