Changeset 27060 in vbox for trunk/src/VBox/Devices
- Timestamp:
- Mar 4, 2010 9:44:59 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 58377
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Input/DevPS2.cpp
r26925 r27060 797 797 kbd_mouse_send_packet(s, false); 798 798 } 799 800 /* Report a change in status down the driver chain */ 801 static void kbd_mouse_update_downstream_status(KBDState *pThis) 802 { 803 PPDMIMOUSECONNECTOR pDrv = pThis->Mouse.pDrv; 804 bool fEnabled = pThis->mouse_status & MOUSE_STATUS_ENABLED; 805 pDrv->pfnReportModes(pDrv, fEnabled, false); 806 } 799 807 #endif /* IN_RING3 */ 800 808 … … 804 812 LogRelFlowFunc(("kbd: write mouse 0x%02x\n", val)); 805 813 #endif 814 int rc = VINF_SUCCESS; 806 815 /* Flush the mouse command response queue. */ 807 816 s->mouse_command_queue.count = 0; … … 863 872 break; 864 873 case AUX_ENABLE_DEV: 874 #ifdef IN_RING3 875 LogRelFlowFunc(("Enabling mouse device\n")); 865 876 s->mouse_status |= MOUSE_STATUS_ENABLED; 866 877 kbd_queue(s, AUX_ACK, 1); 878 kbd_mouse_update_downstream_status(s); 879 #else 880 LogRelFlowFunc(("Enabling mouse device, R0 stub\n")); 881 rc = VINF_IOM_HC_IOPORT_WRITE; 882 #endif 867 883 break; 868 884 case AUX_DISABLE_DEV: 885 #ifdef IN_RING3 869 886 s->mouse_status &= ~MOUSE_STATUS_ENABLED; 870 887 kbd_queue(s, AUX_ACK, 1); … … 873 890 s->mouse_event_queue.rptr = 0; 874 891 s->mouse_event_queue.wptr = 0; 892 kbd_mouse_update_downstream_status(s); 893 #else 894 rc = VINF_IOM_HC_IOPORT_WRITE; 895 #endif 875 896 break; 876 897 case AUX_SET_DEFAULT: 898 #ifdef IN_RING3 877 899 s->mouse_sample_rate = 100; 878 900 s->mouse_resolution = 2; 879 901 s->mouse_status = 0; 880 902 kbd_queue(s, AUX_ACK, 1); 903 kbd_mouse_update_downstream_status(s); 904 #else 905 rc = VINF_IOM_HC_IOPORT_WRITE; 906 #endif 881 907 break; 882 908 case AUX_RESET: 909 #ifdef IN_RING3 883 910 s->mouse_sample_rate = 100; 884 911 s->mouse_resolution = 2; … … 892 919 s->mouse_event_queue.rptr = 0; 893 920 s->mouse_event_queue.wptr = 0; 921 kbd_mouse_update_downstream_status(s); 922 #else 923 rc = VINF_IOM_HC_IOPORT_WRITE; 924 #endif 894 925 break; 895 926 default: … … 975 1006 break; 976 1007 } 977 return VINF_SUCCESS;1008 return rc; 978 1009 } 979 1010 … … 1025 1056 break; 1026 1057 } 1027 s->write_cmd = 0; 1058 /** @todo this was unconditional before. That looks wrong to me, but I 1059 * just can't believe that no one would have noticed before... */ 1060 if (rc != VINF_IOM_HC_IOPORT_WRITE) 1061 s->write_cmd = 0; 1028 1062 return rc; 1029 1063 } … … 1047 1081 s->translate = 0; 1048 1082 s->scancode_set = 2; 1049 s->mouse_status = 0; 1083 if (s->mouse_status) 1084 { 1085 s->mouse_status = 0; 1086 kbd_mouse_update_downstream_status(s); 1087 } 1050 1088 s->mouse_resolution = 0; 1051 1089 s->mouse_sample_rate = 0;
Note:
See TracChangeset
for help on using the changeset viewer.