Alexandre Julliard : kernel32: Make system. drv into a stand-alone 16-bit module.
Alexandre Julliard
julliard at winehq.org
Tue Sep 29 11:09:04 CDT 2009
Module: wine
Branch: master
Commit: 55b5e3a727a6a7d108fbbc3ebefe22ec84d70f7e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=55b5e3a727a6a7d108fbbc3ebefe22ec84d70f7e
Author: Alexandre Julliard <julliard at winehq.org>
Date: Mon Sep 28 19:56:10 2009 +0200
kernel32: Make system.drv into a stand-alone 16-bit module.
---
.gitignore | 1 -
configure | 9 +++++++++
configure.ac | 1 +
dlls/Makefile.in | 3 +--
dlls/kernel32/Makefile.in | 2 --
dlls/system.drv16/Makefile.in | 13 +++++++++++++
dlls/{kernel32 => system.drv16}/system.c | 8 +++++++-
.../system.drv16.spec} | 0
8 files changed, 31 insertions(+), 6 deletions(-)
diff --git a/.gitignore b/.gitignore
index f439b35..45362c3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -119,7 +119,6 @@ dlls/setupx.dll16
dlls/shdocvw/shdocvw_v1.tlb
dlls/stdole2.tlb/std_ole_v2.tlb
dlls/stdole32.tlb/std_ole_v1.tlb
-dlls/system.drv16
dlls/toolhelp.dll16
dlls/user.exe16
dlls/ver.dll16
diff --git a/configure b/configure
index 2c8e4e5..b2cbd87 100755
--- a/configure
+++ b/configure
@@ -16658,6 +16658,14 @@ dlls/sxs/Makefile: dlls/sxs/Makefile.in dlls/Makedll.rules"
ac_config_files="$ac_config_files dlls/sxs/Makefile"
ALL_MAKEFILES="$ALL_MAKEFILES \\
+ dlls/system.drv16/Makefile"
+test "x$enable_win16" != xno && ALL_DLL_DIRS="$ALL_DLL_DIRS \\
+ system.drv16"
+ALL_MAKEFILE_DEPENDS="$ALL_MAKEFILE_DEPENDS
+dlls/system.drv16/Makefile: dlls/system.drv16/Makefile.in dlls/Makedll.rules"
+ac_config_files="$ac_config_files dlls/system.drv16/Makefile"
+
+ALL_MAKEFILES="$ALL_MAKEFILES \\
dlls/t2embed/Makefile"
test "x$enable_t2embed" != xno && ALL_DLL_DIRS="$ALL_DLL_DIRS \\
t2embed"
@@ -19045,6 +19053,7 @@ do
"dlls/strmiids/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/strmiids/Makefile" ;;
"dlls/svrapi/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/svrapi/Makefile" ;;
"dlls/sxs/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/sxs/Makefile" ;;
+ "dlls/system.drv16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/system.drv16/Makefile" ;;
"dlls/t2embed/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/t2embed/Makefile" ;;
"dlls/tapi32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/tapi32/Makefile" ;;
"dlls/traffic/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/traffic/Makefile" ;;
diff --git a/configure.ac b/configure.ac
index b773573..5fb8e9b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2443,6 +2443,7 @@ WINE_CONFIG_MAKEFILE([dlls/stress.dll16/Makefile],[dlls/Makedll.rules],[dlls],[A
WINE_CONFIG_MAKEFILE([dlls/strmiids/Makefile],[dlls/Makeimplib.rules],[dlls],[ALL_IMPLIB_DIRS])
WINE_CONFIG_MAKEFILE([dlls/svrapi/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
WINE_CONFIG_MAKEFILE([dlls/sxs/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
+WINE_CONFIG_MAKEFILE([dlls/system.drv16/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS],[enable_win16])
WINE_CONFIG_MAKEFILE([dlls/t2embed/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
WINE_CONFIG_MAKEFILE([dlls/tapi32/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
WINE_CONFIG_MAKEFILE([dlls/traffic/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
diff --git a/dlls/Makefile.in b/dlls/Makefile.in
index de007a7..78be337 100644
--- a/dlls/Makefile.in
+++ b/dlls/Makefile.in
@@ -23,7 +23,6 @@ WIN16_FILES = \
krnl386.exe16 \
mmsystem.dll16 \
setupx.dll16 \
- system.drv16 \
toolhelp.dll16 \
user.exe16 \
ver.dll16 \
@@ -45,7 +44,7 @@ commdlg.dll16:
gdi.exe16:
echo "gdi32.dll" >$@
-krnl386.exe16 system.drv16 toolhelp.dll16:
+krnl386.exe16 toolhelp.dll16:
echo "kernel32.dll" >$@
setupx.dll16:
diff --git a/dlls/kernel32/Makefile.in b/dlls/kernel32/Makefile.in
index 299f324..a64b699 100644
--- a/dlls/kernel32/Makefile.in
+++ b/dlls/kernel32/Makefile.in
@@ -11,7 +11,6 @@ EXTRADLLFLAGS = -Wb,-F,KERNEL32.dll -Wl,--image-base,0x7b800000
SPEC_SRCS16 = \
krnl386.exe.spec \
- system.drv.spec \
toolhelp.spec
C_SRCS = \
@@ -55,7 +54,6 @@ C_SRCS = \
string.c \
sync.c \
syslevel.c \
- system.c \
tape.c \
task.c \
thread.c \
diff --git a/dlls/system.drv16/Makefile.in b/dlls/system.drv16/Makefile.in
new file mode 100644
index 0000000..2fa90cf
--- /dev/null
+++ b/dlls/system.drv16/Makefile.in
@@ -0,0 +1,13 @@
+TOPSRCDIR = @top_srcdir@
+TOPOBJDIR = ../..
+SRCDIR = @srcdir@
+VPATH = @srcdir@
+MODULE = system.drv16
+IMPORTS = kernel32
+EXTRADLLFLAGS = -Wb,--subsystem,win16
+
+C_SRCS = system.c
+
+ at MAKE_DLL_RULES@
+
+ at DEPENDENCIES@ # everything below this line is overwritten by make depend
diff --git a/dlls/kernel32/system.c b/dlls/system.drv16/system.c
similarity index 96%
rename from dlls/kernel32/system.c
rename to dlls/system.drv16/system.c
index 9395d83..46ab04e 100644
--- a/dlls/kernel32/system.c
+++ b/dlls/system.drv16/system.c
@@ -122,6 +122,7 @@ static void SYSTEM_StopTicks(void)
DWORD WINAPI InquireSystem16( WORD code, WORD arg )
{
WORD drivetype;
+ WCHAR root[3];
switch(code)
{
@@ -129,7 +130,12 @@ DWORD WINAPI InquireSystem16( WORD code, WORD arg )
return SYS_TIMER_RATE;
case 1: /* Get drive type */
- drivetype = GetDriveType16( arg );
+ root[0] = 'A' + arg;
+ root[1] = ':';
+ root[2] = 0;
+ drivetype = GetDriveTypeW( root );
+ if (drivetype == DRIVE_CDROM) drivetype = DRIVE_REMOTE;
+ else if (drivetype == DRIVE_NO_ROOT_DIR) drivetype = DRIVE_UNKNOWN;
return MAKELONG( drivetype, drivetype );
case 2: /* Enable one-drive logic */
diff --git a/dlls/kernel32/system.drv.spec b/dlls/system.drv16/system.drv16.spec
similarity index 100%
rename from dlls/kernel32/system.drv.spec
rename to dlls/system.drv16/system.drv16.spec
More information about the wine-cvs
mailing list