• Home
  • Raw
  • Download

Lines Matching refs:s

125     PS2State *s = (PS2State *)opaque;  in ps2_queue()  local
126 PS2Queue *q = &s->queue; in ps2_queue()
134 s->update_irq(s->update_arg, 1); in ps2_queue()
144 PS2KbdState *s = opaque; in ps2_put_keycode() local
147 if (!s->translate && keycode < 0xe0 && s->scancode_set == 2) in ps2_put_keycode()
150 ps2_queue(&s->common, 0xf0); in ps2_put_keycode()
153 ps2_queue(&s->common, keycode); in ps2_put_keycode()
158 PS2State *s = (PS2State *)opaque; in ps2_read_data() local
162 q = &s->queue; in ps2_read_data()
177 s->update_irq(s->update_arg, 0); in ps2_read_data()
179 s->update_irq(s->update_arg, q->count != 0); in ps2_read_data()
184 static void ps2_reset_keyboard(PS2KbdState *s) in ps2_reset_keyboard() argument
186 s->scan_enabled = 1; in ps2_reset_keyboard()
187 s->scancode_set = 2; in ps2_reset_keyboard()
192 PS2KbdState *s = (PS2KbdState *)opaque; in ps2_write_keyboard() local
194 switch(s->common.write_cmd) { in ps2_write_keyboard()
199 ps2_queue(&s->common, KBD_REPLY_ACK); in ps2_write_keyboard()
202 ps2_queue(&s->common, KBD_REPLY_RESEND); in ps2_write_keyboard()
205 ps2_queue(&s->common, KBD_REPLY_ACK); in ps2_write_keyboard()
207 ps2_queue(&s->common, KBD_REPLY_ID); in ps2_write_keyboard()
208 if (s->translate) in ps2_write_keyboard()
209 ps2_queue(&s->common, 0x41); in ps2_write_keyboard()
211 ps2_queue(&s->common, 0x83); in ps2_write_keyboard()
214 ps2_queue(&s->common, KBD_CMD_ECHO); in ps2_write_keyboard()
217 s->scan_enabled = 1; in ps2_write_keyboard()
218 ps2_queue(&s->common, KBD_REPLY_ACK); in ps2_write_keyboard()
223 s->common.write_cmd = val; in ps2_write_keyboard()
224 ps2_queue(&s->common, KBD_REPLY_ACK); in ps2_write_keyboard()
227 ps2_reset_keyboard(s); in ps2_write_keyboard()
228 s->scan_enabled = 0; in ps2_write_keyboard()
229 ps2_queue(&s->common, KBD_REPLY_ACK); in ps2_write_keyboard()
232 ps2_reset_keyboard(s); in ps2_write_keyboard()
233 s->scan_enabled = 1; in ps2_write_keyboard()
234 ps2_queue(&s->common, KBD_REPLY_ACK); in ps2_write_keyboard()
237 ps2_reset_keyboard(s); in ps2_write_keyboard()
238 ps2_queue(&s->common, KBD_REPLY_ACK); in ps2_write_keyboard()
239 ps2_queue(&s->common, KBD_REPLY_POR); in ps2_write_keyboard()
242 ps2_queue(&s->common, KBD_REPLY_ACK); in ps2_write_keyboard()
248 if (s->scancode_set == 1) in ps2_write_keyboard()
249 ps2_put_keycode(s, 0x43); in ps2_write_keyboard()
250 else if (s->scancode_set == 2) in ps2_write_keyboard()
251 ps2_put_keycode(s, 0x41); in ps2_write_keyboard()
252 else if (s->scancode_set == 3) in ps2_write_keyboard()
253 ps2_put_keycode(s, 0x3f); in ps2_write_keyboard()
256 s->scancode_set = val; in ps2_write_keyboard()
257 ps2_queue(&s->common, KBD_REPLY_ACK); in ps2_write_keyboard()
259 s->common.write_cmd = -1; in ps2_write_keyboard()
262 ps2_queue(&s->common, KBD_REPLY_ACK); in ps2_write_keyboard()
263 s->common.write_cmd = -1; in ps2_write_keyboard()
266 ps2_queue(&s->common, KBD_REPLY_ACK); in ps2_write_keyboard()
267 s->common.write_cmd = -1; in ps2_write_keyboard()
278 PS2KbdState *s = (PS2KbdState *)opaque; in ps2_keyboard_set_translation() local
279 s->translate = mode; in ps2_keyboard_set_translation()
282 static void ps2_mouse_send_packet(PS2MouseState *s) in ps2_mouse_send_packet() argument
287 dx1 = s->mouse_dx; in ps2_mouse_send_packet()
288 dy1 = s->mouse_dy; in ps2_mouse_send_packet()
289 dz1 = s->mouse_dz; in ps2_mouse_send_packet()
299 b = 0x08 | ((dx1 < 0) << 4) | ((dy1 < 0) << 5) | (s->mouse_buttons & 0x07); in ps2_mouse_send_packet()
300 ps2_queue(&s->common, b); in ps2_mouse_send_packet()
301 ps2_queue(&s->common, dx1 & 0xff); in ps2_mouse_send_packet()
302 ps2_queue(&s->common, dy1 & 0xff); in ps2_mouse_send_packet()
304 switch(s->mouse_type) { in ps2_mouse_send_packet()
312 ps2_queue(&s->common, dz1 & 0xff); in ps2_mouse_send_packet()
319 b = (dz1 & 0x0f) | ((s->mouse_buttons & 0x18) << 1); in ps2_mouse_send_packet()
320 ps2_queue(&s->common, b); in ps2_mouse_send_packet()
325 s->mouse_dx -= dx1; in ps2_mouse_send_packet()
326 s->mouse_dy -= dy1; in ps2_mouse_send_packet()
327 s->mouse_dz -= dz1; in ps2_mouse_send_packet()
333 PS2MouseState *s = opaque; in ps2_mouse_event() local
336 if (!(s->mouse_status & MOUSE_STATUS_ENABLED)) in ps2_mouse_event()
339 s->mouse_dx += dx; in ps2_mouse_event()
340 s->mouse_dy -= dy; in ps2_mouse_event()
341 s->mouse_dz += dz; in ps2_mouse_event()
343 if (s->mouse_dx == 0 && s->mouse_dy == 0 && s->mouse_dz == 0 && in ps2_mouse_event()
344 s->mouse_buttons == buttons_state) in ps2_mouse_event()
346 s->mouse_buttons = buttons_state; in ps2_mouse_event()
348 if (!(s->mouse_status & MOUSE_STATUS_REMOTE) && in ps2_mouse_event()
349 (s->common.queue.count < (PS2_QUEUE_SIZE - 16))) { in ps2_mouse_event()
353 ps2_mouse_send_packet(s); in ps2_mouse_event()
354 if (s->mouse_dx == 0 && s->mouse_dy == 0 && s->mouse_dz == 0) in ps2_mouse_event()
367 PS2MouseState *s = (PS2MouseState *)opaque; in ps2_write_mouse() local
371 switch(s->common.write_cmd) { in ps2_write_mouse()
375 if (s->mouse_wrap) { in ps2_write_mouse()
377 s->mouse_wrap = 0; in ps2_write_mouse()
378 ps2_queue(&s->common, AUX_ACK); in ps2_write_mouse()
381 ps2_queue(&s->common, val); in ps2_write_mouse()
387 s->mouse_status &= ~MOUSE_STATUS_SCALE21; in ps2_write_mouse()
388 ps2_queue(&s->common, AUX_ACK); in ps2_write_mouse()
391 s->mouse_status |= MOUSE_STATUS_SCALE21; in ps2_write_mouse()
392 ps2_queue(&s->common, AUX_ACK); in ps2_write_mouse()
395 s->mouse_status &= ~MOUSE_STATUS_REMOTE; in ps2_write_mouse()
396 ps2_queue(&s->common, AUX_ACK); in ps2_write_mouse()
399 s->mouse_wrap = 1; in ps2_write_mouse()
400 ps2_queue(&s->common, AUX_ACK); in ps2_write_mouse()
403 s->mouse_status |= MOUSE_STATUS_REMOTE; in ps2_write_mouse()
404 ps2_queue(&s->common, AUX_ACK); in ps2_write_mouse()
407 ps2_queue(&s->common, AUX_ACK); in ps2_write_mouse()
408 ps2_queue(&s->common, s->mouse_type); in ps2_write_mouse()
412 s->common.write_cmd = val; in ps2_write_mouse()
413 ps2_queue(&s->common, AUX_ACK); in ps2_write_mouse()
416 ps2_queue(&s->common, AUX_ACK); in ps2_write_mouse()
417 ps2_queue(&s->common, s->mouse_status); in ps2_write_mouse()
418 ps2_queue(&s->common, s->mouse_resolution); in ps2_write_mouse()
419 ps2_queue(&s->common, s->mouse_sample_rate); in ps2_write_mouse()
422 ps2_queue(&s->common, AUX_ACK); in ps2_write_mouse()
423 ps2_mouse_send_packet(s); in ps2_write_mouse()
426 s->mouse_status |= MOUSE_STATUS_ENABLED; in ps2_write_mouse()
427 ps2_queue(&s->common, AUX_ACK); in ps2_write_mouse()
430 s->mouse_status &= ~MOUSE_STATUS_ENABLED; in ps2_write_mouse()
431 ps2_queue(&s->common, AUX_ACK); in ps2_write_mouse()
434 s->mouse_sample_rate = 100; in ps2_write_mouse()
435 s->mouse_resolution = 2; in ps2_write_mouse()
436 s->mouse_status = 0; in ps2_write_mouse()
437 ps2_queue(&s->common, AUX_ACK); in ps2_write_mouse()
440 s->mouse_sample_rate = 100; in ps2_write_mouse()
441 s->mouse_resolution = 2; in ps2_write_mouse()
442 s->mouse_status = 0; in ps2_write_mouse()
443 s->mouse_type = 0; in ps2_write_mouse()
444 ps2_queue(&s->common, AUX_ACK); in ps2_write_mouse()
445 ps2_queue(&s->common, 0xaa); in ps2_write_mouse()
446 ps2_queue(&s->common, s->mouse_type); in ps2_write_mouse()
453 s->mouse_sample_rate = val; in ps2_write_mouse()
455 switch(s->mouse_detect_state) { in ps2_write_mouse()
459 s->mouse_detect_state = 1; in ps2_write_mouse()
463 s->mouse_detect_state = 2; in ps2_write_mouse()
465 s->mouse_detect_state = 3; in ps2_write_mouse()
467 s->mouse_detect_state = 0; in ps2_write_mouse()
471 s->mouse_type = 3; /* IMPS/2 */ in ps2_write_mouse()
472 s->mouse_detect_state = 0; in ps2_write_mouse()
476 s->mouse_type = 4; /* IMEX */ in ps2_write_mouse()
477 s->mouse_detect_state = 0; in ps2_write_mouse()
480 ps2_queue(&s->common, AUX_ACK); in ps2_write_mouse()
481 s->common.write_cmd = -1; in ps2_write_mouse()
484 s->mouse_resolution = val; in ps2_write_mouse()
485 ps2_queue(&s->common, AUX_ACK); in ps2_write_mouse()
486 s->common.write_cmd = -1; in ps2_write_mouse()
493 PS2State *s = (PS2State *)opaque; in ps2_reset() local
495 s->write_cmd = -1; in ps2_reset()
496 q = &s->queue; in ps2_reset()
500 s->update_irq(s->update_arg, 0); in ps2_reset()
503 static void ps2_common_save (QEMUFile *f, PS2State *s) in ps2_common_save() argument
505 qemu_put_be32 (f, s->write_cmd); in ps2_common_save()
506 qemu_put_be32 (f, s->queue.rptr); in ps2_common_save()
507 qemu_put_be32 (f, s->queue.wptr); in ps2_common_save()
508 qemu_put_be32 (f, s->queue.count); in ps2_common_save()
509 qemu_put_buffer (f, s->queue.data, sizeof (s->queue.data)); in ps2_common_save()
512 static void ps2_common_load (QEMUFile *f, PS2State *s) in ps2_common_load() argument
514 s->write_cmd=qemu_get_be32 (f); in ps2_common_load()
515 s->queue.rptr=qemu_get_be32 (f); in ps2_common_load()
516 s->queue.wptr=qemu_get_be32 (f); in ps2_common_load()
517 s->queue.count=qemu_get_be32 (f); in ps2_common_load()
518 qemu_get_buffer (f, s->queue.data, sizeof (s->queue.data)); in ps2_common_load()
523 PS2KbdState *s = (PS2KbdState*)opaque; in ps2_kbd_save() local
525 ps2_common_save (f, &s->common); in ps2_kbd_save()
526 qemu_put_be32(f, s->scan_enabled); in ps2_kbd_save()
527 qemu_put_be32(f, s->translate); in ps2_kbd_save()
528 qemu_put_be32(f, s->scancode_set); in ps2_kbd_save()
533 PS2MouseState *s = (PS2MouseState*)opaque; in ps2_mouse_save() local
535 ps2_common_save (f, &s->common); in ps2_mouse_save()
536 qemu_put_8s(f, &s->mouse_status); in ps2_mouse_save()
537 qemu_put_8s(f, &s->mouse_resolution); in ps2_mouse_save()
538 qemu_put_8s(f, &s->mouse_sample_rate); in ps2_mouse_save()
539 qemu_put_8s(f, &s->mouse_wrap); in ps2_mouse_save()
540 qemu_put_8s(f, &s->mouse_type); in ps2_mouse_save()
541 qemu_put_8s(f, &s->mouse_detect_state); in ps2_mouse_save()
542 qemu_put_be32(f, s->mouse_dx); in ps2_mouse_save()
543 qemu_put_be32(f, s->mouse_dy); in ps2_mouse_save()
544 qemu_put_be32(f, s->mouse_dz); in ps2_mouse_save()
545 qemu_put_8s(f, &s->mouse_buttons); in ps2_mouse_save()
550 PS2KbdState *s = (PS2KbdState*)opaque; in ps2_kbd_load() local
555 ps2_common_load (f, &s->common); in ps2_kbd_load()
556 s->scan_enabled=qemu_get_be32(f); in ps2_kbd_load()
557 s->translate=qemu_get_be32(f); in ps2_kbd_load()
559 s->scancode_set=qemu_get_be32(f); in ps2_kbd_load()
561 s->scancode_set=2; in ps2_kbd_load()
567 PS2MouseState *s = (PS2MouseState*)opaque; in ps2_mouse_load() local
572 ps2_common_load (f, &s->common); in ps2_mouse_load()
573 qemu_get_8s(f, &s->mouse_status); in ps2_mouse_load()
574 qemu_get_8s(f, &s->mouse_resolution); in ps2_mouse_load()
575 qemu_get_8s(f, &s->mouse_sample_rate); in ps2_mouse_load()
576 qemu_get_8s(f, &s->mouse_wrap); in ps2_mouse_load()
577 qemu_get_8s(f, &s->mouse_type); in ps2_mouse_load()
578 qemu_get_8s(f, &s->mouse_detect_state); in ps2_mouse_load()
579 s->mouse_dx=qemu_get_be32(f); in ps2_mouse_load()
580 s->mouse_dy=qemu_get_be32(f); in ps2_mouse_load()
581 s->mouse_dz=qemu_get_be32(f); in ps2_mouse_load()
582 qemu_get_8s(f, &s->mouse_buttons); in ps2_mouse_load()
588 PS2KbdState *s = (PS2KbdState *)qemu_mallocz(sizeof(PS2KbdState)); in ps2_kbd_init() local
590 s->common.update_irq = update_irq; in ps2_kbd_init()
591 s->common.update_arg = update_arg; in ps2_kbd_init()
592 s->scancode_set = 2; in ps2_kbd_init()
593 ps2_reset(&s->common); in ps2_kbd_init()
594 register_savevm("ps2kbd", 0, 3, ps2_kbd_save, ps2_kbd_load, s); in ps2_kbd_init()
596 qemu_register_reset(ps2_reset, 0, &s->common); in ps2_kbd_init()
597 return s; in ps2_kbd_init()
602 PS2MouseState *s = (PS2MouseState *)qemu_mallocz(sizeof(PS2MouseState)); in ps2_mouse_init() local
604 s->common.update_irq = update_irq; in ps2_mouse_init()
605 s->common.update_arg = update_arg; in ps2_mouse_init()
606 ps2_reset(&s->common); in ps2_mouse_init()
607 register_savevm("ps2mouse", 0, 2, ps2_mouse_save, ps2_mouse_load, s); in ps2_mouse_init()
609 qemu_register_reset(ps2_reset, 0, &s->common); in ps2_mouse_init()
610 return s; in ps2_mouse_init()