#include <linux/slab.h>
 #include <linux/module.h>
 #include <asm/hypervisor.h>
+#include <asm/vmware.h>
 
 #include "psmouse.h"
 #include "vmmouse.h"
 
 #define VMMOUSE_PROTO_MAGIC                    0x564D5868U
-#define VMMOUSE_PROTO_PORT                     0x5658
 
 /*
  * Main commands supported by the vmmouse hypervisor port.
 #define VMMOUSE_CMD(cmd, in1, out1, out2, out3, out4)  \
 ({                                                     \
        unsigned long __dummy1, __dummy2;               \
-       __asm__ __volatile__ ("inl %%dx" :              \
+       __asm__ __volatile__ (VMWARE_HYPERCALL :        \
                "=a"(out1),                             \
                "=b"(out2),                             \
                "=c"(out3),                             \
                "a"(VMMOUSE_PROTO_MAGIC),               \
                "b"(in1),                               \
                "c"(VMMOUSE_PROTO_CMD_##cmd),           \
-               "d"(VMMOUSE_PROTO_PORT) :               \
+               "d"(0) :                                \
                "memory");                              \
 })