aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>2007-08-26 17:46:38 +0000
committerths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>2007-08-26 17:46:38 +0000
commit93342807901077d49c098b7b4d5897674d8c17c7 (patch)
tree93040e3109fa95ea34130aad36ce269ffa0fa58f /hw
parent591a6d627995ce00b0db8d7360ad4032eeb77b9c (diff)
downloadqemu-93342807901077d49c098b7b4d5897674d8c17c7.zip
qemu-93342807901077d49c098b7b4d5897674d8c17c7.tar.gz
qemu-93342807901077d49c098b7b4d5897674d8c17c7.tar.bz2
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
Diffstat (limited to 'hw')
-rw-r--r--hw/pc.c1
-rw-r--r--hw/vmmouse.c18
2 files changed, 4 insertions, 15 deletions
diff --git a/hw/pc.c b/hw/pc.c
index d380186..495f6c0 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -692,6 +692,7 @@ static void pc_init1(int ram_size, int vga_ram_size, int boot_device,
if (pci_enabled) {
apic_init(env);
}
+ vmport_init(env);
}
/* allocate RAM */
diff --git a/hw/vmmouse.c b/hw/vmmouse.c
index c10c26e..52c8e0c 100644
--- a/hw/vmmouse.c
+++ b/hw/vmmouse.c
@@ -39,7 +39,6 @@
#define VMMOUSE_QUEUE_SIZE 1024
-#define VMMOUSE_MAGIC 0x564D5868
#define VMMOUSE_VERSION 0x3442554a
#ifdef DEBUG_VMMOUSE
@@ -58,13 +57,6 @@ typedef struct _VMMouseState
void *ps2_mouse;
} 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)
{
DPRINTF("vmmouse_get_status()\n");
@@ -201,15 +193,10 @@ static uint32_t vmmouse_ioport_read(void *opaque, uint32_t addr)
uint16_t command;
vmmouse_get_data(data);
- if (data[0] != VMMOUSE_MAGIC)
- goto error;
command = data[2] & 0xFFFF;
switch (command) {
- case VMMOUSE_GETVERSION:
- data[0] = vmmouse_get_version(s, &data[1]);
- break;
case VMMOUSE_STATUS:
data[0] = vmmouse_get_status(s);
break;
@@ -240,7 +227,6 @@ static uint32_t vmmouse_ioport_read(void *opaque, uint32_t addr)
break;
}
-error:
vmmouse_set_data(data);
return data[0];
}
@@ -292,7 +278,9 @@ void *vmmouse_init(void *m)
s->status = 0xffff;
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);
return s;