| 248 |
return olen; |
return olen; |
| 249 |
} |
} |
| 250 |
|
|
| 251 |
|
static int adb_kbd_reset(ADBDevice *d) |
| 252 |
|
{ |
| 253 |
|
KBDState *s = d->opaque; |
| 254 |
|
|
| 255 |
|
d->handler = 1; |
| 256 |
|
d->devaddr = ADB_KEYBOARD; |
| 257 |
|
memset(s, 0, sizeof(KBDState)); |
| 258 |
|
|
| 259 |
|
return 0; |
| 260 |
|
} |
| 261 |
|
|
| 262 |
void adb_kbd_init(ADBBusState *bus) |
void adb_kbd_init(ADBBusState *bus) |
| 263 |
{ |
{ |
| 264 |
ADBDevice *d; |
ADBDevice *d; |
| 265 |
KBDState *s; |
KBDState *s; |
| 266 |
s = qemu_mallocz(sizeof(KBDState)); |
s = qemu_mallocz(sizeof(KBDState)); |
| 267 |
d = adb_register_device(bus, ADB_KEYBOARD, adb_kbd_request, NULL, s); |
d = adb_register_device(bus, ADB_KEYBOARD, adb_kbd_request, |
| 268 |
d->handler = 1; |
adb_kbd_reset, s); |
| 269 |
|
adb_kbd_reset(d); |
| 270 |
qemu_add_kbd_event_handler(adb_kbd_put_keycode, d); |
qemu_add_kbd_event_handler(adb_kbd_put_keycode, d); |
| 271 |
} |
} |
| 272 |
|
|
| 386 |
return olen; |
return olen; |
| 387 |
} |
} |
| 388 |
|
|
| 389 |
|
static int adb_mouse_reset(ADBDevice *d) |
| 390 |
|
{ |
| 391 |
|
MouseState *s = d->opaque; |
| 392 |
|
|
| 393 |
|
d->handler = 2; |
| 394 |
|
d->devaddr = ADB_MOUSE; |
| 395 |
|
memset(s, 0, sizeof(MouseState)); |
| 396 |
|
|
| 397 |
|
return 0; |
| 398 |
|
} |
| 399 |
|
|
| 400 |
void adb_mouse_init(ADBBusState *bus) |
void adb_mouse_init(ADBBusState *bus) |
| 401 |
{ |
{ |
| 402 |
ADBDevice *d; |
ADBDevice *d; |
| 403 |
MouseState *s; |
MouseState *s; |
| 404 |
|
|
| 405 |
s = qemu_mallocz(sizeof(MouseState)); |
s = qemu_mallocz(sizeof(MouseState)); |
| 406 |
d = adb_register_device(bus, ADB_MOUSE, adb_mouse_request, NULL, s); |
d = adb_register_device(bus, ADB_MOUSE, adb_mouse_request, |
| 407 |
d->handler = 2; |
adb_mouse_reset, s); |
| 408 |
|
adb_mouse_reset(d); |
| 409 |
qemu_add_mouse_event_handler(adb_mouse_event, d); |
qemu_add_mouse_event_handler(adb_mouse_event, d); |
| 410 |
} |
} |