Commit 93342807901077d49c098b7b4d5897674d8c17c7
1 parent
591a6d62
Use the framework for the VMware mouse emulation, by Herve Poussineau.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3150 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
2 changed files
with
4 additions
and
15 deletions
hw/pc.c
| @@ -692,6 +692,7 @@ static void pc_init1(int ram_size, int vga_ram_size, int boot_device, | @@ -692,6 +692,7 @@ static void pc_init1(int ram_size, int vga_ram_size, int boot_device, | ||
| 692 | if (pci_enabled) { | 692 | if (pci_enabled) { |
| 693 | apic_init(env); | 693 | apic_init(env); |
| 694 | } | 694 | } |
| 695 | + vmport_init(env); | ||
| 695 | } | 696 | } |
| 696 | 697 | ||
| 697 | /* allocate RAM */ | 698 | /* allocate RAM */ |
hw/vmmouse.c
| @@ -39,7 +39,6 @@ | @@ -39,7 +39,6 @@ | ||
| 39 | 39 | ||
| 40 | #define VMMOUSE_QUEUE_SIZE 1024 | 40 | #define VMMOUSE_QUEUE_SIZE 1024 |
| 41 | 41 | ||
| 42 | -#define VMMOUSE_MAGIC 0x564D5868 | ||
| 43 | #define VMMOUSE_VERSION 0x3442554a | 42 | #define VMMOUSE_VERSION 0x3442554a |
| 44 | 43 | ||
| 45 | #ifdef DEBUG_VMMOUSE | 44 | #ifdef DEBUG_VMMOUSE |
| @@ -58,13 +57,6 @@ typedef struct _VMMouseState | @@ -58,13 +57,6 @@ typedef struct _VMMouseState | ||
| 58 | void *ps2_mouse; | 57 | void *ps2_mouse; |
| 59 | } VMMouseState; | 58 | } VMMouseState; |
| 60 | 59 | ||
| 61 | -static uint32_t vmmouse_get_version(VMMouseState *s, uint32_t *magic) | ||
| 62 | -{ | ||
| 63 | - DPRINTF("vmmouse_get_version(%x)\n", *magic); | ||
| 64 | - *magic = VMMOUSE_MAGIC; | ||
| 65 | - return VMMOUSE_VERSION; | ||
| 66 | -} | ||
| 67 | - | ||
| 68 | static uint32_t vmmouse_get_status(VMMouseState *s) | 60 | static uint32_t vmmouse_get_status(VMMouseState *s) |
| 69 | { | 61 | { |
| 70 | DPRINTF("vmmouse_get_status()\n"); | 62 | DPRINTF("vmmouse_get_status()\n"); |
| @@ -201,15 +193,10 @@ static uint32_t vmmouse_ioport_read(void *opaque, uint32_t addr) | @@ -201,15 +193,10 @@ static uint32_t vmmouse_ioport_read(void *opaque, uint32_t addr) | ||
| 201 | uint16_t command; | 193 | uint16_t command; |
| 202 | 194 | ||
| 203 | vmmouse_get_data(data); | 195 | vmmouse_get_data(data); |
| 204 | - if (data[0] != VMMOUSE_MAGIC) | ||
| 205 | - goto error; | ||
| 206 | 196 | ||
| 207 | command = data[2] & 0xFFFF; | 197 | command = data[2] & 0xFFFF; |
| 208 | 198 | ||
| 209 | switch (command) { | 199 | switch (command) { |
| 210 | - case VMMOUSE_GETVERSION: | ||
| 211 | - data[0] = vmmouse_get_version(s, &data[1]); | ||
| 212 | - break; | ||
| 213 | case VMMOUSE_STATUS: | 200 | case VMMOUSE_STATUS: |
| 214 | data[0] = vmmouse_get_status(s); | 201 | data[0] = vmmouse_get_status(s); |
| 215 | break; | 202 | break; |
| @@ -240,7 +227,6 @@ static uint32_t vmmouse_ioport_read(void *opaque, uint32_t addr) | @@ -240,7 +227,6 @@ static uint32_t vmmouse_ioport_read(void *opaque, uint32_t addr) | ||
| 240 | break; | 227 | break; |
| 241 | } | 228 | } |
| 242 | 229 | ||
| 243 | -error: | ||
| 244 | vmmouse_set_data(data); | 230 | vmmouse_set_data(data); |
| 245 | return data[0]; | 231 | return data[0]; |
| 246 | } | 232 | } |
| @@ -292,7 +278,9 @@ void *vmmouse_init(void *m) | @@ -292,7 +278,9 @@ void *vmmouse_init(void *m) | ||
| 292 | s->status = 0xffff; | 278 | s->status = 0xffff; |
| 293 | s->ps2_mouse = m; | 279 | s->ps2_mouse = m; |
| 294 | 280 | ||
| 295 | - register_ioport_read(0x5658, 1, 4, vmmouse_ioport_read, s); | 281 | + vmport_register(VMMOUSE_STATUS, vmmouse_ioport_read, s); |
| 282 | + vmport_register(VMMOUSE_COMMAND, vmmouse_ioport_read, s); | ||
| 283 | + vmport_register(VMMOUSE_DATA, vmmouse_ioport_read, s); | ||
| 296 | register_savevm("vmmouse", 0, 0, vmmouse_save, vmmouse_load, s); | 284 | register_savevm("vmmouse", 0, 0, vmmouse_save, vmmouse_load, s); |
| 297 | 285 | ||
| 298 | return s; | 286 | return s; |