4 * Copyright 1995 Anand Kumria
13 /* #define DEBUG_VXD */
17 /***********************************************************************
20 void VXD_PageFile( struct sigcontext_struct context
)
22 /* taken from Ralf Brown's Interrupt List */
24 dprintf_vxd(stddeb
,"VxD PageFile called ...\n");
26 switch(AX_reg(&context
))
28 case 0x00: /* get version, is this windows version? */
29 dprintf_vxd(stddeb
,"VxD PageFile: returning version\n");
30 AX_reg(&context
) = (WINVERSION
>> 8) | ((WINVERSION
<< 8) & 0xff00);
31 RESET_CFLAG(&context
);
34 case 0x01: /* get swap file info */
35 dprintf_vxd(stddeb
,"VxD PageFile: returning swap file info\n");
36 AX_reg(&context
) = 0x00; /* paging disabled */
37 ECX_reg(&context
) = 0; /* maximum size of paging file */
38 /* FIXME: do I touch DS:SI or DS:DI? */
39 RESET_CFLAG(&context
);
42 case 0x02: /* delete permanent swap on exit */
43 dprintf_vxd(stddeb
,"VxD PageFile: supposed to delete swap\n");
44 RESET_CFLAG(&context
);
47 case 0x03: /* current temporary swap file size */
48 dprintf_vxd(stddeb
,"VxD PageFile: what is current temp. swap size\n");
49 RESET_CFLAG(&context
);
52 case 0x04: /* read or write?? INTERRUP.D */
53 case 0x05: /* cancel?? INTERRUP.D */
54 case 0x06: /* test I/O valid INTERRUP.D */
56 INT_BARF( &context
, 0x2f);
62 /***********************************************************************
65 void VXD_Shell( struct sigcontext_struct context
)
67 dprintf_vxd(stddeb
,"VxD Shell called ...\n");
69 switch (DX_reg(&context
)) /* Ralf Brown says EDX, but I use DX instead */
72 dprintf_vxd(stddeb
,"VxD Shell: returning version\n");
73 AX_reg(&context
) = (WINVERSION
>> 8) | ((WINVERSION
<< 8) & 0xff00);
74 EBX_reg(&context
) = 1; /* system VM Handle */
82 dprintf_vxd(stddeb
,"VxD Shell: EDX = %08lx\n",EDX_reg(&context
));
83 INT_BARF( &context
, 0x2f);
86 case 0x0006: /* SHELL_Get_VM_State */
87 dprintf_vxd(stddeb
,"VxD Shell: returning VM state\n");
88 /* Actually we don't, not yet. We have to return a structure
89 * and I am not to sure how to set it up and return it yet,
90 * so for now let's do nothing. I can (hopefully) get this
93 /* RESET_CFLAG(&context); */
113 dprintf_vxd(stddeb
,"VxD Shell: EDX = %08lx\n",EDX_reg(&context
));
114 INT_BARF( &context
, 0x2f);
120 /***********************************************************************
123 void VXD_Comm( struct sigcontext_struct context
)
125 dprintf_vxd(stddeb
,"VxD Comm called ...\n");
127 switch (AX_reg(&context
))
129 case 0x0000: /* get version */
130 dprintf_vxd(stddeb
,"VxD Comm: returning version\n");
131 AX_reg(&context
) = (WINVERSION
>> 8) | ((WINVERSION
<< 8) & 0xff00);
132 RESET_CFLAG(&context
);
135 case 0x0001: /* set port global */
136 case 0x0002: /* get focus */
137 case 0x0003: /* virtualise port */
139 INT_BARF( &context
, 0x2f);