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:
parent
bd28588799
commit
7ebfc603cf
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=31730
@ -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
|
||||
|
@ -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,
|
||||
|
@ -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
|
||||
|
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user