diff -uNr linux.org/linux.h linux/linux.h --- linux.org/linux.h Tue Sep 1 00:44:31 1998 +++ linux/linux.h Sat Sep 5 09:09:00 1998 @@ -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.h,v 1.10.2.6 1998/02/19 00:37:24 jkh Exp $ + * $Id: linux.h,v 1.10.2.7 1998/09/04 17:00:06 jkh Exp $ */ #ifndef _I386_LINUX_LINUX_H_ @@ -168,8 +168,22 @@ #define LINUX_SIG_SETMASK 2 /* keyboard defines */ +#define LINUX_KIOCSOUND 0x4B2F +#define LINUX_KDMKTONE 0x4B30 +#define LINUX_KDGETLED 0x4B31 +#define LINUX_KDSETLED 0x4B32 +#define LINUX_LED_SCR 0x01 +#define LINUX_LED_NUM 0x02 +#define LINUX_LED_CAP 0x04 + #define LINUX_KDGKBMODE 0x4B44 #define LINUX_KDSKBMODE 0x4B45 +#define LINUX_KDSETMODE 0x4B3A +#define LINUX_KDGETMODE 0x4B3B +#define LINUX_KD_TEXT 0x0 +#define LINUX_KD_GRAPHICS 0x1 +#define LINUX_KD_TEXT0 0x2 +#define LINUX_KD_TEXT1 0x3 #define LINUX_KBD_RAW 0 #define LINUX_KBD_XLATE 1 diff -uNr linux.org/linux_dummy.c linux/linux_dummy.c --- linux.org/linux_dummy.c Thu Sep 3 16:12:54 1998 +++ linux/linux_dummy.c Sat Sep 5 09:09:03 1998 @@ -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.3.4.1 1998/02/19 00:37:28 jkh Exp $ + * $Id: linux_dummy.c,v 1.3.4.2 1998/09/04 17:00:06 jkh Exp $ */ #include @@ -176,13 +176,6 @@ printf("Linux-emul(%d): ksyslog(%x) not supported\n", p->p_pid, args->what); return ENOSYS; /* EPERM - Peter - it's a root-only thing */ -} - -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 diff -uNr linux.org/linux_ioctl.c linux/linux_ioctl.c --- linux.org/linux_ioctl.c Tue Sep 1 00:46:54 1998 +++ linux/linux_ioctl.c Sat Sep 5 09:09:05 1998 @@ -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_ioctl.c,v 1.11.2.5 1998/02/19 00:37:30 jkh Exp $ + * $Id: linux_ioctl.c,v 1.11.2.6 1998/09/04 17:00:06 jkh Exp $ */ #include @@ -51,6 +51,8 @@ #include #include +#define ISSIGVALID(sig) ((sig) > 0 && (sig) < NSIG) + struct linux_termio { unsigned short c_iflag; unsigned short c_oflag; @@ -850,9 +852,14 @@ return ioctl(p, (struct ioctl_args *)args, retval); case LINUX_VT_SETMODE: - + { + struct vt_mode *mode; args->cmd = VT_SETMODE; - return ioctl(p, (struct ioctl_args *)args, retval); + mode = (struct vt_mode *)args->arg; + if (!ISSIGVALID(mode->frsig) && ISSIGVALID(mode->acqsig)) + mode->frsig = mode->acqsig; + return ioctl(p, (struct ioctl_args *)args, retval); + } case LINUX_VT_GETSTATE: @@ -891,7 +898,32 @@ return EINVAL; } } + + case LINUX_KDGETMODE: + args->cmd = KDGETMODE; + return ioctl(p, (struct ioctl_args *)args, retval); + + case LINUX_KDSETMODE: + args->cmd = KDSETMODE; + return ioctl(p, (struct ioctl_args *)args, retval); + + case LINUX_KDSETLED: + args->cmd = KDSETLED; + return ioctl(p, (struct ioctl_args *)args, retval); + + case LINUX_KDGETLED: + args->cmd = KDGETLED; + return ioctl(p, (struct ioctl_args *)args, retval); + + case LINUX_KIOCSOUND: + args->cmd = KIOCSOUND; + return ioctl(p, (struct ioctl_args *)args, retval); + + case LINUX_KDMKTONE: + args->cmd = KDMKTONE; + return ioctl(p, (struct ioctl_args *)args, retval); } + uprintf("LINUX: 'ioctl' fd=%d, typ=0x%x(%c), num=0x%x not implemented\n", args->fd, (args->cmd&0xffff00)>>8, (args->cmd&0xffff00)>>8, args->cmd&0xff); diff -uNr linux.org/linux_misc.c linux/linux_misc.c --- linux.org/linux_misc.c Thu Sep 3 16:13:14 1998 +++ linux/linux_misc.c Sat Sep 5 09:09:21 1998 @@ -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.20.2.2 1998/02/19 00:37:32 jkh Exp $ + * $Id: linux_misc.c,v 1.20.2.3 1998/09/04 17:00:06 jkh Exp $ */ #include @@ -61,6 +61,9 @@ #include #include +#include +#include + #include #include #include @@ -941,6 +944,20 @@ } int +linux_iopl(struct proc *p, struct linux_iopl_args *args, int *retval) +{ + int error; + + error = suser(p->p_ucred, &p->p_acflag); + if (error != 0) + return error; + if (securelevel > 0) + return EPERM; + ((struct trapframe *)(p->p_md.md_regs))->tf_eflags |= PSL_IOPL; + return 0; +} + +int linux_nice(struct proc *p, struct linux_nice_args *args, int *retval) { struct setpriority_args bsd_args; @@ -950,4 +967,3 @@ bsd_args.prio = args->inc; return setpriority(p, &bsd_args, retval); } -