Commit 93342807 authored by Thiemo Seufer's avatar Thiemo Seufer
Browse files

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
parent 591a6d62
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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 */
+3 −15
Original line number Diff line number Diff line
@@ -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;