aboutsummaryrefslogtreecommitdiff
path: root/int2fwin.h
diff options
context:
space:
mode:
authorJavier <dev.git@javispedro.com>2022-04-02 03:57:55 +0200
committerJavier <dev.git@javispedro.com>2022-04-02 03:57:55 +0200
commitaade1f47d34594216500f26ed0d21b23a1d1f4f1 (patch)
treeb8cf37b6fa99dd77104662da206060a1fd622a5b /int2fwin.h
parent3e39df4a4185f947d1af564aca265c0f6b51c9ec (diff)
downloadvbados-aade1f47d34594216500f26ed0d21b23a1d1f4f1.tar.gz
vbados-aade1f47d34594216500f26ed0d21b23a1d1f4f1.zip
complete support for the win386 hooks in dos mouse side, and further simplify w16 driver
Diffstat (limited to 'int2fwin.h')
-rw-r--r--int2fwin.h35
1 files changed, 29 insertions, 6 deletions
diff --git a/int2fwin.h b/int2fwin.h
index e8540dc..255cdd7 100644
--- a/int2fwin.h
+++ b/int2fwin.h
@@ -24,26 +24,29 @@
#include <stdint.h>
#include <dos.h>
-struct win386_instance_item
+typedef _Packed struct win386_instance_item
{
void __far * ptr;
uint16_t size;
-};
+} win386_instance_item;
-struct win386_startup_info
+typedef _Packed struct win386_startup_info
{
uint16_t version;
struct win386_startup_info __far * next;
char __far * device_driver;
void __far * device_driver_data;
- struct win386_instance_item __far *instance_data;
-};
+ struct win386_instance_item __far * instance_data;
+} win386_startup_info;
typedef void (__far *LPFN)(void);
enum int2f_functions
{
- INT2F_NOTIFY_WIN386_STARTUP = 0x1605,
+ /** Notification sent when Windows386 is starting up. */
+ INT2F_NOTIFY_WIN386_STARTUP = 0x1605,
+ /** Notification sent by a VxD that wants to invoke a function in a real-mode driver. */
+ INT2F_NOTIFY_DEVICE_CALLOUT = 0x1607,
INT2F_NOTIFY_BACKGROUND_SWITCH = 0x4001,
INT2F_NOTIFY_FOREGROUND_SWITCH = 0x4002
@@ -78,6 +81,26 @@ enum vmd_apis {
VMD_SET_MOUSE_TYPE = 0x100,
};
+enum vmd_callouts
+{
+ /** VMD emits this to know if there is a "win386 aware" DOS mouse driver installed.
+ * If there is, and the driver responds with CX!=0, VMD will assume
+ * the driver is taking care of its own instancing
+ * (which we do, through win386_startup_info)
+ * and not try to hack around our internals. */
+ VMD_CALLOUT_TEST = 0,
+ /** VMD emits this to know the entrypoint for the API of a "win386 aware"
+ * DOS mouse driver. */
+ VMD_CALLOUT_GET_DOS_MOUSE_API = 0x1
+};
+
+enum vmd_dos_mouse_api_actions
+{
+ VMD_ACTION_MOUSE_EVENT = 1,
+ VMD_ACTION_HIDE_CURSOR = 2,
+ VMD_ACTION_SHOW_CURSOR = 3
+};
+
enum vmd_mouse_type {
VMD_TYPE_UNDEFINED = 0,
VMD_TYPE_BUS = 1,