dos patch
Ove Kaaven
ovek at arcticnet.no
Mon Nov 5 21:20:59 CST 2001
Seems my last patches were accepted, so here's another DOS patch...
Log:
Added RunInThread callout to winedos.
Index: dlls/winedos/module.c
===================================================================
RCS file: /home/wine/wine/dlls/winedos/module.c,v
retrieving revision 1.7
diff -u -r1.7 module.c
--- dlls/winedos/module.c 2001/07/02 19:59:44 1.7
+++ dlls/winedos/module.c 2001/11/06 01:44:42
@@ -421,6 +421,11 @@
return lpDosTask;
}
+void WINAPI MZ_RunInThread( PAPCFUNC proc, ULONG_PTR arg )
+{
+ proc(arg);
+}
+
static void MZ_InitTimer( int ver )
{
if (ver<1) {
Index: dlls/winedos/winedos.spec
===================================================================
RCS file: /home/wine/wine/dlls/winedos/winedos.spec,v
retrieving revision 1.3
diff -u -r1.3 winedos.spec
--- dlls/winedos/winedos.spec 2001/01/15 20:23:06 1.3
+++ dlls/winedos/winedos.spec 2001/11/06 01:25:48
@@ -12,6 +12,7 @@
@ stdcall LoadDosExe(str long) MZ_LoadImage
@ stdcall Exec(ptr str long ptr) MZ_Exec
@ stdcall Exit(ptr long long) MZ_Exit
+@ stdcall RunInThread(ptr long) MZ_RunInThread
@ stdcall Enter(ptr) DOSVM_Enter
@ stdcall Wait(long long) DOSVM_Wait
Index: include/callback.h
===================================================================
RCS file: /home/wine/wine/include/callback.h,v
retrieving revision 1.42
diff -u -r1.42 callback.h
--- include/callback.h 2001/07/26 20:12:55 1.42
+++ include/callback.h 2001/11/06 01:25:49
@@ -37,11 +37,13 @@
BOOL WINAPI (*Exec)( CONTEXT86 *context, LPCSTR filename, BYTE func, LPVOID paramblk );
void WINAPI (*Exit)( CONTEXT86 *context, BOOL cs_psp, WORD retval );
int WINAPI (*Enter)( CONTEXT86 *context );
+ void WINAPI (*RunInThread)( PAPCFUNC proc, ULONG_PTR arg );
void WINAPI (*Wait)( int read_pipe, HANDLE hObject );
void WINAPI (*QueueEvent)( int irq, int priority, void (*relay)(CONTEXT86*,void*), void *data );
void WINAPI (*OutPIC)( WORD port, BYTE val );
void WINAPI (*SetTimer)( unsigned ticks );
unsigned WINAPI (*GetTimer)( void );
+ BYTE WINAPI (*KbdReadScan)( BYTE *ascii );
} DOSVM_TABLE;
extern DOSVM_TABLE Dosvm;
Index: include/dosexe.h
===================================================================
RCS file: /home/wine/wine/include/dosexe.h,v
retrieving revision 1.34
diff -u -r1.34 dosexe.h
--- include/dosexe.h 2001/01/25 22:23:09 1.34
+++ include/dosexe.h 2001/11/06 01:25:49
@@ -37,8 +37,10 @@
extern void WINAPI MZ_Exit( CONTEXT86 *context, BOOL cs_psp, WORD retval );
extern LPDOSTASK WINAPI MZ_Current( void );
extern LPDOSTASK WINAPI MZ_AllocDPMITask( void );
+extern void WINAPI MZ_RunInThread( PAPCFUNC proc, ULONG_PTR arg );
extern INT WINAPI DOSVM_Enter( CONTEXT86 *context );
extern void WINAPI DOSVM_Wait( INT read_pipe, HANDLE hObject );
+extern DWORD WINAPI DOSVM_Loop( LPVOID lpExtra );
extern void WINAPI DOSVM_QueueEvent( INT irq, INT priority, DOSRELAY relay, LPVOID data );
extern void WINAPI DOSVM_PIC_ioport_out( WORD port, BYTE val );
extern void WINAPI DOSVM_SetTimer( UINT ticks );
Index: msdos/dpmi.c
===================================================================
RCS file: /home/wine/wine/msdos/dpmi.c,v
retrieving revision 1.56
diff -u -r1.56 dpmi.c
--- msdos/dpmi.c 2001/10/14 16:25:48 1.56
+++ msdos/dpmi.c 2001/11/06 01:25:51
@@ -79,17 +79,19 @@
ERR("could not load winedos.dll, DOS subsystem unavailable\n");
return FALSE;
}
- Dosvm.Current = (void *)GetProcAddress(DosModule, "GetCurrent");
- Dosvm.LoadDPMI = (void *)GetProcAddress(DosModule, "LoadDPMI");
- Dosvm.LoadDosExe = (void *)GetProcAddress(DosModule, "LoadDosExe");
- Dosvm.Exec = (void *)GetProcAddress(DosModule, "Exec");
- Dosvm.Exit = (void *)GetProcAddress(DosModule, "Exit");
- Dosvm.Enter = (void *)GetProcAddress(DosModule, "Enter");
- Dosvm.Wait = (void *)GetProcAddress(DosModule, "Wait");
- Dosvm.QueueEvent = (void *)GetProcAddress(DosModule, "QueueEvent");
- Dosvm.OutPIC = (void *)GetProcAddress(DosModule, "OutPIC");
- Dosvm.SetTimer = (void *)GetProcAddress(DosModule, "SetTimer");
- Dosvm.GetTimer = (void *)GetProcAddress(DosModule, "GetTimer");
+ Dosvm.Current = (void *)GetProcAddress(DosModule, "GetCurrent");
+ Dosvm.LoadDPMI = (void *)GetProcAddress(DosModule, "LoadDPMI");
+ Dosvm.LoadDosExe = (void *)GetProcAddress(DosModule, "LoadDosExe");
+ Dosvm.Exec = (void *)GetProcAddress(DosModule, "Exec");
+ Dosvm.Exit = (void *)GetProcAddress(DosModule, "Exit");
+ Dosvm.Enter = (void *)GetProcAddress(DosModule, "Enter");
+ Dosvm.RunInThread = (void *)GetProcAddress(DosModule, "RunInThread");
+ Dosvm.Wait = (void *)GetProcAddress(DosModule, "Wait");
+ Dosvm.QueueEvent = (void *)GetProcAddress(DosModule, "QueueEvent");
+ Dosvm.OutPIC = (void *)GetProcAddress(DosModule, "OutPIC");
+ Dosvm.SetTimer = (void *)GetProcAddress(DosModule, "SetTimer");
+ Dosvm.GetTimer = (void *)GetProcAddress(DosModule, "GetTimer");
+ Dosvm.KbdReadScan = (void *)GetProcAddress(DosModule, "KbdReadScan");
return TRUE;
}
More information about the wine-patches
mailing list