27 |
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
28 |
|
* SUCH DAMAGE. |
29 |
|
* |
30 |
< |
* $Id: vkbd.c,v 1.2 2007-01-06 18:52:52 laffer1 Exp $ |
31 |
< |
* $FreeBSD: src/sys/dev/vkbd/vkbd.c,v 1.7.2.3 2006/02/28 02:37:47 emax Exp $ |
30 |
> |
* $Id: vkbd.c,v 1.3 2008-11-18 18:40:19 laffer1 Exp $ |
31 |
> |
* $FreeBSD: src/sys/dev/vkbd/vkbd.c,v 1.11 2006/09/27 19:57:00 ru Exp $ |
32 |
|
*/ |
33 |
|
|
34 |
+ |
#include "opt_compat.h" |
35 |
|
#include "opt_kbd.h" |
36 |
|
|
37 |
|
#include <sys/param.h> |
1093 |
|
{ |
1094 |
|
vkbd_state_t *state = (vkbd_state_t *) kbd->kb_data; |
1095 |
|
int i; |
1096 |
+ |
#ifdef COMPAT_FREEBSD6 |
1097 |
+ |
int ival; |
1098 |
+ |
#endif |
1099 |
|
|
1100 |
|
VKBD_LOCK(state); |
1101 |
|
|
1104 |
|
*(int *)arg = state->ks_mode; |
1105 |
|
break; |
1106 |
|
|
1107 |
+ |
#ifdef COMPAT_FREEBSD6 |
1108 |
+ |
case _IO('K', 7): |
1109 |
+ |
ival = IOCPARM_IVAL(arg); |
1110 |
+ |
arg = (caddr_t)&ival; |
1111 |
+ |
/* FALLTHROUGH */ |
1112 |
+ |
#endif |
1113 |
|
case KDSKBMODE: /* set keyboard mode */ |
1114 |
|
switch (*(int *)arg) { |
1115 |
|
case K_XLATE: |
1140 |
|
*(int *)arg = KBD_LED_VAL(kbd); |
1141 |
|
break; |
1142 |
|
|
1143 |
+ |
#ifdef COMPAT_FREEBSD6 |
1144 |
+ |
case _IO('K', 66): |
1145 |
+ |
ival = IOCPARM_IVAL(arg); |
1146 |
+ |
arg = (caddr_t)&ival; |
1147 |
+ |
/* FALLTHROUGH */ |
1148 |
+ |
#endif |
1149 |
|
case KDSETLED: /* set keyboard LED */ |
1150 |
|
/* NOTE: lock key state in ks_state won't be changed */ |
1151 |
|
if (*(int *)arg & ~LOCK_MASK) { |
1171 |
|
*(int *)arg = state->ks_state & LOCK_MASK; |
1172 |
|
break; |
1173 |
|
|
1174 |
+ |
#ifdef COMPAT_FREEBSD6 |
1175 |
+ |
case _IO('K', 20): |
1176 |
+ |
ival = IOCPARM_IVAL(arg); |
1177 |
+ |
arg = (caddr_t)&ival; |
1178 |
+ |
/* FALLTHROUGH */ |
1179 |
+ |
#endif |
1180 |
|
case KDSKBSTATE: /* set lock key state */ |
1181 |
|
if (*(int *)arg & ~LOCK_MASK) { |
1182 |
|
VKBD_UNLOCK(state); |
1196 |
|
vkbd_status_changed(state); |
1197 |
|
break; |
1198 |
|
|
1199 |
+ |
#ifdef COMPAT_FREEBSD6 |
1200 |
+ |
case _IO('K', 67): |
1201 |
+ |
ival = IOCPARM_IVAL(arg); |
1202 |
+ |
arg = (caddr_t)&ival; |
1203 |
+ |
/* FALLTHROUGH */ |
1204 |
+ |
#endif |
1205 |
|
case KDSETRAD: /* set keyboard repeat rate (old interface) */ |
1206 |
|
kbd->kb_delay1 = typematic_delay(*(int *)arg); |
1207 |
|
kbd->kb_delay2 = typematic_rate(*(int *)arg); |