Deleted Added
full compact
kbdmux.c (193752) kbdmux.c (213770)
1/*
2 * kbdmux.c
3 */
4
5/*-
6 * Copyright (c) 2005 Maksim Yevmenkin <m_evmenkin@yahoo.com>
7 * All rights reserved.
8 *

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

23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 * SUCH DAMAGE.
29 *
30 * $Id: kbdmux.c,v 1.4 2005/07/14 17:38:35 max Exp $
1/*
2 * kbdmux.c
3 */
4
5/*-
6 * Copyright (c) 2005 Maksim Yevmenkin <m_evmenkin@yahoo.com>
7 * All rights reserved.
8 *

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

23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 * SUCH DAMAGE.
29 *
30 * $Id: kbdmux.c,v 1.4 2005/07/14 17:38:35 max Exp $
31 * $FreeBSD: head/sys/dev/kbdmux/kbdmux.c 193752 2009-06-08 20:24:29Z ed $
31 * $FreeBSD: head/sys/dev/kbdmux/kbdmux.c 213770 2010-10-13 11:37:12Z rpaulo $
32 */
33
34#include "opt_compat.h"
35#include "opt_kbd.h"
36
37#include <sys/param.h>
38#include <sys/bus.h>
39#include <sys/conf.h>

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

1110
1111 return (EINVAL);
1112 }
1113
1114 KBD_LED_VAL(kbd) = *(int *)arg;
1115
1116 /* KDSETLED on all slave keyboards */
1117 SLIST_FOREACH(k, &state->ks_kbds, next)
32 */
33
34#include "opt_compat.h"
35#include "opt_kbd.h"
36
37#include <sys/param.h>
38#include <sys/bus.h>
39#include <sys/conf.h>

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

1110
1111 return (EINVAL);
1112 }
1113
1114 KBD_LED_VAL(kbd) = *(int *)arg;
1115
1116 /* KDSETLED on all slave keyboards */
1117 SLIST_FOREACH(k, &state->ks_kbds, next)
1118 kbdd_ioctl(k->kbd, KDSETLED, arg);
1118 (void)kbdd_ioctl(k->kbd, KDSETLED, arg);
1119
1120 KBDMUX_UNLOCK(state);
1121 break;
1122
1123 case KDGKBSTATE: /* get lock key state */
1124 KBDMUX_LOCK(state);
1125 *(int *)arg = state->ks_state & LOCK_MASK;
1126 KBDMUX_UNLOCK(state);

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

1141 return (EINVAL);
1142 }
1143
1144 state->ks_state &= ~LOCK_MASK;
1145 state->ks_state |= *(int *)arg;
1146
1147 /* KDSKBSTATE on all slave keyboards */
1148 SLIST_FOREACH(k, &state->ks_kbds, next)
1119
1120 KBDMUX_UNLOCK(state);
1121 break;
1122
1123 case KDGKBSTATE: /* get lock key state */
1124 KBDMUX_LOCK(state);
1125 *(int *)arg = state->ks_state & LOCK_MASK;
1126 KBDMUX_UNLOCK(state);

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

1141 return (EINVAL);
1142 }
1143
1144 state->ks_state &= ~LOCK_MASK;
1145 state->ks_state |= *(int *)arg;
1146
1147 /* KDSKBSTATE on all slave keyboards */
1148 SLIST_FOREACH(k, &state->ks_kbds, next)
1149 kbdd_ioctl(k->kbd, KDSKBSTATE, arg);
1149 (void)kbdd_ioctl(k->kbd, KDSKBSTATE, arg);
1150
1151 KBDMUX_UNLOCK(state);
1152
1153 return (kbdmux_ioctl(kbd, KDSETLED, arg));
1154 /* NOT REACHED */
1155
1156#ifdef COMPAT_FREEBSD6
1157 case _IO('K', 67):

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

1187 return (EINVAL);
1188 }
1189
1190 kbd->kb_delay1 = delays[(mode >> 5) & 3];
1191 kbd->kb_delay2 = rates[mode & 0x1f];
1192
1193 /* perform command on all slave keyboards */
1194 SLIST_FOREACH(k, &state->ks_kbds, next)
1150
1151 KBDMUX_UNLOCK(state);
1152
1153 return (kbdmux_ioctl(kbd, KDSETLED, arg));
1154 /* NOT REACHED */
1155
1156#ifdef COMPAT_FREEBSD6
1157 case _IO('K', 67):

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

1187 return (EINVAL);
1188 }
1189
1190 kbd->kb_delay1 = delays[(mode >> 5) & 3];
1191 kbd->kb_delay2 = rates[mode & 0x1f];
1192
1193 /* perform command on all slave keyboards */
1194 SLIST_FOREACH(k, &state->ks_kbds, next)
1195 kbdd_ioctl(k->kbd, cmd, arg);
1195 (void)kbdd_ioctl(k->kbd, cmd, arg);
1196
1197 KBDMUX_UNLOCK(state);
1198 break;
1199
1200 case PIO_KEYMAP: /* set keyboard translation table */
1201 case PIO_KEYMAPENT: /* set keyboard translation table entry */
1202 case PIO_DEADKEYMAP: /* set accent key translation table */
1203 KBDMUX_LOCK(state);
1204 state->ks_accents = 0;
1205
1206 /* perform command on all slave keyboards */
1207 SLIST_FOREACH(k, &state->ks_kbds, next)
1196
1197 KBDMUX_UNLOCK(state);
1198 break;
1199
1200 case PIO_KEYMAP: /* set keyboard translation table */
1201 case PIO_KEYMAPENT: /* set keyboard translation table entry */
1202 case PIO_DEADKEYMAP: /* set accent key translation table */
1203 KBDMUX_LOCK(state);
1204 state->ks_accents = 0;
1205
1206 /* perform command on all slave keyboards */
1207 SLIST_FOREACH(k, &state->ks_kbds, next)
1208 kbdd_ioctl(k->kbd, cmd, arg);
1208 (void)kbdd_ioctl(k->kbd, cmd, arg);
1209
1210 KBDMUX_UNLOCK(state);
1211 /* FALLTHROUGH */
1212
1213 default:
1214 error = genkbd_commonioctl(kbd, cmd, arg);
1215 break;
1216 }

--- 173 unchanged lines hidden ---
1209
1210 KBDMUX_UNLOCK(state);
1211 /* FALLTHROUGH */
1212
1213 default:
1214 error = genkbd_commonioctl(kbd, cmd, arg);
1215 break;
1216 }

--- 173 unchanged lines hidden ---