Moved vxd support to winedos.

This commit is contained in:
Alexandre Julliard 2003-05-15 23:25:49 +00:00
parent 575dbfa769
commit a098c82aac
8 changed files with 30 additions and 13 deletions

View file

@ -429,7 +429,7 @@ joystick.drv$(DLLEXT): winmm/joystick/joystick.drv$(DLLEXT)
kernel32.dll$(DLLEXT) comm.dll$(DLLEXT) krnl386.exe$(DLLEXT) \
stress.dll$(DLLEXT) system.dll$(DLLEXT) toolhelp.dll$(DLLEXT) \
win87em.dll$(DLLEXT) windebug.dll$(DLLEXT) wprocs.dll$(DLLEXT): kernel/kernel32.dll$(DLLEXT)
win87em.dll$(DLLEXT) windebug.dll$(DLLEXT): kernel/kernel32.dll$(DLLEXT)
$(RM) $@ && $(LN_S) kernel/kernel32.dll$(DLLEXT) $@
lz32.dll$(DLLEXT) lzexpand.dll$(DLLEXT): lzexpand/lz32.dll$(DLLEXT)
@ -606,7 +606,7 @@ winearts.drv$(DLLEXT): winmm/winearts/winearts.drv$(DLLEXT)
wineaudioio.drv$(DLLEXT): winmm/wineaudioio/wineaudioio.drv$(DLLEXT)
$(RM) $@ && $(LN_S) winmm/wineaudioio/wineaudioio.drv$(DLLEXT) $@
winedos.dll$(DLLEXT): winedos/winedos.dll$(DLLEXT)
winedos.dll$(DLLEXT) wprocs.dll$(DLLEXT): winedos/winedos.dll$(DLLEXT)
$(RM) $@ && $(LN_S) winedos/winedos.dll$(DLLEXT) $@
winejack.drv$(DLLEXT): winmm/winejack/winejack.drv$(DLLEXT)

View file

@ -11,4 +11,3 @@ toolhelp.spec.c
version16.res
win87em.spec.c
windebug.spec.c
wprocs.spec.c

View file

@ -5,7 +5,7 @@ SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = kernel32.dll
IMPORTS = ntdll
ALTNAMES = krnl386.exe comm.dll stress.dll system.dll toolhelp.dll windebug.dll win87em.dll wprocs.dll
ALTNAMES = krnl386.exe comm.dll stress.dll system.dll toolhelp.dll windebug.dll win87em.dll
LDIMPORTS = ntdll.dll
EXTRALIBS = $(LIBUNICODE)
DLLMAIN = MAIN_KernelInit
@ -17,8 +17,7 @@ SPEC_SRCS16 = \
system.spec \
toolhelp.spec \
win87em.spec \
windebug.spec \
wprocs.spec
windebug.spec
C_SRCS = \
$(TOPOBJDIR)/ole/ole2nls.c \

View file

@ -46,7 +46,6 @@ C_SRCS = \
$(TOPOBJDIR)/msdos/int21.c \
$(TOPOBJDIR)/msdos/ioports.c \
$(TOPOBJDIR)/msdos/ppdev.c \
$(TOPOBJDIR)/msdos/vxd.c \
$(TOPOBJDIR)/relay32/builtin32.c \
$(TOPOBJDIR)/relay32/relay386.c \
$(TOPOBJDIR)/relay32/snoop.c \

View file

@ -3,3 +3,4 @@ winedos.dll.dbg.c
winedos.spec.c
winedos.spec.def
winedos16.spec.c
wprocs.spec.c

View file

@ -4,11 +4,14 @@ SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = winedos.dll
IMPORTS = user32 advapi32 kernel32 ntdll
ALTNAMES = wprocs.dll
EXTRALIBS = $(LIBUNICODE)
LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o
SPEC_SRCS16 = wprocs.spec
C_SRCS = \
devices.c \
dma.c \
@ -46,6 +49,7 @@ C_SRCS = \
relay.c \
soundblaster.c \
vga.c \
vxd.c \
xms.c
@MAKE_DLL_RULES@

View file

@ -395,14 +395,29 @@ void WINAPI VXD_Timer( CONTEXT86 *context )
}
}
/***********************************************************************
* timer_thread
*/
static DWORD CALLBACK timer_thread( void *arg )
{
DWORD *system_time = arg;
for (;;)
{
*system_time = GetTickCount();
Sleep( 55 );
}
}
/***********************************************************************
* VXD_TimerAPI (WPROCS.1490)
*/
static DWORD System_Time = 0;
static WORD System_Time_Selector = 0;
static void System_Time_Tick( WORD timer ) { System_Time += 55; }
void WINAPI VXD_TimerAPI ( CONTEXT86 *context )
{
static WORD System_Time_Selector;
unsigned service = AX_reg(context);
TRACE("[%04x] TimerAPI\n", (UINT16)service);
@ -417,10 +432,10 @@ void WINAPI VXD_TimerAPI ( CONTEXT86 *context )
case 0x0009: /* get system time selector */
if ( !System_Time_Selector )
{
System_Time_Selector = SELECTOR_AllocBlock( &System_Time, sizeof(DWORD), WINE_LDT_FLAGS_DATA );
CreateSystemTimer( 55, System_Time_Tick );
HANDLE16 handle = GlobalAlloc16( GMEM_FIXED, sizeof(DWORD) );
System_Time_Selector = handle | 7;
CloseHandle( CreateThread( NULL, 0, timer_thread, GlobalLock16(handle), 0, NULL ) );
}
SET_AX( context, System_Time_Selector );
RESET_CFLAG(context);
break;