From 2d6abdac2dc83a059e6c3ef0ee83f5b7011f1f4c Mon Sep 17 00:00:00 2001 From: Alex Ionescu Date: Thu, 21 Jul 2011 02:55:56 +0000 Subject: [PATCH] NO CODE CHANGE [KERNEL32]: Final part of the re-structure: move the last few files from "misc" into "client". Now "misc" is mostly composed of Wine-based code (which will soon by Winesynched) that provides functionality such as INI, .rsrc parsing and LZip expansion, as well as the RS232-based APIs. The rest of "client" is NT-layer glue, much of it buggy and in need of help. [KERNEL32]: Move "Beep" from environ.c to deviceio.c... seems to make more sense there. [KERNEL32]: Set kernel32_handle since Wine-synched code will depend on this. [KERNEL32]: Link with winelib, don't link with normaliz anymore. svn path=/trunk/; revision=52752 --- reactos/dll/win32/kernel32/CMakeLists.txt | 28 +++---- .../win32/kernel32/client/{misc => }/atom.c | 0 .../{misc/computername.c => compname.c} | 0 .../kernel32/client/{misc => }/dllmain.c | 3 +- .../kernel32/client/{misc/env.c => environ.c} | 79 ------------------- .../dll/win32/kernel32/client/file/deviceio.c | 79 +++++++++++++++++++ .../win32/kernel32/client/{misc => }/handle.c | 0 .../kernel32/client/{misc/ldr.c => loader.c} | 0 .../kernel32/client/{misc => }/perfcnt.c | 0 .../win32/kernel32/client/{misc => }/power.c | 0 .../kernel32/client/{misc => }/resntfy.c | 0 .../kernel32/client/{misc => }/sysinfo.c | 0 .../kernel32/client/{misc => }/timerqueue.c | 0 .../win32/kernel32/client/{misc => }/utils.c | 0 .../kernel32/client/{misc => }/version.c | 0 reactos/dll/win32/kernel32/kernel32.rbuild | 42 +++++----- 16 files changed, 114 insertions(+), 117 deletions(-) rename reactos/dll/win32/kernel32/client/{misc => }/atom.c (100%) rename reactos/dll/win32/kernel32/client/{misc/computername.c => compname.c} (100%) rename reactos/dll/win32/kernel32/client/{misc => }/dllmain.c (99%) rename reactos/dll/win32/kernel32/client/{misc/env.c => environ.c} (82%) rename reactos/dll/win32/kernel32/client/{misc => }/handle.c (100%) rename reactos/dll/win32/kernel32/client/{misc/ldr.c => loader.c} (100%) rename reactos/dll/win32/kernel32/client/{misc => }/perfcnt.c (100%) rename reactos/dll/win32/kernel32/client/{misc => }/power.c (100%) rename reactos/dll/win32/kernel32/client/{misc => }/resntfy.c (100%) rename reactos/dll/win32/kernel32/client/{misc => }/sysinfo.c (100%) rename reactos/dll/win32/kernel32/client/{misc => }/timerqueue.c (100%) rename reactos/dll/win32/kernel32/client/{misc => }/utils.c (100%) rename reactos/dll/win32/kernel32/client/{misc => }/version.c (100%) diff --git a/reactos/dll/win32/kernel32/CMakeLists.txt b/reactos/dll/win32/kernel32/CMakeLists.txt index 125128cb01a..0cd09d415eb 100644 --- a/reactos/dll/win32/kernel32/CMakeLists.txt +++ b/reactos/dll/win32/kernel32/CMakeLists.txt @@ -11,15 +11,28 @@ set_rc_compiler() spec2def(kernel32.dll kernel32.spec) list(APPEND SOURCE + client/atom.c + client/compname.c client/debugger.c + client/dllmain.c + client/environ.c client/except.c client/fiber.c + client/handle.c client/heapmem.c client/job.c + client/loader.c + client/perfcnt.c + client/power.c client/proc.c + client/resntfy.c client/session.c client/synch.c + client/sysinfo.c + client/timerqueue.c + client/utils.c client/thread.c + client/version.c client/virtmem.c client/vista.c client/file/backup.c @@ -48,28 +61,15 @@ list(APPEND SOURCE client/file/tape.c client/file/volume.c client/misc/actctx.c - client/misc/atom.c client/misc/comm.c client/misc/commdcb.c - client/misc/computername.c - client/misc/dllmain.c - client/misc/env.c - client/misc/handle.c - client/misc/ldr.c client/misc/lzexpand.c client/misc/muldiv.c - client/misc/perfcnt.c - client/misc/power.c client/misc/profile.c client/misc/res.c - client/misc/resntfy.c client/misc/stubs.c - client/misc/sysinfo.c client/misc/time.c - client/misc/timerqueue.c client/misc/toolhelp.c - client/misc/utils.c - client/misc/version.c winnls/string/casemap.c winnls/string/chartype.c winnls/string/collation.c @@ -98,7 +98,7 @@ add_library(kernel32 SHARED ${SOURCE}) set_entrypoint(kernel32 DllMain@12) set_image_base(kernel32 ${baseaddress_kernel32}) -target_link_libraries(kernel32 chkstk ${PSEH_LIB}) +target_link_libraries(kernel32 wine chkstk ${PSEH_LIB}) add_importlibs(kernel32 ntdll) add_pch(kernel32 k32.h) diff --git a/reactos/dll/win32/kernel32/client/misc/atom.c b/reactos/dll/win32/kernel32/client/atom.c similarity index 100% rename from reactos/dll/win32/kernel32/client/misc/atom.c rename to reactos/dll/win32/kernel32/client/atom.c diff --git a/reactos/dll/win32/kernel32/client/misc/computername.c b/reactos/dll/win32/kernel32/client/compname.c similarity index 100% rename from reactos/dll/win32/kernel32/client/misc/computername.c rename to reactos/dll/win32/kernel32/client/compname.c diff --git a/reactos/dll/win32/kernel32/client/misc/dllmain.c b/reactos/dll/win32/kernel32/client/dllmain.c similarity index 99% rename from reactos/dll/win32/kernel32/client/misc/dllmain.c rename to reactos/dll/win32/kernel32/client/dllmain.c index c29a1828481..aa319546601 100644 --- a/reactos/dll/win32/kernel32/client/misc/dllmain.c +++ b/reactos/dll/win32/kernel32/client/dllmain.c @@ -26,6 +26,7 @@ WCHAR BaseDefaultPathBuffer[6140]; HANDLE hProcessHeap = NULL; HMODULE hCurrentModule = NULL; +HMODULE kernel32_handle = NULL; HANDLE hBaseDir = NULL; PPEB Peb; ULONG SessionId; @@ -323,7 +324,7 @@ DllMain(HANDLE hDll, RtlInitializeHandleTable(0xFFFF, sizeof(BASE_HEAP_HANDLE_ENTRY), &BaseHeapHandleTable); - hCurrentModule = hDll; + kernel32_handle = hCurrentModule = hDll; DPRINT("Heap: %p\n", hProcessHeap); /* diff --git a/reactos/dll/win32/kernel32/client/misc/env.c b/reactos/dll/win32/kernel32/client/environ.c similarity index 82% rename from reactos/dll/win32/kernel32/client/misc/env.c rename to reactos/dll/win32/kernel32/client/environ.c index 3ff452b583e..73857dc246f 100644 --- a/reactos/dll/win32/kernel32/client/misc/env.c +++ b/reactos/dll/win32/kernel32/client/environ.c @@ -19,85 +19,6 @@ /* FUNCTIONS ******************************************************************/ -/* - * @implemented - */ -BOOL -WINAPI -Beep (DWORD dwFreq, DWORD dwDuration) -{ - HANDLE hBeep; - UNICODE_STRING BeepDevice; - OBJECT_ATTRIBUTES ObjectAttributes; - IO_STATUS_BLOCK IoStatusBlock; - BEEP_SET_PARAMETERS BeepSetParameters; - NTSTATUS Status; - - /* check the parameters */ - if ((dwFreq >= 0x25 && dwFreq <= 0x7FFF) || - (dwFreq == 0x0 && dwDuration == 0x0)) - { - /* open the device */ - RtlInitUnicodeString(&BeepDevice, - L"\\Device\\Beep"); - - InitializeObjectAttributes(&ObjectAttributes, - &BeepDevice, - 0, - NULL, - NULL); - - Status = NtCreateFile(&hBeep, - FILE_READ_DATA | FILE_WRITE_DATA, - &ObjectAttributes, - &IoStatusBlock, - NULL, - 0, - FILE_SHARE_READ | FILE_SHARE_WRITE, - FILE_OPEN_IF, - 0, - NULL, - 0); - if (NT_SUCCESS(Status)) - { - /* Set beep data */ - BeepSetParameters.Frequency = dwFreq; - BeepSetParameters.Duration = dwDuration; - - Status = NtDeviceIoControlFile(hBeep, - NULL, - NULL, - NULL, - &IoStatusBlock, - IOCTL_BEEP_SET, - &BeepSetParameters, - sizeof(BEEP_SET_PARAMETERS), - NULL, - 0); - - /* do an alertable wait if necessary */ - if (NT_SUCCESS(Status) && - (dwFreq != 0x0 || dwDuration != 0x0) && dwDuration != MAXDWORD) - { - SleepEx(dwDuration, - TRUE); - } - - NtClose(hBeep); - } - } - else - Status = STATUS_INVALID_PARAMETER; - - if (!NT_SUCCESS(Status)) - { - SetLastErrorByStatus (Status); - return FALSE; - } - - return TRUE; -} - /* * @implemented */ diff --git a/reactos/dll/win32/kernel32/client/file/deviceio.c b/reactos/dll/win32/kernel32/client/file/deviceio.c index a3016ed75b9..ee9c4db542f 100644 --- a/reactos/dll/win32/kernel32/client/file/deviceio.c +++ b/reactos/dll/win32/kernel32/client/file/deviceio.c @@ -14,6 +14,85 @@ /* FUNCTIONS ******************************************************************/ +/* + * @implemented + */ +BOOL +WINAPI +Beep (DWORD dwFreq, DWORD dwDuration) +{ + HANDLE hBeep; + UNICODE_STRING BeepDevice; + OBJECT_ATTRIBUTES ObjectAttributes; + IO_STATUS_BLOCK IoStatusBlock; + BEEP_SET_PARAMETERS BeepSetParameters; + NTSTATUS Status; + + /* check the parameters */ + if ((dwFreq >= 0x25 && dwFreq <= 0x7FFF) || + (dwFreq == 0x0 && dwDuration == 0x0)) + { + /* open the device */ + RtlInitUnicodeString(&BeepDevice, + L"\\Device\\Beep"); + + InitializeObjectAttributes(&ObjectAttributes, + &BeepDevice, + 0, + NULL, + NULL); + + Status = NtCreateFile(&hBeep, + FILE_READ_DATA | FILE_WRITE_DATA, + &ObjectAttributes, + &IoStatusBlock, + NULL, + 0, + FILE_SHARE_READ | FILE_SHARE_WRITE, + FILE_OPEN_IF, + 0, + NULL, + 0); + if (NT_SUCCESS(Status)) + { + /* Set beep data */ + BeepSetParameters.Frequency = dwFreq; + BeepSetParameters.Duration = dwDuration; + + Status = NtDeviceIoControlFile(hBeep, + NULL, + NULL, + NULL, + &IoStatusBlock, + IOCTL_BEEP_SET, + &BeepSetParameters, + sizeof(BEEP_SET_PARAMETERS), + NULL, + 0); + + /* do an alertable wait if necessary */ + if (NT_SUCCESS(Status) && + (dwFreq != 0x0 || dwDuration != 0x0) && dwDuration != MAXDWORD) + { + SleepEx(dwDuration, + TRUE); + } + + NtClose(hBeep); + } + } + else + Status = STATUS_INVALID_PARAMETER; + + if (!NT_SUCCESS(Status)) + { + SetLastErrorByStatus (Status); + return FALSE; + } + + return TRUE; +} + /* * @implemented */ diff --git a/reactos/dll/win32/kernel32/client/misc/handle.c b/reactos/dll/win32/kernel32/client/handle.c similarity index 100% rename from reactos/dll/win32/kernel32/client/misc/handle.c rename to reactos/dll/win32/kernel32/client/handle.c diff --git a/reactos/dll/win32/kernel32/client/misc/ldr.c b/reactos/dll/win32/kernel32/client/loader.c similarity index 100% rename from reactos/dll/win32/kernel32/client/misc/ldr.c rename to reactos/dll/win32/kernel32/client/loader.c diff --git a/reactos/dll/win32/kernel32/client/misc/perfcnt.c b/reactos/dll/win32/kernel32/client/perfcnt.c similarity index 100% rename from reactos/dll/win32/kernel32/client/misc/perfcnt.c rename to reactos/dll/win32/kernel32/client/perfcnt.c diff --git a/reactos/dll/win32/kernel32/client/misc/power.c b/reactos/dll/win32/kernel32/client/power.c similarity index 100% rename from reactos/dll/win32/kernel32/client/misc/power.c rename to reactos/dll/win32/kernel32/client/power.c diff --git a/reactos/dll/win32/kernel32/client/misc/resntfy.c b/reactos/dll/win32/kernel32/client/resntfy.c similarity index 100% rename from reactos/dll/win32/kernel32/client/misc/resntfy.c rename to reactos/dll/win32/kernel32/client/resntfy.c diff --git a/reactos/dll/win32/kernel32/client/misc/sysinfo.c b/reactos/dll/win32/kernel32/client/sysinfo.c similarity index 100% rename from reactos/dll/win32/kernel32/client/misc/sysinfo.c rename to reactos/dll/win32/kernel32/client/sysinfo.c diff --git a/reactos/dll/win32/kernel32/client/misc/timerqueue.c b/reactos/dll/win32/kernel32/client/timerqueue.c similarity index 100% rename from reactos/dll/win32/kernel32/client/misc/timerqueue.c rename to reactos/dll/win32/kernel32/client/timerqueue.c diff --git a/reactos/dll/win32/kernel32/client/misc/utils.c b/reactos/dll/win32/kernel32/client/utils.c similarity index 100% rename from reactos/dll/win32/kernel32/client/misc/utils.c rename to reactos/dll/win32/kernel32/client/utils.c diff --git a/reactos/dll/win32/kernel32/client/misc/version.c b/reactos/dll/win32/kernel32/client/version.c similarity index 100% rename from reactos/dll/win32/kernel32/client/misc/version.c rename to reactos/dll/win32/kernel32/client/version.c diff --git a/reactos/dll/win32/kernel32/kernel32.rbuild b/reactos/dll/win32/kernel32/kernel32.rbuild index e85108e3ac1..6adde238761 100644 --- a/reactos/dll/win32/kernel32/kernel32.rbuild +++ b/reactos/dll/win32/kernel32/kernel32.rbuild @@ -7,16 +7,12 @@ include include/reactos/subsys pseh - normalize + wine ntdll 0x0600 errcodes k32.h - - -fno-exceptions - -fno-rtti - @@ -30,17 +26,30 @@ thread.S + atom.c + compname.c debugger.c + dllmain.c + environ.c except.c - vista.c - synch.c fiber.c - thread.c + handle.c heapmem.c - virtmem.c job.c + loader.c + perfcnt.c + power.c proc.c + resntfy.c session.c + synch.c + sysinfo.c + timerqueue.c + thread.c + utils.c + version.c + virtmem.c + vista.c backup.c bintype.c @@ -70,28 +79,15 @@ actctx.c - atom.c comm.c commdcb.c - computername.c - dllmain.c - env.c - handle.c - ldr.c lzexpand.c muldiv.c - perfcnt.c - power.c - resntfy.c + profile.c res.c stubs.c - sysinfo.c time.c - timerqueue.c toolhelp.c - version.c - profile.c - utils.c