+#define MOUSE_BTN_RIGHT 0x01
+
+/* Structure containing the mouse coordinates */
+struct mouse_pos {
+ int x;
+ int y;
+};
+
+/* Structure containing information about the mouse */
+struct mouse_info {
+ struct mouse_pos pos; /* Mouse position */
+ unsigned char buttons; /* Mouse button mask */
+};
+
+/* Structure used for getbox/setbox */
+struct mouse_box {
+ int minx;
+ int miny;
+ int maxx;
+ int maxy;
+};
+
+/* Structure containing mouse callback functions. These functions are declared
+ * in C notation here, but they cannot be C functions (at least not easily),
+ * since they may be called from within an interrupt.
+ */
+struct mouse_callbacks {
+
+ void (*hide) (void);
+ /* Hide the mouse cursor. */
+
+ void (*show) (void);
+ /* Show the mouse cursor */
+
+ void __fastcall__ (*movex) (int x);
+ /* Move the mouse cursor to the new X coordinate. This function is called,
+ * even when the cursor is currently invisible.
+ */
+
+ void __fastcall__ (*movey) (int y);
+ /* Move the mouse cursor to the new Y coordinate. This function is called,
+ * even when the cursor is currently invisible.
+ */
+};
+
+/* The default mouse callbacks */
+extern const struct mouse_callbacks mouse_def_callbacks;
+
+/* The name of the standard mouse driver for a platform */
+extern const char mouse_stddrv[];