kernel: Add an import lib for krnl386, and stop importing 16-bit functions from kernel32.
diff --git a/.gitignore b/.gitignore
index 180ae51..7dd1f9d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -59,6 +59,7 @@
 dlls/kernel32/nls/winerr_plk.mc.rc
 dlls/kernel32/nls/winerr_ptg.mc.rc
 dlls/libd3dx9.def
+dlls/libkernel.def
 dlls/libwinspool.def
 dlls/libxinput.def
 dlls/msdaps/msdaps.h
diff --git a/dlls/Makefile.in b/dlls/Makefile.in
index b6a2a88..232713b 100644
--- a/dlls/Makefile.in
+++ b/dlls/Makefile.in
@@ -27,6 +27,7 @@
 
 IMPORT_SYMLINKS = \
 	libd3dx9.$(IMPLIBEXT) \
+	libkernel.$(IMPLIBEXT) \
 	libwinspool.$(IMPLIBEXT) \
 	libxinput.$(IMPLIBEXT)
 
@@ -94,6 +95,7 @@
 	inetcomm/libinetcomm.$(IMPLIBEXT) \
 	iphlpapi/libiphlpapi.$(IMPLIBEXT) \
 	kernel32/libkernel32.$(IMPLIBEXT) \
+	krnl386.exe16/libkernel.$(IMPLIBEXT) \
 	loadperf/libloadperf.$(IMPLIBEXT) \
 	lz32/liblz32.$(IMPLIBEXT) \
 	mapi32/libmapi32.$(IMPLIBEXT) \
@@ -500,6 +502,9 @@
 kernel32/libkernel32.def kernel32/libkernel32.a: kernel32/kernel32.spec $(WINEBUILD)
 	@cd kernel32 && $(MAKE) `basename $@`
 
+krnl386.exe16/libkernel.def krnl386.exe16/libkernel.a: krnl386.exe16/krnl386.exe16.spec $(WINEBUILD)
+	@cd krnl386.exe16 && $(MAKE) `basename $@`
+
 loadperf/libloadperf.def loadperf/libloadperf.a: loadperf/loadperf.spec $(WINEBUILD)
 	@cd loadperf && $(MAKE) `basename $@`
 
@@ -767,6 +772,12 @@
 libd3dx9.def: d3dx9_36/libd3dx9.def
 	$(RM) $@ && $(LN_S) d3dx9_36/libd3dx9.def $@
 
+libkernel.a: krnl386.exe16/libkernel.a
+	$(RM) $@ && $(LN_S) krnl386.exe16/libkernel.a $@
+
+libkernel.def: krnl386.exe16/libkernel.def
+	$(RM) $@ && $(LN_S) krnl386.exe16/libkernel.def $@
+
 libwinspool.a: winspool.drv/libwinspool.a
 	$(RM) $@ && $(LN_S) winspool.drv/libwinspool.a $@
 
diff --git a/dlls/commdlg.dll16/Makefile.in b/dlls/commdlg.dll16/Makefile.in
index 1ba061e..11ce98c 100644
--- a/dlls/commdlg.dll16/Makefile.in
+++ b/dlls/commdlg.dll16/Makefile.in
@@ -3,7 +3,7 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = commdlg.dll16
-IMPORTS   = comdlg32 user32 gdi32 kernel32
+IMPORTS   = comdlg32 user32 gdi32 kernel32 kernel
 EXTRADLLFLAGS = -Wb,--subsystem,win16,--main-module,comdlg32.dll
 
 C_SRCS = \
diff --git a/dlls/compobj.dll16/Makefile.in b/dlls/compobj.dll16/Makefile.in
index b1d8da2..48daf2f 100644
--- a/dlls/compobj.dll16/Makefile.in
+++ b/dlls/compobj.dll16/Makefile.in
@@ -3,7 +3,7 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = compobj.dll16
-IMPORTS   = uuid ole32 advapi32 kernel32
+IMPORTS   = uuid ole32 advapi32 kernel32 kernel
 EXTRADLLFLAGS = -Wb,--subsystem,win16,--main-module,ole32.dll
 
 C_SRCS = compobj.c
diff --git a/dlls/ddeml.dll16/Makefile.in b/dlls/ddeml.dll16/Makefile.in
index fd4a2b5..ef242a6 100644
--- a/dlls/ddeml.dll16/Makefile.in
+++ b/dlls/ddeml.dll16/Makefile.in
@@ -3,7 +3,7 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = ddeml.dll16
-IMPORTS   = user32 kernel32
+IMPORTS   = user32 kernel32 kernel
 
 EXTRADLLFLAGS = -Wb,--subsystem,win16
 
diff --git a/dlls/gdi.exe16/Makefile.in b/dlls/gdi.exe16/Makefile.in
index ab845a5..c1f2e1e 100644
--- a/dlls/gdi.exe16/Makefile.in
+++ b/dlls/gdi.exe16/Makefile.in
@@ -3,7 +3,7 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = gdi.exe16
-IMPORTS   = user32 advapi32 gdi32 kernel32
+IMPORTS   = user32 advapi32 gdi32 kernel32 kernel
 
 EXTRADLLFLAGS = -Wb,--subsystem,win16,--main-module,gdi32.dll,--heap,65520
 EXTRARCFLAGS  = -O res16
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index f381017..720a5fd 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -8,106 +8,106 @@
 # - code generated by the MS Thunk Compiler
 # - symbols exported by the Oct 94 beta version of kernel32.dll
 
-  1 stdcall -noname -i386 -register VxDCall0(long) krnl386.exe16.VxDCall0
-  2 stdcall -noname -i386 -register VxDCall1(long) krnl386.exe16.VxDCall1
-  3 stdcall -noname -i386 -register VxDCall2(long) krnl386.exe16.VxDCall2
-  4 stdcall -noname -i386 -register VxDCall3(long) krnl386.exe16.VxDCall3
-  5 stdcall -noname -i386 -register VxDCall4(long) krnl386.exe16.VxDCall4
-  6 stdcall -noname -i386 -register VxDCall5(long) krnl386.exe16.VxDCall5
-  7 stdcall -noname -i386 -register VxDCall6(long) krnl386.exe16.VxDCall6
-  8 stdcall -noname -i386 -register VxDCall7(long) krnl386.exe16.VxDCall7
-  9 stdcall -noname -i386 -register VxDCall8(long) krnl386.exe16.VxDCall8
- 10 stdcall -noname -i386 k32CharToOemA(str ptr) krnl386.exe16.k32CharToOemA
- 11 stdcall -noname -i386 k32CharToOemBuffA(str ptr long) krnl386.exe16.k32CharToOemBuffA
- 12 stdcall -noname -i386 k32OemToCharA(ptr ptr) krnl386.exe16.k32OemToCharA
- 13 stdcall -noname -i386 k32OemToCharBuffA(ptr ptr long) krnl386.exe16.k32OemToCharBuffA
- 14 stdcall -noname -i386 k32LoadStringA(long long ptr long) krnl386.exe16.k32LoadStringA
- 15 varargs -noname -i386 k32wsprintfA(str str) krnl386.exe16.k32wsprintfA
- 16 stdcall -noname -i386 k32wvsprintfA(ptr str ptr) krnl386.exe16.k32wvsprintfA
- 17 stdcall -noname -i386 -register CommonUnimpStub() krnl386.exe16.CommonUnimpStub
- 18 stdcall -noname -i386 GetProcessDword(long long) krnl386.exe16.GetProcessDword
+  1 stdcall -noname -i386 -private -register VxDCall0(long) krnl386.exe16.VxDCall0
+  2 stdcall -noname -i386 -private -register VxDCall1(long) krnl386.exe16.VxDCall1
+  3 stdcall -noname -i386 -private -register VxDCall2(long) krnl386.exe16.VxDCall2
+  4 stdcall -noname -i386 -private -register VxDCall3(long) krnl386.exe16.VxDCall3
+  5 stdcall -noname -i386 -private -register VxDCall4(long) krnl386.exe16.VxDCall4
+  6 stdcall -noname -i386 -private -register VxDCall5(long) krnl386.exe16.VxDCall5
+  7 stdcall -noname -i386 -private -register VxDCall6(long) krnl386.exe16.VxDCall6
+  8 stdcall -noname -i386 -private -register VxDCall7(long) krnl386.exe16.VxDCall7
+  9 stdcall -noname -i386 -private -register VxDCall8(long) krnl386.exe16.VxDCall8
+ 10 stdcall -noname -i386 -private k32CharToOemA(str ptr) krnl386.exe16.k32CharToOemA
+ 11 stdcall -noname -i386 -private k32CharToOemBuffA(str ptr long) krnl386.exe16.k32CharToOemBuffA
+ 12 stdcall -noname -i386 -private k32OemToCharA(ptr ptr) krnl386.exe16.k32OemToCharA
+ 13 stdcall -noname -i386 -private k32OemToCharBuffA(ptr ptr long) krnl386.exe16.k32OemToCharBuffA
+ 14 stdcall -noname -i386 -private k32LoadStringA(long long ptr long) krnl386.exe16.k32LoadStringA
+ 15 varargs -noname -i386 -private k32wsprintfA(str str) krnl386.exe16.k32wsprintfA
+ 16 stdcall -noname -i386 -private k32wvsprintfA(ptr str ptr) krnl386.exe16.k32wvsprintfA
+ 17 stdcall -noname -i386 -private -register CommonUnimpStub() krnl386.exe16.CommonUnimpStub
+ 18 stdcall -noname -i386 -private GetProcessDword(long long) krnl386.exe16.GetProcessDword
  19 stub -noname -i386 ThunkTheTemplateHandle
- 20 stdcall -noname -i386 DosFileHandleToWin32Handle(long) krnl386.exe16.DosFileHandleToWin32Handle
- 21 stdcall -noname -i386 Win32HandleToDosFileHandle(long) krnl386.exe16.Win32HandleToDosFileHandle
- 22 stdcall -noname -i386 DisposeLZ32Handle(long) krnl386.exe16.DisposeLZ32Handle
+ 20 stdcall -noname -i386 -private DosFileHandleToWin32Handle(long) krnl386.exe16.DosFileHandleToWin32Handle
+ 21 stdcall -noname -i386 -private Win32HandleToDosFileHandle(long) krnl386.exe16.Win32HandleToDosFileHandle
+ 22 stdcall -noname -i386 -private DisposeLZ32Handle(long) krnl386.exe16.DisposeLZ32Handle
  23 stub -noname -i386 GDIReallyCares
- 24 stdcall -noname -i386 GlobalAlloc16(long long) krnl386.exe16.GlobalAlloc16
- 25 stdcall -noname -i386 GlobalLock16(long) krnl386.exe16.GlobalLock16
- 26 stdcall -noname -i386 GlobalUnlock16(long) krnl386.exe16.GlobalUnlock16
- 27 stdcall -noname -i386 GlobalFix16(long) krnl386.exe16.GlobalFix16
- 28 stdcall -noname -i386 GlobalUnfix16(long) krnl386.exe16.GlobalUnfix16
- 29 stdcall -noname -i386 GlobalWire16(long) krnl386.exe16.GlobalWire16
- 30 stdcall -noname -i386 GlobalUnWire16(long) krnl386.exe16.GlobalUnWire16
- 31 stdcall -noname -i386 GlobalFree16(long) krnl386.exe16.GlobalFree16
- 32 stdcall -noname -i386 GlobalSize16(long) krnl386.exe16.GlobalSize16
- 33 stdcall -noname -i386 HouseCleanLogicallyDeadHandles() krnl386.exe16.HouseCleanLogicallyDeadHandles
- 34 stdcall -noname -i386 GetWin16DOSEnv() krnl386.exe16.GetWin16DOSEnv
- 35 stdcall -noname -i386 LoadLibrary16(str) krnl386.exe16.LoadLibrary16
- 36 stdcall -noname -i386 FreeLibrary16(long) krnl386.exe16.FreeLibrary16
- 37 stdcall -noname -i386 GetProcAddress16(long str) krnl386.exe16.GetProcAddress16
- 38 stdcall -noname -i386 -register AllocMappedBuffer() krnl386.exe16.AllocMappedBuffer
- 39 stdcall -noname -i386 -register FreeMappedBuffer() krnl386.exe16.FreeMappedBuffer
- 40 stdcall -noname -i386 -register OT_32ThkLSF() krnl386.exe16.OT_32ThkLSF
- 41 stdcall -noname -i386 ThunkInitLSF(long str long str str) krnl386.exe16.ThunkInitLSF
- 42 stdcall -noname -i386 -register LogApiThkLSF(str) krnl386.exe16.LogApiThkLSF
- 43 stdcall -noname -i386 ThunkInitLS(long str long str str) krnl386.exe16.ThunkInitLS
- 44 stdcall -noname -i386 -register LogApiThkSL(str) krnl386.exe16.LogApiThkSL
- 45 stdcall -noname -i386 -register Common32ThkLS() krnl386.exe16.Common32ThkLS
- 46 stdcall -noname -i386 ThunkInitSL(long str long str str) krnl386.exe16.ThunkInitSL
- 47 stdcall -noname -i386 -register LogCBThkSL(str) krnl386.exe16.LogCBThkSL
- 48 stdcall -noname -i386 ReleaseThunkLock(ptr) krnl386.exe16.ReleaseThunkLock
- 49 stdcall -noname -i386 RestoreThunkLock(long) krnl386.exe16.RestoreThunkLock
+ 24 stdcall -noname -i386 -private GlobalAlloc16(long long) krnl386.exe16.GlobalAlloc16
+ 25 stdcall -noname -i386 -private GlobalLock16(long) krnl386.exe16.GlobalLock16
+ 26 stdcall -noname -i386 -private GlobalUnlock16(long) krnl386.exe16.GlobalUnlock16
+ 27 stdcall -noname -i386 -private GlobalFix16(long) krnl386.exe16.GlobalFix16
+ 28 stdcall -noname -i386 -private GlobalUnfix16(long) krnl386.exe16.GlobalUnfix16
+ 29 stdcall -noname -i386 -private GlobalWire16(long) krnl386.exe16.GlobalWire16
+ 30 stdcall -noname -i386 -private GlobalUnWire16(long) krnl386.exe16.GlobalUnWire16
+ 31 stdcall -noname -i386 -private GlobalFree16(long) krnl386.exe16.GlobalFree16
+ 32 stdcall -noname -i386 -private GlobalSize16(long) krnl386.exe16.GlobalSize16
+ 33 stdcall -noname -i386 -private HouseCleanLogicallyDeadHandles() krnl386.exe16.HouseCleanLogicallyDeadHandles
+ 34 stdcall -noname -i386 -private GetWin16DOSEnv() krnl386.exe16.GetWin16DOSEnv
+ 35 stdcall -noname -i386 -private LoadLibrary16(str) krnl386.exe16.LoadLibrary16
+ 36 stdcall -noname -i386 -private FreeLibrary16(long) krnl386.exe16.FreeLibrary16
+ 37 stdcall -noname -i386 -private GetProcAddress16(long str) krnl386.exe16.GetProcAddress16
+ 38 stdcall -noname -i386 -private -register AllocMappedBuffer() krnl386.exe16.AllocMappedBuffer
+ 39 stdcall -noname -i386 -private -register FreeMappedBuffer() krnl386.exe16.FreeMappedBuffer
+ 40 stdcall -noname -i386 -private -register OT_32ThkLSF() krnl386.exe16.OT_32ThkLSF
+ 41 stdcall -noname -i386 -private ThunkInitLSF(long str long str str) krnl386.exe16.ThunkInitLSF
+ 42 stdcall -noname -i386 -private -register LogApiThkLSF(str) krnl386.exe16.LogApiThkLSF
+ 43 stdcall -noname -i386 -private ThunkInitLS(long str long str str) krnl386.exe16.ThunkInitLS
+ 44 stdcall -noname -i386 -private -register LogApiThkSL(str) krnl386.exe16.LogApiThkSL
+ 45 stdcall -noname -i386 -private -register Common32ThkLS() krnl386.exe16.Common32ThkLS
+ 46 stdcall -noname -i386 -private ThunkInitSL(long str long str str) krnl386.exe16.ThunkInitSL
+ 47 stdcall -noname -i386 -private -register LogCBThkSL(str) krnl386.exe16.LogCBThkSL
+ 48 stdcall -noname -i386 -private ReleaseThunkLock(ptr) krnl386.exe16.ReleaseThunkLock
+ 49 stdcall -noname -i386 -private RestoreThunkLock(long) krnl386.exe16.RestoreThunkLock
 
- 51 stdcall -noname -i386 -register W32S_BackTo32() krnl386.exe16.W32S_BackTo32
- 52 stdcall -noname -i386 GetThunkBuff() krnl386.exe16.GetThunkBuff
- 53 stdcall -noname -i386 GetThunkStuff(str str) krnl386.exe16.GetThunkStuff
- 54 stdcall -noname -i386 K32WOWCallback16(long long) krnl386.exe16.K32WOWCallback16
- 55 stdcall -noname -i386 K32WOWCallback16Ex(ptr long long ptr ptr) krnl386.exe16.K32WOWCallback16Ex
- 56 stdcall -noname -i386 K32WOWGetVDMPointer(long long long) krnl386.exe16.K32WOWGetVDMPointer
- 57 stdcall -noname -i386 K32WOWHandle32(long long) krnl386.exe16.K32WOWHandle32
- 58 stdcall -noname -i386 K32WOWHandle16(long long) krnl386.exe16.K32WOWHandle16
- 59 stdcall -noname -i386 K32WOWGlobalAlloc16(long long) krnl386.exe16.K32WOWGlobalAlloc16
- 60 stdcall -noname -i386 K32WOWGlobalLock16(long) krnl386.exe16.K32WOWGlobalLock16
- 61 stdcall -noname -i386 K32WOWGlobalUnlock16(long) krnl386.exe16.K32WOWGlobalUnlock16
- 62 stdcall -noname -i386 K32WOWGlobalFree16(long) krnl386.exe16.K32WOWGlobalFree16
- 63 stdcall -noname -i386 K32WOWGlobalAllocLock16(long long ptr) krnl386.exe16.K32WOWGlobalAllocLock16
- 64 stdcall -noname -i386 K32WOWGlobalUnlockFree16(long) krnl386.exe16.K32WOWGlobalUnlockFree16
- 65 stdcall -noname -i386 K32WOWGlobalLockSize16(long ptr) krnl386.exe16.K32WOWGlobalLockSize16
- 66 stdcall -noname -i386 K32WOWYield16() krnl386.exe16.K32WOWYield16
- 67 stdcall -noname -i386 K32WOWDirectedYield16(long) krnl386.exe16.K32WOWDirectedYield16
- 68 stdcall -noname -i386 K32WOWGetVDMPointerFix(long long long) krnl386.exe16.K32WOWGetVDMPointerFix
- 69 stdcall -noname -i386 K32WOWGetVDMPointerUnfix(long) krnl386.exe16.K32WOWGetVDMPointerUnfix
- 70 stdcall -noname -i386 K32WOWGetDescriptor(long long) krnl386.exe16.K32WOWGetDescriptor
+ 51 stdcall -noname -i386 -private -register W32S_BackTo32() krnl386.exe16.W32S_BackTo32
+ 52 stdcall -noname -i386 -private GetThunkBuff() krnl386.exe16.GetThunkBuff
+ 53 stdcall -noname -i386 -private GetThunkStuff(str str) krnl386.exe16.GetThunkStuff
+ 54 stdcall -noname -i386 -private K32WOWCallback16(long long) krnl386.exe16.K32WOWCallback16
+ 55 stdcall -noname -i386 -private K32WOWCallback16Ex(ptr long long ptr ptr) krnl386.exe16.K32WOWCallback16Ex
+ 56 stdcall -noname -i386 -private K32WOWGetVDMPointer(long long long) krnl386.exe16.K32WOWGetVDMPointer
+ 57 stdcall -noname -i386 -private K32WOWHandle32(long long) krnl386.exe16.K32WOWHandle32
+ 58 stdcall -noname -i386 -private K32WOWHandle16(long long) krnl386.exe16.K32WOWHandle16
+ 59 stdcall -noname -i386 -private K32WOWGlobalAlloc16(long long) krnl386.exe16.K32WOWGlobalAlloc16
+ 60 stdcall -noname -i386 -private K32WOWGlobalLock16(long) krnl386.exe16.K32WOWGlobalLock16
+ 61 stdcall -noname -i386 -private K32WOWGlobalUnlock16(long) krnl386.exe16.K32WOWGlobalUnlock16
+ 62 stdcall -noname -i386 -private K32WOWGlobalFree16(long) krnl386.exe16.K32WOWGlobalFree16
+ 63 stdcall -noname -i386 -private K32WOWGlobalAllocLock16(long long ptr) krnl386.exe16.K32WOWGlobalAllocLock16
+ 64 stdcall -noname -i386 -private K32WOWGlobalUnlockFree16(long) krnl386.exe16.K32WOWGlobalUnlockFree16
+ 65 stdcall -noname -i386 -private K32WOWGlobalLockSize16(long ptr) krnl386.exe16.K32WOWGlobalLockSize16
+ 66 stdcall -noname -i386 -private K32WOWYield16() krnl386.exe16.K32WOWYield16
+ 67 stdcall -noname -i386 -private K32WOWDirectedYield16(long) krnl386.exe16.K32WOWDirectedYield16
+ 68 stdcall -noname -i386 -private K32WOWGetVDMPointerFix(long long long) krnl386.exe16.K32WOWGetVDMPointerFix
+ 69 stdcall -noname -i386 -private K32WOWGetVDMPointerUnfix(long) krnl386.exe16.K32WOWGetVDMPointerUnfix
+ 70 stdcall -noname -i386 -private K32WOWGetDescriptor(long long) krnl386.exe16.K32WOWGetDescriptor
  71 stub -noname -i386 IsThreadId
- 72 stdcall -noname -i386 -ret64 K32RtlLargeIntegerAdd(long long long long) ntdll.RtlLargeIntegerAdd
- 73 stdcall -noname -i386 -ret64 K32RtlEnlargedIntegerMultiply(long long) ntdll.RtlEnlargedIntegerMultiply
- 74 stdcall -noname -i386 -ret64 K32RtlEnlargedUnsignedMultiply(long long) ntdll.RtlEnlargedUnsignedMultiply
- 75 stdcall -noname -i386 K32RtlEnlargedUnsignedDivide(long long long ptr) ntdll.RtlEnlargedUnsignedDivide
- 76 stdcall -noname -i386 -ret64 K32RtlExtendedLargeIntegerDivide(long long long ptr) ntdll.RtlExtendedLargeIntegerDivide
- 77 stdcall -noname -i386 -ret64 K32RtlExtendedMagicDivide(long long long long long) ntdll.RtlExtendedMagicDivide
- 78 stdcall -noname -i386 -ret64 K32RtlExtendedIntegerMultiply(long long long) ntdll.RtlExtendedIntegerMultiply
- 79 stdcall -noname -i386 -ret64 K32RtlLargeIntegerShiftLeft(long long long) ntdll.RtlLargeIntegerShiftLeft
- 80 stdcall -noname -i386 -ret64 K32RtlLargeIntegerShiftRight(long long long) ntdll.RtlLargeIntegerShiftRight
- 81 stdcall -noname -i386 -ret64 K32RtlLargeIntegerArithmeticShift(long long long) ntdll.RtlLargeIntegerArithmeticShift
- 82 stdcall -noname -i386 -ret64 K32RtlLargeIntegerNegate(long long) ntdll.RtlLargeIntegerNegate
- 83 stdcall -noname -i386 -ret64 K32RtlLargeIntegerSubtract(long long long long) ntdll.RtlLargeIntegerSubtract
- 84 stdcall -noname -i386 -ret64 K32RtlConvertLongToLargeInteger(long) ntdll.RtlConvertLongToLargeInteger
- 85 stdcall -noname -i386 -ret64 K32RtlConvertUlongToLargeInteger(long) ntdll.RtlConvertUlongToLargeInteger
- 86 stdcall -i386 @(ptr) krnl386.exe16._KERNEL32_86
- 87 stdcall -noname -i386 SSOnBigStack() krnl386.exe16.SSOnBigStack
- 88 varargs -noname -i386 SSCall(long long ptr) krnl386.exe16.SSCall
- 89 stdcall -noname -i386 -register FT_PrologPrime() krnl386.exe16.FT_PrologPrime
- 90 stdcall -noname -i386 -register QT_ThunkPrime() krnl386.exe16.QT_ThunkPrime
- 91 stdcall -noname -i386 PK16FNF(ptr) krnl386.exe16.PK16FNF
- 92 stdcall -noname -i386 GetPK16SysVar() krnl386.exe16.GetPK16SysVar
- 93 stdcall -noname -i386 GetpWin16Lock(ptr) krnl386.exe16.GetpWin16Lock
- 94 stdcall -noname -i386 _CheckNotSysLevel(ptr) krnl386.exe16._CheckNotSysLevel
- 95 stdcall -noname -i386 _ConfirmSysLevel(ptr) krnl386.exe16._ConfirmSysLevel
- 96 stdcall -noname -i386 _ConfirmWin16Lock() krnl386.exe16._ConfirmWin16Lock
- 97 stdcall -noname -i386 _EnterSysLevel(ptr) krnl386.exe16._EnterSysLevel
- 98 stdcall -noname -i386 _LeaveSysLevel(ptr) krnl386.exe16._LeaveSysLevel
- 99 stdcall -i386 @(long) krnl386.exe16._KERNEL32_99
-100 stdcall -i386 @(long long long) krnl386.exe16._KERNEL32_100
+ 72 stdcall -noname -i386 -private -ret64 K32RtlLargeIntegerAdd(long long long long) ntdll.RtlLargeIntegerAdd
+ 73 stdcall -noname -i386 -private -ret64 K32RtlEnlargedIntegerMultiply(long long) ntdll.RtlEnlargedIntegerMultiply
+ 74 stdcall -noname -i386 -private -ret64 K32RtlEnlargedUnsignedMultiply(long long) ntdll.RtlEnlargedUnsignedMultiply
+ 75 stdcall -noname -i386 -private K32RtlEnlargedUnsignedDivide(long long long ptr) ntdll.RtlEnlargedUnsignedDivide
+ 76 stdcall -noname -i386 -private -ret64 K32RtlExtendedLargeIntegerDivide(long long long ptr) ntdll.RtlExtendedLargeIntegerDivide
+ 77 stdcall -noname -i386 -private -ret64 K32RtlExtendedMagicDivide(long long long long long) ntdll.RtlExtendedMagicDivide
+ 78 stdcall -noname -i386 -private -ret64 K32RtlExtendedIntegerMultiply(long long long) ntdll.RtlExtendedIntegerMultiply
+ 79 stdcall -noname -i386 -private -ret64 K32RtlLargeIntegerShiftLeft(long long long) ntdll.RtlLargeIntegerShiftLeft
+ 80 stdcall -noname -i386 -private -ret64 K32RtlLargeIntegerShiftRight(long long long) ntdll.RtlLargeIntegerShiftRight
+ 81 stdcall -noname -i386 -private -ret64 K32RtlLargeIntegerArithmeticShift(long long long) ntdll.RtlLargeIntegerArithmeticShift
+ 82 stdcall -noname -i386 -private -ret64 K32RtlLargeIntegerNegate(long long) ntdll.RtlLargeIntegerNegate
+ 83 stdcall -noname -i386 -private -ret64 K32RtlLargeIntegerSubtract(long long long long) ntdll.RtlLargeIntegerSubtract
+ 84 stdcall -noname -i386 -private -ret64 K32RtlConvertLongToLargeInteger(long) ntdll.RtlConvertLongToLargeInteger
+ 85 stdcall -noname -i386 -private -ret64 K32RtlConvertUlongToLargeInteger(long) ntdll.RtlConvertUlongToLargeInteger
+ 86 stdcall -i386 -private @(ptr) krnl386.exe16._KERNEL32_86
+ 87 stdcall -noname -i386 -private SSOnBigStack() krnl386.exe16.SSOnBigStack
+ 88 varargs -noname -i386 -private SSCall(long long ptr) krnl386.exe16.SSCall
+ 89 stdcall -noname -i386 -private -register FT_PrologPrime() krnl386.exe16.FT_PrologPrime
+ 90 stdcall -noname -i386 -private -register QT_ThunkPrime() krnl386.exe16.QT_ThunkPrime
+ 91 stdcall -noname -i386 -private PK16FNF(ptr) krnl386.exe16.PK16FNF
+ 92 stdcall -noname -i386 -private GetPK16SysVar() krnl386.exe16.GetPK16SysVar
+ 93 stdcall -noname -i386 -private GetpWin16Lock(ptr) krnl386.exe16.GetpWin16Lock
+ 94 stdcall -noname -i386 -private _CheckNotSysLevel(ptr) krnl386.exe16._CheckNotSysLevel
+ 95 stdcall -noname -i386 -private _ConfirmSysLevel(ptr) krnl386.exe16._ConfirmSysLevel
+ 96 stdcall -noname -i386 -private _ConfirmWin16Lock() krnl386.exe16._ConfirmWin16Lock
+ 97 stdcall -noname -i386 -private _EnterSysLevel(ptr) krnl386.exe16._EnterSysLevel
+ 98 stdcall -noname -i386 -private _LeaveSysLevel(ptr) krnl386.exe16._LeaveSysLevel
+ 99 stdcall -i386 -private @(long) krnl386.exe16._KERNEL32_99
+100 stdcall -i386 -private @(long long long) krnl386.exe16._KERNEL32_100
 101 stub -i386 @
 102 stub -i386 @
 103 stub -i386 @
@@ -144,7 +144,7 @@
 @ stdcall AddVectoredExceptionHandler(long ptr) ntdll.RtlAddVectoredExceptionHandler
 @ stdcall AllocConsole()
 @ stub -i386 AllocLSCallback
-@ stdcall -i386 AllocSLCallback(ptr ptr) krnl386.exe16.AllocSLCallback
+@ stdcall -i386 -private AllocSLCallback(ptr ptr) krnl386.exe16.AllocSLCallback
 @ stub AllocateUserPhysicalPages
 @ stdcall AreFileApisANSI()
 @ stdcall AssignProcessToJobObject(ptr ptr)
@@ -341,23 +341,23 @@
 @ stub ExpungeConsoleCommandHistoryA
 @ stub ExpungeConsoleCommandHistoryW
 @ stub ExtendVirtualBuffer
-@ stdcall -i386 -norelay FT_Exit0() krnl386.exe16.FT_Exit0
-@ stdcall -i386 -norelay FT_Exit12() krnl386.exe16.FT_Exit12
-@ stdcall -i386 -norelay FT_Exit16() krnl386.exe16.FT_Exit16
-@ stdcall -i386 -norelay FT_Exit20() krnl386.exe16.FT_Exit20
-@ stdcall -i386 -norelay FT_Exit24() krnl386.exe16.FT_Exit24
-@ stdcall -i386 -norelay FT_Exit28() krnl386.exe16.FT_Exit28
-@ stdcall -i386 -norelay FT_Exit32() krnl386.exe16.FT_Exit32
-@ stdcall -i386 -norelay FT_Exit36() krnl386.exe16.FT_Exit36
-@ stdcall -i386 -norelay FT_Exit40() krnl386.exe16.FT_Exit40
-@ stdcall -i386 -norelay FT_Exit44() krnl386.exe16.FT_Exit44
-@ stdcall -i386 -norelay FT_Exit48() krnl386.exe16.FT_Exit48
-@ stdcall -i386 -norelay FT_Exit4() krnl386.exe16.FT_Exit4
-@ stdcall -i386 -norelay FT_Exit52() krnl386.exe16.FT_Exit52
-@ stdcall -i386 -norelay FT_Exit56() krnl386.exe16.FT_Exit56
-@ stdcall -i386 -norelay FT_Exit8() krnl386.exe16.FT_Exit8
-@ stdcall -i386 -register FT_Prolog() krnl386.exe16.FT_Prolog
-@ stdcall -i386 -register FT_Thunk() krnl386.exe16.FT_Thunk
+@ stdcall -i386 -private -norelay FT_Exit0() krnl386.exe16.FT_Exit0
+@ stdcall -i386 -private -norelay FT_Exit12() krnl386.exe16.FT_Exit12
+@ stdcall -i386 -private -norelay FT_Exit16() krnl386.exe16.FT_Exit16
+@ stdcall -i386 -private -norelay FT_Exit20() krnl386.exe16.FT_Exit20
+@ stdcall -i386 -private -norelay FT_Exit24() krnl386.exe16.FT_Exit24
+@ stdcall -i386 -private -norelay FT_Exit28() krnl386.exe16.FT_Exit28
+@ stdcall -i386 -private -norelay FT_Exit32() krnl386.exe16.FT_Exit32
+@ stdcall -i386 -private -norelay FT_Exit36() krnl386.exe16.FT_Exit36
+@ stdcall -i386 -private -norelay FT_Exit40() krnl386.exe16.FT_Exit40
+@ stdcall -i386 -private -norelay FT_Exit44() krnl386.exe16.FT_Exit44
+@ stdcall -i386 -private -norelay FT_Exit48() krnl386.exe16.FT_Exit48
+@ stdcall -i386 -private -norelay FT_Exit4() krnl386.exe16.FT_Exit4
+@ stdcall -i386 -private -norelay FT_Exit52() krnl386.exe16.FT_Exit52
+@ stdcall -i386 -private -norelay FT_Exit56() krnl386.exe16.FT_Exit56
+@ stdcall -i386 -private -norelay FT_Exit8() krnl386.exe16.FT_Exit8
+@ stdcall -i386 -private -register FT_Prolog() krnl386.exe16.FT_Prolog
+@ stdcall -i386 -private -register FT_Thunk() krnl386.exe16.FT_Thunk
 @ stdcall FatalAppExitA(long str)
 @ stdcall FatalAppExitW(long wstr)
 @ stdcall FatalExit(long)
@@ -416,11 +416,11 @@
 @ stdcall FreeLibrary(long)
 @ stdcall FreeLibraryAndExitThread(long long)
 @ stdcall FreeResource(long)
-@ stdcall -i386 FreeSLCallback(long) krnl386.exe16.FreeSLCallback
+@ stdcall -i386 -private FreeSLCallback(long) krnl386.exe16.FreeSLCallback
 @ stub FreeUserPhysicalPages
 @ stub FreeVirtualBuffer
 @ stdcall GenerateConsoleCtrlEvent(long long)
-@ stdcall -i386 Get16DLLAddress(long str) krnl386.exe16.Get16DLLAddress
+@ stdcall -i386 -private Get16DLLAddress(long str) krnl386.exe16.Get16DLLAddress
 @ stdcall GetACP()
 @ stdcall GetAtomNameA(long ptr long)
 @ stdcall GetAtomNameW(long ptr long)
@@ -754,8 +754,8 @@
 @ stdcall IsValidLocale(long long)
 # @ stub IsValidUILanguage
 @ stdcall IsWow64Process(ptr ptr)
-@ stdcall -i386 -register K32Thk1632Epilog() krnl386.exe16.K32Thk1632Epilog
-@ stdcall -i386 -register K32Thk1632Prolog() krnl386.exe16.K32Thk1632Prolog
+@ stdcall -i386 -private -register K32Thk1632Epilog() krnl386.exe16.K32Thk1632Epilog
+@ stdcall -i386 -private -register K32Thk1632Prolog() krnl386.exe16.K32Thk1632Prolog
 @ stdcall LCIDToLocaleName(long ptr long long)
 @ stdcall LCMapStringA(long long str long ptr long)
 @ stdcall LCMapStringW(long long wstr long ptr long)
@@ -793,15 +793,15 @@
 @ stdcall LockFileEx(long long long long long ptr)
 @ stdcall LockResource(long)
 @ stdcall MakeCriticalSectionGlobal(ptr)
-@ stdcall -i386 -norelay MapHInstLS() krnl386.exe16.MapHInstLS
-@ stdcall -i386 -norelay MapHInstLS_PN() krnl386.exe16.MapHInstLS_PN
-@ stdcall -i386 -norelay MapHInstSL() krnl386.exe16.MapHInstSL
-@ stdcall -i386 -norelay MapHInstSL_PN() krnl386.exe16.MapHInstSL_PN
-@ stdcall -i386 MapHModuleLS(long) krnl386.exe16.MapHModuleLS
-@ stdcall -i386 MapHModuleSL(long) krnl386.exe16.MapHModuleSL
-@ stdcall -i386 MapLS(ptr) krnl386.exe16.MapLS
-@ stdcall -i386 MapSL(long) krnl386.exe16.MapSL
-@ stdcall -i386 MapSLFix(long) krnl386.exe16.MapSLFix
+@ stdcall -i386 -private -norelay MapHInstLS() krnl386.exe16.MapHInstLS
+@ stdcall -i386 -private -norelay MapHInstLS_PN() krnl386.exe16.MapHInstLS_PN
+@ stdcall -i386 -private -norelay MapHInstSL() krnl386.exe16.MapHInstSL
+@ stdcall -i386 -private -norelay MapHInstSL_PN() krnl386.exe16.MapHInstSL_PN
+@ stdcall -i386 -private MapHModuleLS(long) krnl386.exe16.MapHModuleLS
+@ stdcall -i386 -private MapHModuleSL(long) krnl386.exe16.MapHModuleSL
+@ stdcall -i386 -private MapLS(ptr) krnl386.exe16.MapLS
+@ stdcall -i386 -private MapSL(long) krnl386.exe16.MapSL
+@ stdcall -i386 -private MapSLFix(long) krnl386.exe16.MapSLFix
 # @ stub MapUserPhysicalPages
 # @ stub MapUserPhysicalPagesScatter
 @ stdcall MapViewOfFile(long long long long long)
@@ -853,8 +853,8 @@
 @ stdcall PrepareTape(ptr long long)
 @ stub PrivCopyFileExW
 @ stub PrivMoveFileIdentityW
-@ stdcall -i386 PrivateFreeLibrary(long) krnl386.exe16.PrivateFreeLibrary
-@ stdcall -i386 PrivateLoadLibrary(str) krnl386.exe16.PrivateLoadLibrary
+@ stdcall -i386 -private PrivateFreeLibrary(long) krnl386.exe16.PrivateFreeLibrary
+@ stdcall -i386 -private PrivateLoadLibrary(str) krnl386.exe16.PrivateLoadLibrary
 @ stdcall Process32First (ptr ptr)
 @ stdcall Process32FirstW (ptr ptr)
 @ stdcall Process32Next (ptr ptr)
@@ -862,7 +862,7 @@
 @ stdcall ProcessIdToSessionId(long ptr)
 @ stdcall PulseEvent(long)
 @ stdcall PurgeComm(long long)
-@ stdcall -i386 -register QT_Thunk() krnl386.exe16.QT_Thunk
+@ stdcall -i386 -private -register QT_Thunk() krnl386.exe16.QT_Thunk
 @ stdcall QueryActCtxW(long ptr ptr long ptr long ptr)
 @ stdcall QueryDepthSList(ptr) ntdll.RtlQueryDepthSList
 @ stdcall QueryDosDeviceA(str ptr long)
@@ -934,26 +934,26 @@
 @ stdcall -arch=x86_64 RtlUnwindEx(long long ptr long ptr) ntdll.RtlUnwindEx
 @ stdcall -arch=x86_64 RtlVirtualUnwind(long long long ptr ptr ptr ptr ptr) ntdll.RtlVirtualUnwind
 @ stdcall RtlZeroMemory(ptr long) ntdll.RtlZeroMemory
-@ stdcall -i386 -norelay SMapLS() krnl386.exe16.SMapLS
-@ stdcall -i386 -norelay SMapLS_IP_EBP_12() krnl386.exe16.SMapLS_IP_EBP_12
-@ stdcall -i386 -norelay SMapLS_IP_EBP_16() krnl386.exe16.SMapLS_IP_EBP_16
-@ stdcall -i386 -norelay SMapLS_IP_EBP_20() krnl386.exe16.SMapLS_IP_EBP_20
-@ stdcall -i386 -norelay SMapLS_IP_EBP_24() krnl386.exe16.SMapLS_IP_EBP_24
-@ stdcall -i386 -norelay SMapLS_IP_EBP_28() krnl386.exe16.SMapLS_IP_EBP_28
-@ stdcall -i386 -norelay SMapLS_IP_EBP_32() krnl386.exe16.SMapLS_IP_EBP_32
-@ stdcall -i386 -norelay SMapLS_IP_EBP_36() krnl386.exe16.SMapLS_IP_EBP_36
-@ stdcall -i386 -norelay SMapLS_IP_EBP_40() krnl386.exe16.SMapLS_IP_EBP_40
-@ stdcall -i386 -norelay SMapLS_IP_EBP_8() krnl386.exe16.SMapLS_IP_EBP_8
-@ stdcall -i386 -norelay SUnMapLS() krnl386.exe16.SUnMapLS
-@ stdcall -i386 -norelay SUnMapLS_IP_EBP_12() krnl386.exe16.SUnMapLS_IP_EBP_12
-@ stdcall -i386 -norelay SUnMapLS_IP_EBP_16() krnl386.exe16.SUnMapLS_IP_EBP_16
-@ stdcall -i386 -norelay SUnMapLS_IP_EBP_20() krnl386.exe16.SUnMapLS_IP_EBP_20
-@ stdcall -i386 -norelay SUnMapLS_IP_EBP_24() krnl386.exe16.SUnMapLS_IP_EBP_24
-@ stdcall -i386 -norelay SUnMapLS_IP_EBP_28() krnl386.exe16.SUnMapLS_IP_EBP_28
-@ stdcall -i386 -norelay SUnMapLS_IP_EBP_32() krnl386.exe16.SUnMapLS_IP_EBP_32
-@ stdcall -i386 -norelay SUnMapLS_IP_EBP_36() krnl386.exe16.SUnMapLS_IP_EBP_36
-@ stdcall -i386 -norelay SUnMapLS_IP_EBP_40() krnl386.exe16.SUnMapLS_IP_EBP_40
-@ stdcall -i386 -norelay SUnMapLS_IP_EBP_8() krnl386.exe16.SUnMapLS_IP_EBP_8
+@ stdcall -i386 -private -norelay SMapLS() krnl386.exe16.SMapLS
+@ stdcall -i386 -private -norelay SMapLS_IP_EBP_12() krnl386.exe16.SMapLS_IP_EBP_12
+@ stdcall -i386 -private -norelay SMapLS_IP_EBP_16() krnl386.exe16.SMapLS_IP_EBP_16
+@ stdcall -i386 -private -norelay SMapLS_IP_EBP_20() krnl386.exe16.SMapLS_IP_EBP_20
+@ stdcall -i386 -private -norelay SMapLS_IP_EBP_24() krnl386.exe16.SMapLS_IP_EBP_24
+@ stdcall -i386 -private -norelay SMapLS_IP_EBP_28() krnl386.exe16.SMapLS_IP_EBP_28
+@ stdcall -i386 -private -norelay SMapLS_IP_EBP_32() krnl386.exe16.SMapLS_IP_EBP_32
+@ stdcall -i386 -private -norelay SMapLS_IP_EBP_36() krnl386.exe16.SMapLS_IP_EBP_36
+@ stdcall -i386 -private -norelay SMapLS_IP_EBP_40() krnl386.exe16.SMapLS_IP_EBP_40
+@ stdcall -i386 -private -norelay SMapLS_IP_EBP_8() krnl386.exe16.SMapLS_IP_EBP_8
+@ stdcall -i386 -private -norelay SUnMapLS() krnl386.exe16.SUnMapLS
+@ stdcall -i386 -private -norelay SUnMapLS_IP_EBP_12() krnl386.exe16.SUnMapLS_IP_EBP_12
+@ stdcall -i386 -private -norelay SUnMapLS_IP_EBP_16() krnl386.exe16.SUnMapLS_IP_EBP_16
+@ stdcall -i386 -private -norelay SUnMapLS_IP_EBP_20() krnl386.exe16.SUnMapLS_IP_EBP_20
+@ stdcall -i386 -private -norelay SUnMapLS_IP_EBP_24() krnl386.exe16.SUnMapLS_IP_EBP_24
+@ stdcall -i386 -private -norelay SUnMapLS_IP_EBP_28() krnl386.exe16.SUnMapLS_IP_EBP_28
+@ stdcall -i386 -private -norelay SUnMapLS_IP_EBP_32() krnl386.exe16.SUnMapLS_IP_EBP_32
+@ stdcall -i386 -private -norelay SUnMapLS_IP_EBP_36() krnl386.exe16.SUnMapLS_IP_EBP_36
+@ stdcall -i386 -private -norelay SUnMapLS_IP_EBP_40() krnl386.exe16.SUnMapLS_IP_EBP_40
+@ stdcall -i386 -private -norelay SUnMapLS_IP_EBP_8() krnl386.exe16.SUnMapLS_IP_EBP_8
 @ stdcall ScrollConsoleScreenBufferA(long ptr ptr ptr ptr)
 @ stdcall ScrollConsoleScreenBufferW(long ptr ptr ptr ptr)
 @ stdcall SearchPathA(str str str long ptr ptr)
@@ -1088,7 +1088,7 @@
 @ stdcall TermsrvAppInstallMode()
 @ stdcall Thread32First(long ptr)
 @ stdcall Thread32Next(long ptr)
-@ stdcall -i386 ThunkConnect32(ptr str str str ptr ptr) krnl386.exe16.ThunkConnect32
+@ stdcall -i386 -private ThunkConnect32(ptr str str str ptr ptr) krnl386.exe16.ThunkConnect32
 @ stdcall TlsAlloc()
 @ stub TlsAllocInternal
 @ stdcall TlsFree(long)
@@ -1101,10 +1101,10 @@
 @ stub TrimVirtualBuffer
 @ stdcall TryEnterCriticalSection(ptr) ntdll.RtlTryEnterCriticalSection
 @ stdcall TzSpecificLocalTimeToSystemTime(ptr ptr ptr)
-@ stdcall -i386 UTRegister(long str str str ptr ptr ptr) krnl386.exe16.UTRegister
-@ stdcall -i386 UTUnRegister(long) krnl386.exe16.UTUnRegister
-@ stdcall -i386 UnMapLS(long) krnl386.exe16.UnMapLS
-@ stdcall -i386 -norelay UnMapSLFixArray(long long) krnl386.exe16.UnMapSLFixArray
+@ stdcall -i386 -private UTRegister(long str str str ptr ptr ptr) krnl386.exe16.UTRegister
+@ stdcall -i386 -private UTUnRegister(long) krnl386.exe16.UTUnRegister
+@ stdcall -i386 -private UnMapLS(long) krnl386.exe16.UnMapLS
+@ stdcall -i386 -private -norelay UnMapSLFixArray(long long) krnl386.exe16.UnMapSLFixArray
 @ stdcall UnhandledExceptionFilter(ptr)
 @ stdcall UninitializeCriticalSection(ptr)
 @ stdcall UnlockFile(long long long long long)
@@ -1208,61 +1208,15 @@
 @ stdcall lstrlenW(wstr)
 
 ################################################################
-# Wine extensions: Win16 functions that are needed by other dlls
-#
-@ stdcall -i386 _lclose16(long) krnl386.exe16._lclose16
-@ stdcall -i386 AllocCStoDSAlias16(long) krnl386.exe16.AllocCStoDSAlias16
-@ stdcall -i386 AllocSelectorArray16(long) krnl386.exe16.AllocSelectorArray16
-@ stdcall -i386 ConvertDialog32To16(ptr long ptr) krnl386.exe16.ConvertDialog32To16
-@ stdcall -i386 FarGetOwner16(long) krnl386.exe16.FarGetOwner16
-@ stdcall -i386 FarSetOwner16(long long) krnl386.exe16.FarSetOwner16
-@ stdcall -i386 FindResource16(long str str) krnl386.exe16.FindResource16
-@ stdcall -i386 FreeResource16(long) krnl386.exe16.FreeResource16
-@ stdcall -i386 FreeSelector16(long) krnl386.exe16.FreeSelector16
-@ stdcall -i386 GetCurrentPDB16() krnl386.exe16.GetCurrentPDB16
-@ stdcall -i386 GetCurrentTask() krnl386.exe16.GetCurrentTask
-@ stdcall -i386 GetDOSEnvironment16() krnl386.exe16.GetDOSEnvironment16
-@ stdcall -i386 GetExePtr(long) krnl386.exe16.GetExePtr
-@ stdcall -i386 GetExpWinVer16(long) krnl386.exe16.GetExpWinVer16
-@ stdcall -i386 GetModuleHandle16(str) krnl386.exe16.GetModuleHandle16
-@ stdcall -i386 GetSelectorLimit16(long) krnl386.exe16.GetSelectorLimit16
-@ stdcall -i386 GlobalDOSAlloc16(long) krnl386.exe16.GlobalDOSAlloc16
-@ stdcall -i386 GlobalDOSFree16(long) krnl386.exe16.GlobalDOSFree16
-@ stdcall -i386 GlobalFlags16(long) krnl386.exe16.GlobalFlags16
-@ stdcall -i386 GlobalReAlloc16(long long long) krnl386.exe16.GlobalReAlloc16
-@ stdcall -i386 InitTask16(ptr) krnl386.exe16.InitTask16
-@ stdcall -i386 IsBadReadPtr16(long long) krnl386.exe16.IsBadReadPtr16
-@ stdcall -i386 IsTask16(long) krnl386.exe16.IsTask16
-@ stdcall -i386 LoadModule16(str long) krnl386.exe16.LoadModule16
-@ stdcall -i386 LoadResource16(long long) krnl386.exe16.LoadResource16
-@ stdcall -i386 LocalAlloc16(long long) krnl386.exe16.LocalAlloc16
-@ stdcall -i386 LocalInit16(long long long) krnl386.exe16.LocalInit16
-@ stdcall -i386 LocalLock16(long) krnl386.exe16.LocalLock16
-@ stdcall -i386 LocalUnlock16(long) krnl386.exe16.LocalUnlock16
-@ stdcall -i386 LocalReAlloc16(long long long) krnl386.exe16.LocalReAlloc16
-@ stdcall -i386 LocalFree16(long) krnl386.exe16.LocalFree16
-@ stdcall -i386 LocalSize16(long) krnl386.exe16.LocalSize16
-@ stdcall -i386 LocalCompact16(long) krnl386.exe16.LocalCompact16
-@ stdcall -i386 LocalCountFree16() krnl386.exe16.LocalCountFree16
-@ stdcall -i386 LocalHeapSize16() krnl386.exe16.LocalHeapSize16
-@ stdcall -i386 LockResource16(long) krnl386.exe16.LockResource16
-@ stdcall -i386 SelectorAccessRights16(long long long) krnl386.exe16.SelectorAccessRights16
-@ stdcall -i386 SetSelectorBase(long long) krnl386.exe16.SetSelectorBase
-@ stdcall -i386 SetSelectorLimit16(long long) krnl386.exe16.SetSelectorLimit16
-@ stdcall -i386 SizeofResource16(long long) krnl386.exe16.SizeofResource16
-@ stdcall -i386 WinExec16(str long) krnl386.exe16.WinExec16
-
-################################################################
 # Wine internal extensions
 #
 # All functions must be prefixed with '__wine_' (for internal functions)
 # or 'wine_' (for user-visible functions) to avoid namespace conflicts.
 
 # 16-bit relays (for backwards compatibility)
-@ cdecl -i386 __wine_dll_register_16(ptr str)
-@ cdecl -i386 __wine_dll_unregister_16(ptr)
+@ cdecl -i386 -private __wine_dll_register_16(ptr str)
+@ cdecl -i386 -private __wine_dll_unregister_16(ptr)
 @ stub -i386 __wine_call_from_16_regs
-@ cdecl -i386 __wine_emulate_instruction(ptr ptr) krnl386.exe16.__wine_emulate_instruction
 
 # Unix files
 @ cdecl wine_get_unix_file_name(wstr)
diff --git a/dlls/krnl386.exe16/Makefile.in b/dlls/krnl386.exe16/Makefile.in
index e055628..a4edaa0 100644
--- a/dlls/krnl386.exe16/Makefile.in
+++ b/dlls/krnl386.exe16/Makefile.in
@@ -3,7 +3,9 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = krnl386.exe16
+IMPORTLIB = kernel
 IMPORTS   = kernel32 ntdll
+EXTRAIMPLIBFLAGS = --subsystem win16
 EXTRADLLFLAGS = -Wb,--subsystem,win16,--dll-name,kernel
 EXTRARCFLAGS  = -O res16
 
diff --git a/dlls/krnl386.exe16/krnl386.exe16.spec b/dlls/krnl386.exe16/krnl386.exe16.spec
index 7999a45..aacb409 100644
--- a/dlls/krnl386.exe16/krnl386.exe16.spec
+++ b/dlls/krnl386.exe16/krnl386.exe16.spec
@@ -744,7 +744,7 @@
 # or 'wine_' (for user-visible functions) to avoid namespace conflicts.
 
 # 16-bit relays
-@ cdecl -arch=win32 -private __wine_emulate_instruction(ptr ptr)
+@ cdecl -arch=win32 __wine_emulate_instruction(ptr ptr)
 
 # VxDs
 @ cdecl -arch=win32 -private __wine_vxd_open(wstr long ptr)
diff --git a/dlls/lzexpand.dll16/Makefile.in b/dlls/lzexpand.dll16/Makefile.in
index 367a3e5..098a0a5 100644
--- a/dlls/lzexpand.dll16/Makefile.in
+++ b/dlls/lzexpand.dll16/Makefile.in
@@ -3,7 +3,7 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = lzexpand.dll16
-IMPORTS   = lz32 kernel32
+IMPORTS   = lz32 kernel32 kernel
 EXTRADLLFLAGS = -Wb,--subsystem,win16,--main-module,lz32.dll
 
 C_SRCS = lzexpand.c
diff --git a/dlls/mmsystem.dll16/Makefile.in b/dlls/mmsystem.dll16/Makefile.in
index 8e20cac..36bf238 100644
--- a/dlls/mmsystem.dll16/Makefile.in
+++ b/dlls/mmsystem.dll16/Makefile.in
@@ -3,7 +3,7 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = mmsystem.dll16
-IMPORTS   = winmm user32 kernel32
+IMPORTS   = winmm user32 kernel32 kernel
 
 EXTRADLLFLAGS = -Wb,--subsystem,win16,--main-module,winmm.dll
 
diff --git a/dlls/msvideo.dll16/Makefile.in b/dlls/msvideo.dll16/Makefile.in
index 92429ec..a136c7b 100644
--- a/dlls/msvideo.dll16/Makefile.in
+++ b/dlls/msvideo.dll16/Makefile.in
@@ -3,7 +3,7 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = msvideo.dll16
-IMPORTS   = msvfw32 version advapi32 kernel32
+IMPORTS   = msvfw32 version advapi32 kernel32 kernel
 
 EXTRADLLFLAGS = -Wb,--subsystem,win16,--main-module,msvfw32.dll
 
diff --git a/dlls/ntoskrnl.exe/Makefile.in b/dlls/ntoskrnl.exe/Makefile.in
index 0dad8c3..4b9ad8f 100644
--- a/dlls/ntoskrnl.exe/Makefile.in
+++ b/dlls/ntoskrnl.exe/Makefile.in
@@ -4,7 +4,7 @@
 VPATH     = @srcdir@
 MODULE    = ntoskrnl.exe
 IMPORTLIB = ntoskrnl.exe
-IMPORTS   = kernel32 ntdll
+IMPORTS   = kernel32 kernel ntdll
 
 C_SRCS = \
 	ntoskrnl.c
diff --git a/dlls/ole2.dll16/Makefile.in b/dlls/ole2.dll16/Makefile.in
index 2fcfa28..ee3a95b 100644
--- a/dlls/ole2.dll16/Makefile.in
+++ b/dlls/ole2.dll16/Makefile.in
@@ -3,7 +3,7 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = ole2.dll16
-IMPORTS   = uuid ole32 user32 gdi32 kernel32
+IMPORTS   = uuid ole32 user32 gdi32 kernel32 kernel
 EXTRADLLFLAGS = -Wb,--subsystem,win16,--main-module,ole32.dll
 
 C_SRCS = \
diff --git a/dlls/ole2disp.dll16/Makefile.in b/dlls/ole2disp.dll16/Makefile.in
index 8a2349e..667c016 100644
--- a/dlls/ole2disp.dll16/Makefile.in
+++ b/dlls/ole2disp.dll16/Makefile.in
@@ -3,7 +3,7 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = ole2disp.dll16
-IMPORTS   = kernel32
+IMPORTS   = kernel32 kernel
 EXTRADLLFLAGS = -Wb,--subsystem,win16,--main-module,oleaut32.dll
 
 C_SRCS = ole2disp.c
diff --git a/dlls/olecli.dll16/Makefile.in b/dlls/olecli.dll16/Makefile.in
index 5ae4182..51baa78 100644
--- a/dlls/olecli.dll16/Makefile.in
+++ b/dlls/olecli.dll16/Makefile.in
@@ -3,7 +3,7 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = olecli.dll16
-IMPORTS   = gdi32 kernel32
+IMPORTS   = gdi32 kernel32 kernel
 EXTRADLLFLAGS = -Wb,--subsystem,win16,--main-module,olecli32.dll
 
 C_SRCS = olecli.c
diff --git a/dlls/setupx.dll16/Makefile.in b/dlls/setupx.dll16/Makefile.in
index 78aca16..40c73f9 100644
--- a/dlls/setupx.dll16/Makefile.in
+++ b/dlls/setupx.dll16/Makefile.in
@@ -3,7 +3,7 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = setupx.dll16
-IMPORTS   = setupapi user32 advapi32 kernel32
+IMPORTS   = setupapi user32 advapi32 kernel32 kernel
 
 EXTRADLLFLAGS = -Wb,--subsystem,win16,--main-module,setupapi.dll
 
diff --git a/dlls/shell.dll16/Makefile.in b/dlls/shell.dll16/Makefile.in
index afa7d8d..8dff0a9 100644
--- a/dlls/shell.dll16/Makefile.in
+++ b/dlls/shell.dll16/Makefile.in
@@ -3,7 +3,7 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = shell.dll16
-IMPORTS   = shell32 user32 advapi32 kernel32
+IMPORTS   = shell32 user32 advapi32 kernel32 kernel
 
 EXTRADLLFLAGS = -Wb,--subsystem,win16,--main-module,shell32.dll
 EXTRARCFLAGS  = -O res16
diff --git a/dlls/storage.dll16/Makefile.in b/dlls/storage.dll16/Makefile.in
index 66768fa..ab2716b 100644
--- a/dlls/storage.dll16/Makefile.in
+++ b/dlls/storage.dll16/Makefile.in
@@ -3,7 +3,7 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = storage.dll16
-IMPORTS   = uuid ole32 kernel32 ntdll
+IMPORTS   = uuid ole32 kernel32 kernel ntdll
 EXTRADLLFLAGS = -Wb,--subsystem,win16,--main-module,ole32.dll
 
 C_SRCS = storage.c
diff --git a/dlls/system.drv16/Makefile.in b/dlls/system.drv16/Makefile.in
index f3e64b0..ac04f50 100644
--- a/dlls/system.drv16/Makefile.in
+++ b/dlls/system.drv16/Makefile.in
@@ -3,7 +3,7 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = system.drv16
-IMPORTS   = kernel32 ntdll
+IMPORTS   = kernel32 kernel ntdll
 EXTRADLLFLAGS = -Wb,--subsystem,win16
 
 C_SRCS = system.c
diff --git a/dlls/toolhelp.dll16/Makefile.in b/dlls/toolhelp.dll16/Makefile.in
index 75d8842..8163037 100644
--- a/dlls/toolhelp.dll16/Makefile.in
+++ b/dlls/toolhelp.dll16/Makefile.in
@@ -3,7 +3,7 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = toolhelp.dll16
-IMPORTS   = kernel32 ntdll
+IMPORTS   = kernel32 kernel ntdll
 EXTRADLLFLAGS = -Wb,--subsystem,win16
 
 C_SRCS = toolhelp.c
diff --git a/dlls/typelib.dll16/Makefile.in b/dlls/typelib.dll16/Makefile.in
index 35b1ab1..37ebe95 100644
--- a/dlls/typelib.dll16/Makefile.in
+++ b/dlls/typelib.dll16/Makefile.in
@@ -3,7 +3,7 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = typelib.dll16
-IMPORTS   = oleaut32 advapi32 kernel32
+IMPORTS   = oleaut32 advapi32 kernel32 kernel
 EXTRADLLFLAGS = -Wb,--subsystem,win16,--main-module,oleaut32.dll
 
 C_SRCS = typelib.c
diff --git a/dlls/user.exe16/Makefile.in b/dlls/user.exe16/Makefile.in
index 078230c..9efa686 100644
--- a/dlls/user.exe16/Makefile.in
+++ b/dlls/user.exe16/Makefile.in
@@ -3,7 +3,7 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = user.exe16
-IMPORTS   = user32 gdi32 kernel32 ntdll
+IMPORTS   = user32 gdi32 kernel32 kernel ntdll
 EXTRADLLFLAGS = -Wb,--subsystem,win16,--main-module,user32.dll,--heap,65520
 EXTRARCFLAGS  = -O res16
 
diff --git a/dlls/ver.dll16/Makefile.in b/dlls/ver.dll16/Makefile.in
index 6d0c30a..855c50c 100644
--- a/dlls/ver.dll16/Makefile.in
+++ b/dlls/ver.dll16/Makefile.in
@@ -3,7 +3,7 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = ver.dll16
-IMPORTS   = version lz32 kernel32
+IMPORTS   = version lz32 kernel32 kernel
 
 EXTRADLLFLAGS = -Wb,--subsystem,win16,--main-module,version.dll
 
diff --git a/dlls/w32skrnl/Makefile.in b/dlls/w32skrnl/Makefile.in
index 8067d14..c0d3df5 100644
--- a/dlls/w32skrnl/Makefile.in
+++ b/dlls/w32skrnl/Makefile.in
@@ -3,7 +3,7 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = w32skrnl.dll
-IMPORTS   = kernel32 ntdll
+IMPORTS   = kernel32 kernel ntdll
 
 C_SRCS = w32skernel.c
 
diff --git a/dlls/w32sys.dll16/Makefile.in b/dlls/w32sys.dll16/Makefile.in
index 7c62613..46e50e9 100644
--- a/dlls/w32sys.dll16/Makefile.in
+++ b/dlls/w32sys.dll16/Makefile.in
@@ -3,7 +3,7 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = w32sys.dll16
-IMPORTS   = kernel32
+IMPORTS   = kernel32 kernel
 EXTRADLLFLAGS = -Wb,--subsystem,win16,--main-module,w32skrnl.dll
 
 C_SRCS = w32sys.c
diff --git a/dlls/win32s16.dll16/Makefile.in b/dlls/win32s16.dll16/Makefile.in
index 40fa726..06e1a62 100644
--- a/dlls/win32s16.dll16/Makefile.in
+++ b/dlls/win32s16.dll16/Makefile.in
@@ -3,7 +3,7 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = win32s16.dll16
-IMPORTS   = kernel32
+IMPORTS   = kernel32 kernel
 EXTRADLLFLAGS = -Wb,--subsystem,win16,--main-module,w32skrnl.dll
 
 C_SRCS = win32s16.c
diff --git a/dlls/winaspi.dll16/Makefile.in b/dlls/winaspi.dll16/Makefile.in
index 2c9afcd..5b87efa 100644
--- a/dlls/winaspi.dll16/Makefile.in
+++ b/dlls/winaspi.dll16/Makefile.in
@@ -3,7 +3,7 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = winaspi.dll16
-IMPORTS   = advapi32 kernel32
+IMPORTS   = advapi32 kernel32 kernel
 EXTRADLLFLAGS = -Wb,--subsystem,win16,--main-module,wnaspi32.dll
 
 C_SRCS = winaspi.c
diff --git a/dlls/winedos/Makefile.in b/dlls/winedos/Makefile.in
index 58a50c9..ae340a2 100644
--- a/dlls/winedos/Makefile.in
+++ b/dlls/winedos/Makefile.in
@@ -3,7 +3,7 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = winedos.dll
-IMPORTS   = user32 kernel32 ntdll
+IMPORTS   = user32 kernel32 kernel ntdll
 
 C_SRCS = \
 	devices.c \
diff --git a/dlls/wing.dll16/Makefile.in b/dlls/wing.dll16/Makefile.in
index a3e42f2..2d814d7 100644
--- a/dlls/wing.dll16/Makefile.in
+++ b/dlls/wing.dll16/Makefile.in
@@ -3,7 +3,7 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = wing.dll16
-IMPORTS   = gdi32 kernel32
+IMPORTS   = gdi32 kernel32 kernel
 EXTRADLLFLAGS = -Wb,--subsystem,win16
 
 C_SRCS = wing.c
diff --git a/dlls/winsock.dll16/Makefile.in b/dlls/winsock.dll16/Makefile.in
index fc90dc4..243342d 100644
--- a/dlls/winsock.dll16/Makefile.in
+++ b/dlls/winsock.dll16/Makefile.in
@@ -3,7 +3,7 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = winsock.dll16
-IMPORTS   = ws2_32 kernel32
+IMPORTS   = ws2_32 kernel32 kernel
 DELAYIMPORTS = user32
 EXTRADLLFLAGS = -Wb,--subsystem,win16,--main-module,ws2_32.dll
 
diff --git a/dlls/wow32/Makefile.in b/dlls/wow32/Makefile.in
index e1f5098..c8aaddd 100644
--- a/dlls/wow32/Makefile.in
+++ b/dlls/wow32/Makefile.in
@@ -4,7 +4,7 @@
 VPATH     = @srcdir@
 MODULE    = wow32.dll
 IMPORTLIB = wow32
-IMPORTS   = kernel32
+IMPORTS   = kernel32 kernel
 
 C_SRCS = wow_main.c
 
diff --git a/programs/winevdm/Makefile.in b/programs/winevdm/Makefile.in
index b2bc317..5bbcad2 100644
--- a/programs/winevdm/Makefile.in
+++ b/programs/winevdm/Makefile.in
@@ -5,7 +5,7 @@
 VPATH     = @srcdir@
 MODULE    = winevdm.exe
 APPMODE   = -mconsole
-IMPORTS   = user32 kernel32
+IMPORTS   = user32 kernel32 kernel
 
 C_SRCS = \
 	winevdm.c
diff --git a/programs/winhelp.exe16/Makefile.in b/programs/winhelp.exe16/Makefile.in
index a41791b..f0e56e2 100644
--- a/programs/winhelp.exe16/Makefile.in
+++ b/programs/winhelp.exe16/Makefile.in
@@ -4,7 +4,7 @@
 VPATH     = @srcdir@
 MODULE    = winhelp.exe16
 APPMODE   = -mwindows -Wb,--subsystem,win16
-IMPORTS   = kernel32
+IMPORTS   = kernel32 kernel
 
 C_SRCS = winhelp.c
 
diff --git a/programs/winoldap.mod16/Makefile.in b/programs/winoldap.mod16/Makefile.in
index 4561e24..dc519c5 100644
--- a/programs/winoldap.mod16/Makefile.in
+++ b/programs/winoldap.mod16/Makefile.in
@@ -4,7 +4,7 @@
 VPATH     = @srcdir@
 MODULE    = winoldap.mod16
 APPMODE   = -mwindows -Wb,--subsystem,win16
-IMPORTS   = kernel32 ntdll
+IMPORTS   = kernel32 kernel ntdll
 
 C_SRCS = winoldap.c