summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Hellstrom <thellstrom@vmware.com>2015-01-15 10:59:46 +0100
committerThomas Hellstrom <thellstrom@vmware.com>2015-04-08 07:12:23 -0700
commitc8ec00f537a640db049a1afb44a31c2199859085 (patch)
tree405e01784208811000a6b3cf53b39ce7a336e93a
parentd5c1493b5fe0871f4f2823125f0d49f8e1edcda7 (diff)
vmmouse: Add support for the access restrict command
The access restrict command, if implemented, restricts vmmouse port access to the indicated level. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Michael Banack <banackm@vmware.com>
-rw-r--r--shared/vmmouse_client.c7
-rw-r--r--shared/vmmouse_defs.h7
-rw-r--r--shared/vmmouse_proto.h1
3 files changed, 15 insertions, 0 deletions
diff --git a/shared/vmmouse_client.c b/shared/vmmouse_client.c
index b8e19d6..c5d529e 100644
--- a/shared/vmmouse_client.c
+++ b/shared/vmmouse_client.c
@@ -192,6 +192,13 @@ VMMouseClient_Enable(void) {
}
/*
+ * Restrict access to the VMMouse backdoor handler.
+ */
+ vmpc.in.vEbx = VMMOUSE_RESTRICT_IOPL;
+ vmpc.in.command = VMMOUSE_PROTO_CMD_ABSPOINTER_RESTRICT;
+ VMMouseProto_SendCmd(&vmpc);
+
+ /*
* To quote Jeremy, "Go Go Go!"
*/
diff --git a/shared/vmmouse_defs.h b/shared/vmmouse_defs.h
index d256faf..780d72d 100644
--- a/shared/vmmouse_defs.h
+++ b/shared/vmmouse_defs.h
@@ -69,4 +69,11 @@
#define VMMOUSE_RIGHT_BUTTON 0x10
#define VMMOUSE_MIDDLE_BUTTON 0x08
+/*
+ * VMMouse Restrict command
+ */
+#define VMMOUSE_RESTRICT_ANY 0x00
+#define VMMOUSE_RESTRICT_CPL0 0x01
+#define VMMOUSE_RESTRICT_IOPL 0x02
+
#endif
diff --git a/shared/vmmouse_proto.h b/shared/vmmouse_proto.h
index 714f8c5..6d144ae 100644
--- a/shared/vmmouse_proto.h
+++ b/shared/vmmouse_proto.h
@@ -64,6 +64,7 @@
#define VMMOUSE_PROTO_CMD_ABSPOINTER_DATA 39
#define VMMOUSE_PROTO_CMD_ABSPOINTER_STATUS 40
#define VMMOUSE_PROTO_CMD_ABSPOINTER_COMMAND 41
+#define VMMOUSE_PROTO_CMD_ABSPOINTER_RESTRICT 86
#define DECLARE_REG32_STRUCT(_r) \
union { \