Deleted Added
full compact
uart_kbd_sun.c (162424) uart_kbd_sun.c (162711)
1/*-
2 * Copyright (c) 2003 Jake Burkholder.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 11 unchanged lines hidden (view full) ---

20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 2003 Jake Burkholder.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 11 unchanged lines hidden (view full) ---

20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
28__FBSDID("$FreeBSD: head/sys/dev/uart/uart_kbd_sun.c 162424 2006-09-18 22:56:59Z emax $");
28__FBSDID("$FreeBSD: head/sys/dev/uart/uart_kbd_sun.c 162711 2006-09-27 19:57:02Z ru $");
29
29
30#include "opt_compat.h"
30#include "opt_kbd.h"
31
32#include <sys/param.h>
33#include <sys/systm.h>
34#include <sys/bus.h>
35#include <sys/interrupt.h>
36#include <sys/kbio.h>
37#include <sys/kernel.h>

--- 382 unchanged lines hidden (view full) ---

420 return (0);
421}
422
423static int
424sunkbd_ioctl(keyboard_t *kbd, u_long cmd, caddr_t data)
425{
426 struct sunkbd_softc *sc;
427 int error;
31#include "opt_kbd.h"
32
33#include <sys/param.h>
34#include <sys/systm.h>
35#include <sys/bus.h>
36#include <sys/interrupt.h>
37#include <sys/kbio.h>
38#include <sys/kernel.h>

--- 382 unchanged lines hidden (view full) ---

421 return (0);
422}
423
424static int
425sunkbd_ioctl(keyboard_t *kbd, u_long cmd, caddr_t data)
426{
427 struct sunkbd_softc *sc;
428 int error;
429#if defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD5)
430 int ival;
431#endif
428
429 sc = (struct sunkbd_softc *)kbd;
430 error = 0;
431 switch (cmd) {
432 case KDGKBMODE:
433 *(int *)data = sc->sc_mode;
434 break;
432
433 sc = (struct sunkbd_softc *)kbd;
434 error = 0;
435 switch (cmd) {
436 case KDGKBMODE:
437 *(int *)data = sc->sc_mode;
438 break;
439#if defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD5)
440 case _IO('K', 7):
441 ival = IOCPARM_IVAL(data);
442 data = (caddr_t)&ival;
443 /* FALLTHROUGH */
444#endif
435 case KDSKBMODE:
436 switch (*(int *)data) {
437 case K_XLATE:
438 if (sc->sc_mode != K_XLATE) {
439 /* make lock key state and LED state match */
440 sc->sc_state &= ~LOCK_MASK;
441 sc->sc_state |= KBD_LED_VAL(kbd);
442 }

--- 8 unchanged lines hidden (view full) ---

451 default:
452 error = EINVAL;
453 break;
454 }
455 break;
456 case KDGETLED:
457 *(int *)data = KBD_LED_VAL(kbd);
458 break;
445 case KDSKBMODE:
446 switch (*(int *)data) {
447 case K_XLATE:
448 if (sc->sc_mode != K_XLATE) {
449 /* make lock key state and LED state match */
450 sc->sc_state &= ~LOCK_MASK;
451 sc->sc_state |= KBD_LED_VAL(kbd);
452 }

--- 8 unchanged lines hidden (view full) ---

461 default:
462 error = EINVAL;
463 break;
464 }
465 break;
466 case KDGETLED:
467 *(int *)data = KBD_LED_VAL(kbd);
468 break;
469#if defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD5)
470 case _IO('K', 66):
471 ival = IOCPARM_IVAL(data);
472 data = (caddr_t)&ival;
473 /* FALLTHROUGH */
474#endif
459 case KDSETLED:
460 if (*(int *)data & ~LOCK_MASK) {
461 error = EINVAL;
462 break;
463 }
464 if (sc->sc_uart == NULL)
465 break;
466 sc->sc_uart->sc_txdatasz = 2;

--- 6 unchanged lines hidden (view full) ---

473 if (*(int *)data & SLKED)
474 sc->sc_uart->sc_txbuf[1] |= SKBD_LED_SCROLLLOCK;
475 UART_TRANSMIT(sc->sc_uart);
476 KBD_LED_VAL(kbd) = *(int *)data;
477 break;
478 case KDGKBSTATE:
479 *(int *)data = sc->sc_state & LOCK_MASK;
480 break;
475 case KDSETLED:
476 if (*(int *)data & ~LOCK_MASK) {
477 error = EINVAL;
478 break;
479 }
480 if (sc->sc_uart == NULL)
481 break;
482 sc->sc_uart->sc_txdatasz = 2;

--- 6 unchanged lines hidden (view full) ---

489 if (*(int *)data & SLKED)
490 sc->sc_uart->sc_txbuf[1] |= SKBD_LED_SCROLLLOCK;
491 UART_TRANSMIT(sc->sc_uart);
492 KBD_LED_VAL(kbd) = *(int *)data;
493 break;
494 case KDGKBSTATE:
495 *(int *)data = sc->sc_state & LOCK_MASK;
496 break;
497#if defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD5)
498 case _IO('K', 20):
499 ival = IOCPARM_IVAL(data);
500 data = (caddr_t)&ival;
501 /* FALLTHROUGH */
502#endif
481 case KDSKBSTATE:
482 if (*(int *)data & ~LOCK_MASK) {
483 error = EINVAL;
484 break;
485 }
486 sc->sc_state &= ~LOCK_MASK;
487 sc->sc_state |= *(int *)data;
503 case KDSKBSTATE:
504 if (*(int *)data & ~LOCK_MASK) {
505 error = EINVAL;
506 break;
507 }
508 sc->sc_state &= ~LOCK_MASK;
509 sc->sc_state |= *(int *)data;
488 break;
510 /* set LEDs and quit */
511 return (sunkbd_ioctl(kbd, KDSETLED, data));
489 case KDSETREPEAT:
490 case KDSETRAD:
491 break;
492 case PIO_KEYMAP:
493 case PIO_KEYMAPENT:
494 case PIO_DEADKEYMAP:
495 default:
496 return (genkbd_commonioctl(kbd, cmd, data));

--- 63 unchanged lines hidden ---
512 case KDSETREPEAT:
513 case KDSETRAD:
514 break;
515 case PIO_KEYMAP:
516 case PIO_KEYMAPENT:
517 case PIO_DEADKEYMAP:
518 default:
519 return (genkbd_commonioctl(kbd, cmd, data));

--- 63 unchanged lines hidden ---