summaryrefslogtreecommitdiffstats
path: root/sys/dev/syscons
diff options
context:
space:
mode:
authoremax <emax@FreeBSD.org>2005-07-13 23:58:57 +0000
committeremax <emax@FreeBSD.org>2005-07-13 23:58:57 +0000
commitd48616b5a759cc8eca7d3cac8b37e3e0d383662d (patch)
tree6d2a37162c3c680337538d594955c3a7c0e843d4 /sys/dev/syscons
parentfbc6f8c90bc866966059aaea49d9b5e8e06fcddb (diff)
downloadFreeBSD-src-d48616b5a759cc8eca7d3cac8b37e3e0d383662d.zip
FreeBSD-src-d48616b5a759cc8eca7d3cac8b37e3e0d383662d.tar.gz
kbdmux(4) keyboard multiplexer integration
o Add two new ioctl's KBADDKBD and KBRELKBD. These are used to add and remove keyboard to (and from) kbdmux(4) keyboard multiplexer; o Introduce new kbd_find_keyboard2() function. It does exactly the same job as kbd_find_keyboard() function except it allows to specify starting index. This function can be used to iterate over keyboards array; o Re-implement kbd_find_keyboard() as call to kbd_find_keyboard2() with starting index of zero; o Make sure syscons(4) passed KBADDKBD and KBRELKBD ioctl's onto currently active keyboard. These changes should not have any visible effect. MFC after: 1 week
Diffstat (limited to 'sys/dev/syscons')
-rw-r--r--sys/dev/syscons/syscons.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c
index 238c83f..8daca00 100644
--- a/sys/dev/syscons/syscons.c
+++ b/sys/dev/syscons/syscons.c
@@ -1164,6 +1164,13 @@ scioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag, struct thread *td)
*(int *)data = scp->status & LED_MASK;
return 0;
+ case KBADDKBD: /* add/remove keyboard to/from mux */
+ case KBRELKBD:
+ error = kbd_ioctl(sc->kbd, cmd, data);
+ if (error == ENOIOCTL)
+ error = ENODEV;
+ return error;
+
case CONS_SETKBD: /* set the new keyboard */
{
keyboard_t *newkbd;
OpenPOWER on IntegriCloud