As described by the submitter:

These patches enables us to play quake2 .

Support linux keyboard ioctl for setting RAW, MEDIUMRAW and XLATE.

Support linux virtual terminal operations:
 OPENQRY, GETMODE, SETMODE, GETSTATE, ACTIVATE, and WAITACTIVE.

Submitted by:	Amancio Hasty <hasty@rah.star-gate.com>
This commit is contained in:
Mike Smith 1997-12-15 06:09:11 +00:00
parent bd28588799
commit 7ebfc603cf
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=31730
4 changed files with 140 additions and 2 deletions

View File

@ -167,6 +167,14 @@ struct trapframe;
#define LINUX_SIG_UNBLOCK 1
#define LINUX_SIG_SETMASK 2
/* keyboard defines */
#define LINUX_KDGKBMODE 0x4B44
#define LINUX_KDSKBMODE 0x4B45
#define LINUX_KBD_RAW 0
#define LINUX_KBD_XLATE 1
#define LINUX_KBD_MEDIUMRAW 2
/* termio commands */
#define LINUX_TCGETS 0x5401
#define LINUX_TCSETS 0x5402
@ -215,6 +223,14 @@ struct trapframe;
#define LINUX_TIOCSERSWILD 0x5455
#define LINUX_TIOCGLCKTRMIOS 0x5456
#define LINUX_TIOCSLCKTRMIOS 0x5457
#define LINUX_VT_OPENQRY 0x5600
#define LINUX_VT_GETMODE 0x5601
#define LINUX_VT_SETMODE 0x5602
#define LINUX_VT_GETSTATE 0x5603
#define LINUX_VT_ACTIVATE 0x5606
#define LINUX_VT_WAITACTIVE 0x5607
/* arguments for tcflush() and LINUX_TCFLSH */
#define LINUX_TCIFLUSH 0

View File

@ -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.21 1997/11/06 19:28:55 phk Exp $
* $Id: linux_ioctl.c,v 1.22 1997/11/17 04:00:32 ahasty Exp $
*/
#include <sys/param.h>
@ -44,6 +44,7 @@
#include <sys/sockio.h>
#include <machine/soundcard.h>
#include <machine/console.h>
#include <i386/linux/linux.h>
#include <i386/linux/linux_proto.h>
@ -836,6 +837,58 @@ linux_ioctl(struct proc *p, struct linux_ioctl_args *args)
}
return ioctl(p, (struct ioctl_args *)args);
case LINUX_VT_OPENQRY:
args->cmd = VT_OPENQRY;
return ioctl(p, (struct ioctl_args *)args);
case LINUX_VT_GETMODE:
args->cmd = VT_GETMODE;
return ioctl(p, (struct ioctl_args *)args);
case LINUX_VT_SETMODE:
args->cmd = VT_SETMODE;
return ioctl(p, (struct ioctl_args *)args);
case LINUX_VT_GETSTATE:
args->cmd = VT_GETACTIVE;
return ioctl(p, (struct ioctl_args *)args);
case LINUX_VT_ACTIVATE:
args->cmd = VT_ACTIVATE;
return ioctl(p, (struct ioctl_args *)args);
case LINUX_VT_WAITACTIVE:
args->cmd = VT_WAITACTIVE;
return ioctl(p, (struct ioctl_args *)args);
case LINUX_KDGKBMODE:
args->cmd = KDGKBMODE;
return ioctl(p, (struct ioctl_args *)args);
case LINUX_KDSKBMODE:
{
int kbdmode;
switch (args->arg) {
case LINUX_KBD_RAW:
kbdmode = K_RAW;
return (*func)(fp, KDSKBMODE, (caddr_t)&kbdmode, p);
case LINUX_KBD_XLATE:
kbdmode = K_XLATE;
return (*func)(fp, KDSKBMODE , (caddr_t)&kbdmode, p);
case LINUX_KBD_MEDIUMRAW:
kbdmode = K_RAW;
return (*func)(fp, KDSKBMODE , (caddr_t)&kbdmode, p);
default:
return EINVAL;
}
}
}
uprintf("LINUX: 'ioctl' fd=%d, typ=0x%x(%c), num=0x%x not implemented\n",
args->fd, (args->cmd&0xffff00)>>8,

View File

@ -167,6 +167,14 @@ struct trapframe;
#define LINUX_SIG_UNBLOCK 1
#define LINUX_SIG_SETMASK 2
/* keyboard defines */
#define LINUX_KDGKBMODE 0x4B44
#define LINUX_KDSKBMODE 0x4B45
#define LINUX_KBD_RAW 0
#define LINUX_KBD_XLATE 1
#define LINUX_KBD_MEDIUMRAW 2
/* termio commands */
#define LINUX_TCGETS 0x5401
#define LINUX_TCSETS 0x5402
@ -215,6 +223,14 @@ struct trapframe;
#define LINUX_TIOCSERSWILD 0x5455
#define LINUX_TIOCGLCKTRMIOS 0x5456
#define LINUX_TIOCSLCKTRMIOS 0x5457
#define LINUX_VT_OPENQRY 0x5600
#define LINUX_VT_GETMODE 0x5601
#define LINUX_VT_SETMODE 0x5602
#define LINUX_VT_GETSTATE 0x5603
#define LINUX_VT_ACTIVATE 0x5606
#define LINUX_VT_WAITACTIVE 0x5607
/* arguments for tcflush() and LINUX_TCFLSH */
#define LINUX_TCIFLUSH 0

View File

@ -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.21 1997/11/06 19:28:55 phk Exp $
* $Id: linux_ioctl.c,v 1.22 1997/11/17 04:00:32 ahasty Exp $
*/
#include <sys/param.h>
@ -44,6 +44,7 @@
#include <sys/sockio.h>
#include <machine/soundcard.h>
#include <machine/console.h>
#include <i386/linux/linux.h>
#include <i386/linux/linux_proto.h>
@ -836,6 +837,58 @@ linux_ioctl(struct proc *p, struct linux_ioctl_args *args)
}
return ioctl(p, (struct ioctl_args *)args);
case LINUX_VT_OPENQRY:
args->cmd = VT_OPENQRY;
return ioctl(p, (struct ioctl_args *)args);
case LINUX_VT_GETMODE:
args->cmd = VT_GETMODE;
return ioctl(p, (struct ioctl_args *)args);
case LINUX_VT_SETMODE:
args->cmd = VT_SETMODE;
return ioctl(p, (struct ioctl_args *)args);
case LINUX_VT_GETSTATE:
args->cmd = VT_GETACTIVE;
return ioctl(p, (struct ioctl_args *)args);
case LINUX_VT_ACTIVATE:
args->cmd = VT_ACTIVATE;
return ioctl(p, (struct ioctl_args *)args);
case LINUX_VT_WAITACTIVE:
args->cmd = VT_WAITACTIVE;
return ioctl(p, (struct ioctl_args *)args);
case LINUX_KDGKBMODE:
args->cmd = KDGKBMODE;
return ioctl(p, (struct ioctl_args *)args);
case LINUX_KDSKBMODE:
{
int kbdmode;
switch (args->arg) {
case LINUX_KBD_RAW:
kbdmode = K_RAW;
return (*func)(fp, KDSKBMODE, (caddr_t)&kbdmode, p);
case LINUX_KBD_XLATE:
kbdmode = K_XLATE;
return (*func)(fp, KDSKBMODE , (caddr_t)&kbdmode, p);
case LINUX_KBD_MEDIUMRAW:
kbdmode = K_RAW;
return (*func)(fp, KDSKBMODE , (caddr_t)&kbdmode, p);
default:
return EINVAL;
}
}
}
uprintf("LINUX: 'ioctl' fd=%d, typ=0x%x(%c), num=0x%x not implemented\n",
args->fd, (args->cmd&0xffff00)>>8,