提交 93342807 编写于 作者: T ths

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
上级 591a6d62
...@@ -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,
if (pci_enabled) { if (pci_enabled) {
apic_init(env); apic_init(env);
} }
vmport_init(env);
} }
/* allocate RAM */ /* allocate RAM */
......
...@@ -39,7 +39,6 @@ ...@@ -39,7 +39,6 @@
#define VMMOUSE_QUEUE_SIZE 1024 #define VMMOUSE_QUEUE_SIZE 1024
#define VMMOUSE_MAGIC 0x564D5868
#define VMMOUSE_VERSION 0x3442554a #define VMMOUSE_VERSION 0x3442554a
#ifdef DEBUG_VMMOUSE #ifdef DEBUG_VMMOUSE
...@@ -58,13 +57,6 @@ typedef struct _VMMouseState ...@@ -58,13 +57,6 @@ typedef struct _VMMouseState
void *ps2_mouse; void *ps2_mouse;
} VMMouseState; } VMMouseState;
static uint32_t vmmouse_get_version(VMMouseState *s, uint32_t *magic)
{
DPRINTF("vmmouse_get_version(%x)\n", *magic);
*magic = VMMOUSE_MAGIC;
return VMMOUSE_VERSION;
}
static uint32_t vmmouse_get_status(VMMouseState *s) static uint32_t vmmouse_get_status(VMMouseState *s)
{ {
DPRINTF("vmmouse_get_status()\n"); 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)
uint16_t command; uint16_t command;
vmmouse_get_data(data); vmmouse_get_data(data);
if (data[0] != VMMOUSE_MAGIC)
goto error;
command = data[2] & 0xFFFF; command = data[2] & 0xFFFF;
switch (command) { switch (command) {
case VMMOUSE_GETVERSION:
data[0] = vmmouse_get_version(s, &data[1]);
break;
case VMMOUSE_STATUS: case VMMOUSE_STATUS:
data[0] = vmmouse_get_status(s); data[0] = vmmouse_get_status(s);
break; 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)
break; break;
} }
error:
vmmouse_set_data(data); vmmouse_set_data(data);
return data[0]; return data[0];
} }
...@@ -292,7 +278,9 @@ void *vmmouse_init(void *m) ...@@ -292,7 +278,9 @@ void *vmmouse_init(void *m)
s->status = 0xffff; s->status = 0xffff;
s->ps2_mouse = m; s->ps2_mouse = m;
register_ioport_read(0x5658, 1, 4, vmmouse_ioport_read, s); vmport_register(VMMOUSE_STATUS, vmmouse_ioport_read, s);
vmport_register(VMMOUSE_COMMAND, vmmouse_ioport_read, s);
vmport_register(VMMOUSE_DATA, vmmouse_ioport_read, s);
register_savevm("vmmouse", 0, 0, vmmouse_save, vmmouse_load, s); register_savevm("vmmouse", 0, 0, vmmouse_save, vmmouse_load, s);
return s; return s;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册