Compare commits

...

1933 Commits

Author SHA1 Message Date
Aleksey Bragin
fae3620e6f Add lake.bmp as a default wallpaper in 0.3.1.
svn path=/branches/ros-branch-0_3_1/; revision=26044
2007-03-08 21:50:58 +00:00
Aleksey Bragin
f34b1a8666 Dear ladies and gentlemen, we're approaching a release, please tighten your seat belts and enjoy the process.
svn path=/branches/ros-branch-0_3_1/; revision=26037
2007-03-08 19:30:21 +00:00
Ged Murphy
0d8d7cc5c3 ReactOS 0.3.1 start menu logo.
svn path=/branches/ros-branch-0_3_1/; revision=26036
2007-03-08 19:18:21 +00:00
Aleksey Bragin
16dffac604 Merge 26022. rosapps/rostests should build now.
svn path=/branches/ros-branch-0_3_1/; revision=26023
2007-03-07 11:39:07 +00:00
Aleksey Bragin
8bd9c0061e - Merge 25991 and 25992 by hpoussin
svn path=/branches/ros-branch-0_3_1/; revision=26003
2007-03-05 16:13:31 +00:00
Magnus Olsen
f710be05d3 fixed dprint1 to dprint
svn path=/branches/ros-branch-0_3_1/; revision=26002
2007-03-05 15:18:10 +00:00
Magnus Olsen
d1cd3aa41b merge down 25977.
I got  r26000 :)

svn path=/branches/ros-branch-0_3_1/; revision=26000
2007-03-05 15:14:12 +00:00
Magnus Olsen
5289df0e4b merge 25998
svn path=/branches/ros-branch-0_3_1/; revision=25999
2007-03-05 15:11:23 +00:00
Magnus Olsen
cb04734fe4 merge down 25984 on alex request
svn path=/branches/ros-branch-0_3_1/; revision=25990
2007-03-04 22:01:08 +00:00
Magnus Olsen
aecbda510a merge down 25795 and 25796
svn path=/branches/ros-branch-0_3_1/; revision=25979
2007-03-03 23:45:23 +00:00
Magnus Olsen
2d9121a226 merge down r25973 from trunk
svn path=/branches/ros-branch-0_3_1/; revision=25974
2007-03-03 16:32:57 +00:00
Magnus Olsen
c4619d3e06 forget the dprint change in framebased.h
svn path=/branches/ros-branch-0_3_1/; revision=25972
2007-03-03 13:52:13 +00:00
Magnus Olsen
e934f832a5 update my private doc
svn path=/branches/ros-branch-0_3_1/; revision=25968
2007-03-03 10:33:22 +00:00
Aleksey Bragin
1aaf01d45a HACKALERT: Downgrade vmwinst back to 23933, thus working around the inability to set display resolution during setup (if using VMWare's display driver).
svn path=/branches/ros-branch-0_3_1/; revision=25963
2007-03-02 21:26:41 +00:00
Aleksey Bragin
fd58425479 Merge 25961
svn path=/branches/ros-branch-0_3_1/; revision=25962
2007-03-02 21:13:04 +00:00
Magnus Olsen
7ceba8a4e1 almost every endless loop for pseh are gone.
after I merge down follow changes 
some part of 25938 (alex trunk changes)
25953 (dprint msg to detect if pseh goes into endless loop or not)
25915-25917 kjk fix for pseh

svn path=/branches/ros-branch-0_3_1/; revision=25955
2007-03-02 19:07:42 +00:00
Magnus Olsen
945b773106 merges part of 25937 the changes for fixed some issue with seh by alex
This solv some of the inifiloop I got with seh, but not all

svn path=/branches/ros-branch-0_3_1/; revision=25940
2007-03-02 00:42:34 +00:00
Magnus Olsen
64df88ebe9 remove old packmgr from 0.3.1 rosapps. we are using drfred new download mangers in 0.3.1
svn path=/branches/ros-branch-0_3_1/; revision=25939
2007-03-01 22:18:42 +00:00
Magnus Olsen
93a1fbe0f9 merge rev 25935 from trunk
1. fixed one BSD it does show bluescreen when the buffer are too small
2. fixed some bugs in calculation of different GdiObject sized

svn path=/branches/ros-branch-0_3_1/; revision=25936
2007-03-01 19:14:59 +00:00
Aleksey Bragin
0fbd022ebd Merge 25912, sync desk.cpl to trunk.
svn path=/branches/ros-branch-0_3_1/; revision=25934
2007-03-01 13:19:50 +00:00
Aleksey Bragin
4a09ad9e27 Merge 25895, 25896
svn path=/branches/ros-branch-0_3_1/; revision=25933
2007-03-01 10:37:19 +00:00
Magnus Olsen
e892fedfd4 merge pseh changes from 25908 and 25909
add hto patch from bugzila 2069, this need be review by kjk, but I add it to 0.3.1, it solv the loop problem I got with pseh. 

svn path=/branches/ros-branch-0_3_1/; revision=25914
2007-02-27 22:18:28 +00:00
Dmitry Gorbachev
2e29a8dbd8 Update Russian translations.
svn path=/trunk/; revision=25912
2007-02-27 16:51:19 +00:00
Dmitry Gorbachev
9713a955bb Indonesian translation by Zaenal Mutaqin
svn path=/trunk/; revision=25911
2007-02-27 00:04:43 +00:00
Dominique Cote
982855b6e3 Added:
FsRtlPrepareMdlWriteDev()
FsRtlMdlWriteCompleteDev()
FsRtlPrepareMdlWrite()
FsRtlMdlWriteComplete()

svn path=/trunk/; revision=25910
2007-02-26 20:22:55 +00:00
KJK::Hyperion
35f897c768 Reformatted, for real
svn path=/trunk/; revision=25909
2007-02-26 15:55:43 +00:00
KJK::Hyperion
97f61ad508 modified include/reactos/libs/pseh/framebased.h
Removed some bad optimization ideas that never worked anyway. If you want optimization, use the uglier _SEHX macros. If you enjoy several huge, non-optimizable nested loops in all of your functions, just keep using the _SEH form

deleted    include/reactos/libs/pseh/native.h
deleted    include/reactos/libs/pseh/prettybased.h
   Deleted some really bad ideas that nobody used or maintained anyway

All and all else
   Reformatted. Goodbye one-space indentation, hello tabs

svn path=/trunk/; revision=25908
2007-02-26 15:32:19 +00:00
Dmitry Gorbachev
65792010fe Indonesian translation (Zaenal Mutaqin)
svn path=/trunk/; revision=25907
2007-02-26 14:37:09 +00:00
Dmitry Gorbachev
5aa7f19d62 Indonesian translation (Zaenal Mutaqin)
svn path=/trunk/; revision=25906
2007-02-25 22:45:32 +00:00
Eric Kohl
9f48caa207 - Sort font names alphabetically.
- Enable the user to choose fonts.

svn path=/trunk/; revision=25905
2007-02-25 21:58:20 +00:00
Saveliy Tretiakov
3a94758ff5 Fix installname
svn path=/trunk/; revision=25902
2007-02-24 18:16:50 +00:00
Magnus Olsen
fbf5933eb6 adding -dump as param to dumping out all struct and data
svn path=/trunk/; revision=25901
2007-02-24 13:58:25 +00:00
Magnus Olsen
da00b2ed98 adding more testcase for NtGdiDdQueryDirectDrawObject
svn path=/trunk/; revision=25900
2007-02-24 13:32:09 +00:00
Magnus Olsen
a640e4e2d6 adding more testcase for NtGdiDdQueryDirectDrawObject
svn path=/trunk/; revision=25899
2007-02-24 12:24:31 +00:00
Saveliy Tretiakov
54c6bf6cfa kbdse.dll -> kbdsw.dll
svn path=/trunk/; revision=25898
2007-02-24 12:00:43 +00:00
Maarten Bosma
c741487f6f Fix wrong text. (right => left)
svn path=/branches/ros-branch-0_3_1/; revision=25897
2007-02-23 21:01:04 +00:00
Saveliy Tretiakov
54cf74f087 Andrey Janzen (virus126):
- Fix warning when using FEATURE_UNIX_FILENAME_COMPLETION.
- Make unix-style completion work correctly.
- Make %time% return milliseconds/10.


svn path=/trunk/; revision=25896
2007-02-23 20:05:39 +00:00
Saveliy Tretiakov
658c2a1911 Andrey Janzen (virus126):
Replace numbers by constants in all translations.
Fixes bug 2065.


svn path=/trunk/; revision=25895
2007-02-23 19:52:00 +00:00
Alex Ionescu
9969d07b68 - Update FreeLDR PE Loading to actually use its Mm routines to allocate a buffer to read an image file into, then to allocate the actual load base and use the same code as in sysldr.c right now to PE-load the image into memory, then free the original read buffer. Not yet enabled for drivers!
- This means that:
  - 1) FreeLDR now keeps memory accounting information for the image files it loads, instead of us randomly writing to memory.
  - 2) We now skip sections marked as NO_LOAD. The kernel already re-mapped drivers doing this, but it didn't remap the kernel/hal, plus we still had to map the drivers once in FreeLDR, so we're saving a meg+ of kernel memory.

svn path=/trunk/; revision=25894
2007-02-23 19:48:25 +00:00
Saveliy Tretiakov
8ccd7405b6 Update keyboard layout names. Add "Layout Id" key for Us-Dvorak. Rename kbdse.dll to kbdsw.dll
svn path=/trunk/; revision=25893
2007-02-23 18:41:48 +00:00
Alex Ionescu
7c1178da04 - Load the driver image file with OBJ_KERNEL_HANDLE, and don't use FILE_SYNCHRONOUSIO_NONALERT, since we can use async access since the data is now being mapped instead of read.
svn path=/trunk/; revision=25892
2007-02-23 15:35:14 +00:00
Alex Ionescu
4f9ab3b9a5 - Add a new member to MM_IMAGE_SECTION_OBJECT to hold the size of the mapped image file.
- Finally load driver images like human beings, as actual image section objects instead of random memory that we allocate and manually "load" using unsafe and crappy PE memory copies. We now use KJK's integer-safe and properly documented/implemented loader for image sections that is already used for processes and other user-mode images.
- Implement MiLoadImageSection for the task above and remove all the deprecated code that did the previous hackloading.

svn path=/trunk/; revision=25891
2007-02-23 15:31:45 +00:00
Saveliy Tretiakov
0446badad8 Move primary language selection from Input Locale page to General page.
svn path=/trunk/; revision=25890
2007-02-23 09:35:32 +00:00
Saveliy Tretiakov
82acba718f Update testapp
svn path=/trunk/; revision=25889
2007-02-23 08:56:32 +00:00
Saveliy Tretiakov
e67ae3715b Add KLF_SHIFTLOCK and KLF_RESET
svn path=/trunk/; revision=25888
2007-02-23 08:21:29 +00:00
Saveliy Tretiakov
8daaec74a8 Fix warnings.
svn path=/trunk/; revision=25887
2007-02-23 08:20:33 +00:00
Alex Ionescu
8648ea02e1 - Get rid of LdrGetModuleObject, since MmLoadSystemImage will now return the existing module object in case it has already been loaded, get rid of LdrGetProcedureAddress, it doesn't belong in the kernel. Move MmGetSystemRoutineAddress from mm.c to sysldr.c and rewrite it to use MiFindExportedRoutineByName instead.
- Remove /ldr ntoskrnl directory, since this module is finally gone.
- Make PsInit code search for ntdll lookups using LookupEntryPoint internal function, instead of LdrGetProcedureAddress. Same code but done with recursion instead, and internal to this module (remove ANSI_STRINGs since we don't need them anymore).

svn path=/trunk/; revision=25886
2007-02-23 07:56:01 +00:00
Alex Ionescu
86c4790af3 - Merge DbgUnLoadImageSymbols from KD branch.
- Rename LdrUnloadModule to MmUnloadSystemImage and:
  - Use MmSystemLoadLock.
  - Take into consideration the import list.
  - Honour load count.
  - Unload symbols if really unloading the image.
  - Dereference and clear imports.
  - Do proper LdrEntry cleanup.
- Stub MiDereferenceImports and MmCallDllInitialize.
- Implement MiLocateExportName and MiClearImports.
- We don't yet fully support reference counting imports...this is still TBD.

svn path=/trunk/; revision=25885
2007-02-23 07:13:19 +00:00
Alex Ionescu
bae0317c7c - Fix build.
svn path=/trunk/; revision=25884
2007-02-23 06:59:10 +00:00
Alex Ionescu
3111dda705 - Fix MmCreateImageSection to use previous mode instead of hardcoding UserMode.
- Implement MiProcessLoaderEntry for adding/removing entries on the PsLoadedModuleList.
- Move MmLoadSystemImage from loader.c to sysldr.c
- Update MmLoadSystemImage:
  - Use MmSystemLoadLock.
  - Support returning the entry for an already-loaded image, instead of loading it twice.
  - Use Section APIs to map the image... we're still doing a dirty ZwReadFile hack, but at least now we can depend on the PE code to validate the image (so removed the hardcoded validation).
  - Add more generic cleanup got so we can just jump to it.
  - Add more stub code and detection code for upcoming features.

svn path=/trunk/; revision=25883
2007-02-23 05:39:42 +00:00
Dmitry Gorbachev
736a4de31f Indonesian translation by Zaenal Mutaqin (ade999 at gmail dot com)
svn path=/trunk/; revision=25882
2007-02-23 01:42:52 +00:00
Alex Ionescu
e81f8006bb - Move some Mm routines from pe.c to sysldr.c where they belong.
- Create and initialize Mm Loader lock.
- Re-arrange some code in MmLoadSystemImage, no code changes yet.
- Add new LDRP_ flags for LDR_DATA_TABLE_ENTRY to the NDK.

svn path=/trunk/; revision=25881
2007-02-22 20:55:02 +00:00
Saveliy Tretiakov
50b11bc313 Handle WM_INPUTLANGCHANGE and WM_INPUTLANGCHANGEREQUEST in DefWindowProc.
svn path=/trunk/; revision=25880
2007-02-22 19:43:27 +00:00
Saveliy Tretiakov
da13fb5a41 NtUserLoadKeyboardLayoutEx: Support KLF_REORDER and KLF_ACTIVATE.
NtUserActivateKeyboardLayout: Support HKL_NEXT, HKL_PREV, KLF_REORDER.


svn path=/trunk/; revision=25879
2007-02-22 19:41:10 +00:00
Magnus Olsen
06b4e06c8a win32k dx test are now compatible with all Windows and ReactOS that got a d3d8thk.dll file
rember that file are diffent for Windows 2000 and Windows XP/2003 ReactOS d38thk.dll are Windows XP/2003 compatible. 

svn path=/trunk/; revision=25878
2007-02-22 19:21:10 +00:00
Magnus Olsen
92213f75ef Move d3d8thk.h for it being use for apps that need todo win32k syscall for directx graphice part
svn path=/trunk/; revision=25877
2007-02-22 19:10:40 +00:00
Sylvain Petreolle
717a91df43 fix build
svn path=/trunk/; revision=25876
2007-02-22 18:48:01 +00:00
Alex Ionescu
f141767094 - Rename LdrLoadModule to MmLoadSystemImage and change prototype. No code change except update callers and return ImageBaseAddress parameter when requested.
svn path=/trunk/; revision=25875
2007-02-22 18:30:50 +00:00
Alex Ionescu
31446c8a3b - Improve LdrGetModuleObject (in FreeLDR) to handle partial names too, so NTOSKRNL will still match NTOSKRNL.EXE. This is needed for forwarder support.
- Implement LdrPEFixupForward in FreeLDR and update LdrPEGetExportByName to use it, so that FreeLDR can now parse import tables with forwarders.
- Add call to MmInitSystem for Phase 0 in ExpInitializeExecutive.
- Completely redesign the way boot drivers are handled. They're now re-mapped during Phase 0 MmInit (part of the re-mapping is a hack until FreeLDR 2.5 is ready) and the IoMgr only does I/O stuff, not PE loading anymore (this is only half-true, we still process imports until FreeLDR 2.5 is done).
- Also re-design the way the module list head is initialized and used. LdrInit1 is now gone, Phase 0 MmInit now handles initializing it and copying boot loader data to it.
- Some code is still missing and functions still need to be improved.
- When FreeLDR 2.5 is ready some of the hacks will go away, they're #ifed for now to make it easy to switch.

svn path=/trunk/; revision=25874
2007-02-22 18:02:53 +00:00
Alex Ionescu
40e1082e3d - Rename ModuleListHead to PsLoadedModulesList.
- Start implementing some routines of the Mm SysLdr. Implemented MiSnapThunk and most of MiResolveImageReferences. The SysLdr has a lot of restrictions that the typical Ldr in user-mode doesn't, as well as manages imports and reference counts them, so the code can't be shared with ntdll's Ldr (this is also why real NT doesn't have an Ldr component, and this is in Mm).
- Fix some PE Header types that were wrong in our PSDK.

svn path=/trunk/; revision=25872
2007-02-22 00:01:52 +00:00
Magnus Olsen
a12b4ba4d9 merge r25870 it take care of unexpect crash in NtGdiDdCreateDirectDrawObject for it using seh now
svn path=/branches/ros-branch-0_3_1/; revision=25871
2007-02-21 22:22:30 +00:00
Magnus Olsen
6751f1721e adding a helper intEnableDriver it will be use for enable the dx driver for the graphice card.
rewrote NtGdiDdQueryDirectDrawObject so it only copy the cache data only. This will speed up allot. we only need call on NtGdiDdCreateDirectDrawObject yo setup the whole cache and enable the drv with the helper functions. the NtGdiDdQueryDirectDrawObject will be faster like this. using RtlCopyMemory insted for RtlMemMove  and allot other change in it. adding _SEH to NtGdiDdQueryDirectDrawObject so user can not crash it any longer. 

svn path=/trunk/; revision=25870
2007-02-21 22:19:31 +00:00
Timo Kreuzer
b43aa6554f Silence some warnings
svn path=/trunk/; revision=25869
2007-02-21 22:04:59 +00:00
Alex Ionescu
012009365d - Implement ExpQueryModuleInformation to handle SystemModuleInformation, instead of LdrpQueryModleInformation. This version properly fills out all the data required and also supports (but doesn't yet handle) user-mode modules.
- Start work on supporting NT-compatible System Loader that properly fills out LDR_DATA_TABLE_ENTRY and handles imports correctly. Modified LdpPEProcessModule to properly build the data table entry and create the base name and directory name.
- Add stub for MiResolveImageRefernces.

svn path=/trunk/; revision=25868
2007-02-21 18:43:57 +00:00
Dmitry Gorbachev
af1995f6f1 Thai translation (Sumath Aowsakulsutthi)
svn path=/trunk/; revision=25867
2007-02-21 18:23:59 +00:00
Dmitry Gorbachev
8f0b7ce68c Thai translation (Sumath Aowsakulsutthi)
svn path=/trunk/; revision=25866
2007-02-21 18:22:30 +00:00
Dmitry Gorbachev
4d0c6f3b50 Thai translation by Sumath Aowsakulsutthi (punth1 at gmail dot com)
svn path=/trunk/; revision=25865
2007-02-21 18:22:11 +00:00
Aleksey Bragin
597afb576e - Merge 25830 (calc buffer fix)
svn path=/branches/ros-branch-0_3_1/; revision=25864
2007-02-21 16:44:24 +00:00
Dmitry Gorbachev
d6122e01fa Fix Italian resource file
svn path=/trunk/; revision=25863
2007-02-21 11:41:17 +00:00
Alex Ionescu
828eda9888 - Properly implement SystemLoadGdiDriverInformation.
- Properly implement SystemExtendServiceTableInformation, except that the SE_LOAD_DRIVER_PRIVILEGE check is currently disabled since our smss doesn't acquire it (and we should therefore ban it from loading win32k.sys...).
- Delete LdrpLoadImage, LdrpUnlaodImage, LdrpLoadAndCallImage.

svn path=/trunk/; revision=25862
2007-02-21 02:46:30 +00:00
Alex Ionescu
effa3a52ef - Cleanup loader.c and comment some public routines (no code change).
- Temporarily remove routines to set per-page protection (this doesn't really break anything, just makes the OS less secure).

svn path=/trunk/; revision=25861
2007-02-21 01:57:02 +00:00
Alex Ionescu
226a94773d - Get rid of a bunch of multiboot crap FreeLDR was still doing for ReactOS.
- Remove some of the sixtuplicated routines to load a PE file. We're now down to a single function which takes an ImageType parameter for DLL/EXE/SYS, but even this is still temporary as the parameter will soon go away.
- We now load drivers in the same nice way that we load the kernel and DLLs, but we don't yet process their imports and relocate them in FreeLDR, because FreeLDR doesn't handle forwarders yet.
- We don't need a large hack in KiRosPrepareForSystemStartup anymore since the driver base addresses are now proper.
- Don't free boot-drivers anymore, since we'll load them in place soon.
- Don't load bootvid twice.
- Remove PAE stuff in FreeLDR since we don't support PAE anyway in the kernel and when we do, might as well implement it cleanly instead of relying on the broken FreeLDR stuff.

svn path=/trunk/; revision=25860
2007-02-20 20:02:52 +00:00
Ged Murphy
b4f7cf3523 add chars to the edit box when either double clicked or the select button is hit
svn path=/trunk/; revision=25848
2007-02-19 23:56:16 +00:00
Eric Kohl
d8e1e7bba4 Enable the user to set the size of captions, caption buttons, menu bars and croll bars.
svn path=/trunk/; revision=25844
2007-02-19 16:12:38 +00:00
Dmitry Gorbachev
f49c3528f3 Fix a bug
svn path=/trunk/; revision=25842
2007-02-19 13:20:09 +00:00
Thomas Bluemel
5c7f9d04ce Minor fixes, thanks Ged
svn path=/trunk/; revision=25841
2007-02-19 13:15:28 +00:00
Saveliy Tretiakov
148aa8601e Patch from Preston:
fix bug 1918 "Keyboard config unavailable".


svn path=/trunk/; revision=25834
2007-02-18 16:35:09 +00:00
Eric Kohl
b6dc9d8a3d Reenable the preview control notification. The user can now select the GUI item clicking it in the preview control.
svn path=/trunk/; revision=25832
2007-02-17 21:40:39 +00:00
Saveliy Tretiakov
abf9c6e638 Patch by Alexey Zavyalov (Generex).
Implement SetLocaleInfoA, SetLocaleInfoW.


svn path=/trunk/; revision=25831
2007-02-17 15:46:25 +00:00
Saveliy Tretiakov
4ea3e26092 Patch by Andrey Janzen (virus126).
Fix copy\paste bug in calc.


svn path=/trunk/; revision=25830
2007-02-17 15:33:57 +00:00
Magnus Olsen
e565b89550 adding file dump.c it contain printf stuff to dump some struct to the screen it can make debuging more easy. but if u build reactos with DBG=0 you will not see the dump of the stuct I mabe will add a option to it when u start this tools so it dump data when u use the options.
svn path=/trunk/; revision=25829
2007-02-17 15:01:01 +00:00
Thomas Bluemel
316942e612 - Move around definitions to make the code a bit more modular
- Use an about menu instead of an button

svn path=/trunk/; revision=25828
2007-02-17 09:32:33 +00:00
Ged Murphy
15b0d2660f add to bootcd to highlight the paint issue
svn path=/trunk/; revision=25827
2007-02-17 00:23:53 +00:00
Ged Murphy
aed1c8ece5 add to build
svn path=/trunk/; revision=25826
2007-02-17 00:22:21 +00:00
Ged Murphy
8cc6eff6ae - halfplement charmap.exe
- tested in ROS, by no means perfect but we cant least see the various glyphs within a font
- this app highlights an issue with our paint code (not yet investigated)

svn path=/trunk/; revision=25825
2007-02-17 00:13:35 +00:00
Magnus Olsen
77c7470539 adding more test case for test_NtGdiDdQueryDirectDrawObject not complete yet
svn path=/trunk/; revision=25824
2007-02-16 20:14:24 +00:00
Sylvain Petreolle
0273f0c479 fix include file case
svn path=/trunk/; revision=25817
2007-02-16 16:57:09 +00:00
Magnus Olsen
a20e414f6a fixed all dam warings before some start nag on me
svn path=/trunk/; revision=25816
2007-02-16 16:48:54 +00:00
Magnus Olsen
11e0777755 adding a NULL test for NtGdiDdQueryDirectDrawObject
svn path=/trunk/; revision=25815
2007-02-16 16:43:27 +00:00
Magnus Olsen
9e44309042 -- Rewrite how we should do syscall now we define the syscall number in a include files. if we getting syscall table for another windows version and sp we can simple adding it to a another include file and use that file to run other that windows. rember the syscall table is diffent in all version of windows and reactos. if u compile this version in vs u will only be avail run it in windows 2000 sp4 and not under any windows version.
-- add one more testcase (NtGdiDdDeleteDirectDrawObject)
-- start adding thrid testcase (NtGdiDdQueryDirectDrawObject), this one will take bit longer to completed but I add a stub for it for now. 

svn path=/trunk/; revision=25814
2007-02-16 16:27:46 +00:00
Maarten Bosma
28a8276f66 Use XML file from trunk.
svn path=/branches/ros-branch-0_3_1/; revision=25813
2007-02-16 11:17:28 +00:00
Maarten Bosma
eab0f7c139 Lester Kortenhoeven (lester(at)kortenhoeven(dot)de):
* CP_ACP changed into CP_UTF8
* removed unnecessary code in xml.c
* fix memory leak
* add more programs

svn path=/trunk/; revision=25812
2007-02-16 11:07:28 +00:00
Aleksey Bragin
216866ada9 Merge 25810
svn path=/branches/ros-branch-0_3_1/; revision=25811
2007-02-15 22:00:37 +00:00
Hervé Poussineau
0470f1582d Set correct value for Characteristics (tested by Colin_Finck on IRC)
svn path=/trunk/; revision=25810
2007-02-15 20:39:33 +00:00
Eric Kohl
4101f39dc4 - Declare local functions static and get rid of prototypes by moving functions around.
- Clean up the code. No changes to the functionality.

svn path=/trunk/; revision=25809
2007-02-15 20:24:38 +00:00
Hervé Poussineau
34e1ef0959 Start registry keys enumeration at 0 instead of 1. This fixes enumeration of all protocols (which start at 0).
Another side effect is that this fixes enumeration of network adapters (which, due to another bug, also start at 0 instead of 1 as in MS Windows).
By the way, the correct way of enumerating adapters and protocols is to use the SetupDi* functions, which will potential fix other bugs.
Fixes bug 2034 in branch 0.3.1

svn path=/branches/ros-branch-0_3_1/; revision=25808
2007-02-15 18:26:51 +00:00
Aleksey Bragin
01b1f4c5fc Merge 25805.
svn path=/branches/ros-branch-0_3_1/; revision=25807
2007-02-15 18:24:19 +00:00
Alex Ionescu
c731ec2a5a - Small placeholder change for future Cm code:
- Added newcm.c which will contain some new Cm code part of the Cm Rewrite but not in the rewrite branch (used solely for supporting CmGetSystemControlValues).
  - Added System Control Vector which supports all the registry flags that Windows 2003 SP1 supports as well.
- The most important part of this support, at least for us, is to get boot-time time zone support working properly. We can worry about the other options later.
- Update KrnlFun for previous DPC/HAL fixes.

svn path=/trunk/; revision=25806
2007-02-15 17:44:04 +00:00
Hervé Poussineau
973093ca7b Add missing 'Characterists' registry key for netcards. Fixes part of bug 2034
svn path=/trunk/; revision=25805
2007-02-15 17:34:26 +00:00
Eric Kohl
9d58eb743e - Enable/disable the size updown control when another window item is selected.
- Remove the text when the size edit control gets disabled.
- Disable the secondary color for the window item.

svn path=/trunk/; revision=25804
2007-02-15 14:12:36 +00:00
Dmitry Gorbachev
9645a00e53 - fix "keyboard does not respond" bug on Biostar board (thanks to Peter Krawies)
- fix printf()

svn path=/trunk/; revision=25803
2007-02-15 10:57:38 +00:00
Alex Ionescu
eaa061328d - You all s^H^H^H^H^H^H^H^H^H Fix build error.
svn path=/trunk/; revision=25802
2007-02-14 20:50:46 +00:00
Alex Ionescu
48d44183ec - Linux sucks
svn path=/trunk/; revision=25801
2007-02-14 20:47:43 +00:00
Alex Ionescu
d006bab906 - Fixup and enable my new HAL IRQL implementation from a couple of months ago, and remove the temporary Mm hacks from Dmitry Gorbachev, since DPCs don't interrupt DISPATCH_LEVEL Code anymore.
- This fixes a critical system malfunction and architectural bug, as well as speeds up ReactOS incredibly -- setup takes seconds again, and boot is almost instantenous (except the Explorer loading bug).
- Proper fix for bootvid regression that Aleksey "Fixed". Video mode is now properly setup wether in setup or non-setup mode, so bootvid works again.
- Enable bootvid in freeldr.ini, currently using only /SOS mode since full-screen logo isn't implemented yet.

svn path=/trunk/; revision=25800
2007-02-14 20:30:33 +00:00
Alex Ionescu
e542b2c634 Object Manager fixes based on bug reports from Aleksey Bragin:
- ObpReferenceProcessObjectByHandle:
  - Remove PAGED_CODE
  - Use InterlockedIncrement instead of InterlockedExchangeAdd.
- ObpInsertHandleCount: Fix calculation of the handle database size, fixing potential pool corruption/overwrite situations.
- ObpChargeQuotaForObject: Write proper code for charging the quota.
- ObpDecrementHandleCount:
  - Get ObjectType from caller instead of doing the extra operation.
  - If there's no handle database, then don't setup a handle entry.
- ObpIncrementHandleCount is PAGED_CODE.
- ObpCloseHandle: Do proper logic for determining if we should raise an exception, fail, or bugcheck the system when an invalid handle is being closed.
- ObpSetHandleAttributes:
  - Not PAGED_CODE.
  - Allow operations on kernel objects.
  - Use the Access Protect Close Bit in the GrantedAccess instead of an OBJ_PROTECT flag in the ObAttributes.
- ObpCloseHandleCallback: Sweep/Enumerate Routines are BOOLEAN, not VOID.
- ObDuplicateObject:
  - Clear the audit mask if auditing isn't set.
  - Always duplicate OBJ_AUDIT_OBJECT_CLOSE if it's set.
  - Clear the handle entry before writing it.
  - Always propagate ACCESS_SYSTEM_SECURITY as a desired access.
- ObFindHandleForObject: Use ObReferenceProcessHandleTable instead of directly accessing the pointer.
- ObInsertObject: Dereference symbolic links when they collide during an insert, since a reference was already added.
- NtDuplicateObject: Clear out the TargetHandle to assume failure.
- ObpCaptureObjectName: Use RtlCopyMemory which is faster.
- ObpAllocateObject: Fix check for quota usage.
- ObCreateObjectType:
  - Make sure that the object type name is wchar-aligned.
  - Add support for LPC Waitable Ports.
  - Initialize Object Locks.

svn path=/trunk/; revision=25799
2007-02-14 17:51:48 +00:00
Saveliy Tretiakov
1102b7a6e9 Post WM_INPUTLANGCHANGE to thread's focus windows when keyboard layout is changed.
svn path=/trunk/; revision=25798
2007-02-14 13:00:38 +00:00
Saveliy Tretiakov
4db9f2ba75 - Make NtUserLoadKeyboardLayoutEx accept 6 params
- Always get default locale from ntoskrnl
- Fix some small bugs


svn path=/trunk/; revision=25797
2007-02-13 19:50:06 +00:00
Magnus Olsen
26b059ca40 small prepare for rished20 sync for wine. so the sync goes allot easy
update richedit.h 
adding tom.h  <- from wine cvs 11/2-2007 the tom.idl does not exists in windows ?

svn path=/trunk/; revision=25796
2007-02-12 21:23:32 +00:00
Magnus Olsen
ecc11af966 merge r25794 from trunk to 0.3.1 it fixing follow thing :
patch from Physicus, implement TOOLTIPS_NotifyFormat, it now retrurn the type of the string if it unicode or ansi. 
before it did not return any type at all. it did a heap crash from downloader mangers when it try figout what type
of sting the toolstips use. it is tested in 0.3.1 and not whole implemnent is tested yet. it should be right for all
case.

svn path=/branches/ros-branch-0_3_1/; revision=25795
2007-02-12 18:39:09 +00:00
Magnus Olsen
d6866b6242 patch from Physicus, implement TOOLTIPS_NotifyFormat, it now retrurn the type of the string if it unicode or ansi.
before it did not return any type at all. it did a heap crash from downloader mangers when it try figout what type
of sting the toolstips use. it is tested in 0.3.1 and not whole implemnent is tested yet. it should be right for all
case.

svn path=/trunk/; revision=25794
2007-02-12 18:37:05 +00:00
Aleksey Bragin
579a2b2125 Merge 25729 (calc.exe fix)
svn path=/branches/ros-branch-0_3_1/; revision=25793
2007-02-12 16:38:36 +00:00
Timo Kreuzer
9cead0e330 -check wich control send the WM_NOTIFY
-don't include ProcessID 0 two times

svn path=/trunk/; revision=25792
2007-02-12 04:42:53 +00:00
Timo Kreuzer
9ae5b19fde - Implement appearance page of desk.cpl
- update and cleanup resources
See issue #1732 for more details.

svn path=/trunk/; revision=25791
2007-02-12 03:32:40 +00:00
Magnus Olsen
d10a481476 Implement test for NtGdiDdCreateDirectDrawObject works in windows 2000 sp4, only if u remove __REACTOS__ or using the vs project file. have not tested in reactos yet. but it should work.
svn path=/trunk/; revision=25790
2007-02-11 16:57:31 +00:00
Johannes Anderwald
519d3fe7fc - fix warning
svn path=/trunk/; revision=25789
2007-02-11 16:27:08 +00:00
Johannes Anderwald
e7889591ae - Fix a bug in NtUserOpenDesktop and simply the code
- Fix bug in NtUserEnumDisplayDevices

svn path=/trunk/; revision=25788
2007-02-11 15:32:54 +00:00
Johannes Anderwald
55ffc321dc - Fix a few warnings
svn path=/trunk/; revision=25787
2007-02-11 15:23:48 +00:00
Magnus Olsen
70f870bb70 adding some comment after review how it works in windows. I doing my own syscall in windows 2000 to see how it act and base my knowledges of that to correct some part of win32k dx handling.
svn path=/trunk/; revision=25786
2007-02-11 15:19:22 +00:00
Johannes Anderwald
31ba4573a4 fix svn properties
svn path=/trunk/; revision=25785
2007-02-11 15:14:04 +00:00
Johannes Anderwald
743b9588a7 - remove stdcall decoration
svn path=/trunk/; revision=25784
2007-02-11 15:12:49 +00:00
Aleksey Bragin
16572ed8bb Right now, it's not enough to just set the bios video mode to 0x12, other stuff like choosing correct font is needed.
Fixes "no text output in 1st stage setup" bug (and it still sets the videomode to 0x12, so it's not a hack).

svn path=/trunk/; revision=25783
2007-02-11 13:37:39 +00:00
Aleksey Bragin
e1e4c0d0ca 25763 was an example of how to NEVER do in ReactOS repository.
Besides reverting a good implementation, it also introduced unwanted hidden changes into cmd/console.c and videoprt.h.

Don't forget to make win32k_clean / user32_clean / videoprt_clean

svn path=/trunk/; revision=25782
2007-02-11 13:05:50 +00:00
Sylvain Petreolle
202044d55f move from branch
svn path=/branches/ros-branch-0_3_1/; revision=25781
2007-02-11 11:21:14 +00:00
Sylvain Petreolle
3fa9b4f5fb move from branch
svn path=/trunk/; revision=25781
2007-02-11 11:21:14 +00:00
Sylvain Petreolle
03332d70a1 delete empty dir
svn path=/trunk/; revision=25780
2007-02-11 11:17:27 +00:00
Magnus Olsen
b93110af03 adding winetest from the vendor drop for usp10.dll
svn path=/branches/ros-branch-0_3_1/; revision=25779
2007-02-11 10:44:31 +00:00
Magnus Olsen
497f28112f adding winetest from the vendor drop for usp10.dll
svn path=/trunk/; revision=25779
2007-02-11 10:44:31 +00:00
Magnus Olsen
9325914af4 sorry I forget the rbuild for the usp10 it self :(
svn path=/trunk/; revision=25778
2007-02-11 10:37:59 +00:00
Magnus Olsen
42c37a20ce adding usp10 to the building system. and small diff file as well. thuse change should not have been need it, maybe some whant take a look at them in the diff file and found 100% proper fix.
svn path=/trunk/; revision=25777
2007-02-11 10:35:19 +00:00
Magnus Olsen
9fbc2ee0f8 Copied remotely
svn path=/trunk/; revision=25776
2007-02-11 10:22:39 +00:00
Magnus Olsen
44e336e351 perpare import of usp10 from wine,
import wine usp10.h (from wine cvs 11/02-2007 rev  1.8)
from wine log
Revision 1.8 
Hans Leidekker <hans@it.vu.nl>
usp10: Implement ScriptString_pSize.
--------------------------------------------------------------------------------
Revision 1.7
Francois Gouget <fgouget@free.fr>
include/usp10.h: Add missing include directives.
--------------------------------------------------------------------------------
Revision 1.6
Jonathan Ernst <jonathan@ernstfamily.ch>
Update the address of the Free Software Foundation.
--------------------------------------------------------------------------------
Revision 1.5
Vijay Kiran Kamuju <infyquest@gmail.com>
Added some missing definitions in usp10.h.
--------------------------------------------------------------------------------
Revision 1.4
Marcus Meissner <meissner@suse.de>
extern "C" wrappers for usp10.h.
--------------------------------------------------------------------------------
Revision 1.3
Raphael Junqueira <fenix@club-internet.fr>
Add stubs around ScriptStringAnalyse to avoid PAF crash.
--------------------------------------------------------------------------------
Revision 1.2
Oliver Stieber <oliver_stieber@yahoo.co.uk>
Added stubbed support for ScriptGetFontProperties.
--------------------------------------------------------------------------------
Revision 1.1
Steven Edwards <steven@codeweavers.com>
Add stub implementation of the Uniscribe Script Processor.

svn path=/trunk/; revision=25771
2007-02-11 10:06:35 +00:00
Magnus Olsen
44c2b6bf63 update my private doc
svn path=/branches/ros-branch-0_3_1/; revision=25770
2007-02-10 22:32:06 +00:00
Magnus Olsen
4c34438a9a merge 25768 from trunk to 0.3.1 : fixed
Property sheet:
- Set focus to defpushbutton or to first WC_EDIT child window if present, like it works on windows.
- update wine diff
This fixes the regression in 2nd stage setup when no keyboard focus was present.

svn path=/branches/ros-branch-0_3_1/; revision=25769
2007-02-10 22:26:45 +00:00
Timo Kreuzer
3a80060bfe Property sheet:
- Set focus to defpushbutton or to first WC_EDIT child window if present, like it works on windows.
- update wine diff
This fixes the regression in 2nd stage setup when no keyboard focus was present.

svn path=/trunk/; revision=25768
2007-02-10 22:02:45 +00:00
Maarten Bosma
4cef94f636 New try: Lester Kortenhoeven (lester(at)kortenhoeven(dot)de):
* Implement uninstall feature. Does not work under reactos yet, because it does not seem to store the installer information under the registry path windows stores them. 
* Show Version in the description.

svn path=/trunk/; revision=25767
2007-02-10 21:48:44 +00:00
Maarten Bosma
40790c54c7 sorry 25765 was ment to go to trunk
svn path=/branches/ros-branch-0_3_1/; revision=25766
2007-02-10 21:46:37 +00:00
Maarten Bosma
d06c2356fb Lester Kortenhoeven (lester(at)kortenhoeven(dot)de):
* Implement uninstall feature. Does not work under reactos yet, because it does not seem to store the installer information under the registry path windows stores them. 
* Show Version in the description.

svn path=/branches/ros-branch-0_3_1/; revision=25765
2007-02-10 21:41:28 +00:00
Aleksey Bragin
e356b22952 Fix user32, gdi32 and dnsapi's base addresses so that no relocations occur during system bootup.
Please note that their base addresses do not correspond anymore to the base addresses those DLLs have in Windows.

svn path=/trunk/; revision=25764
2007-02-10 15:49:50 +00:00
Magnus Olsen
1bbe7c2674 reverting 25758 : for follow reason
1. it cause regress of loading keyboard layout from the regsiter when reatcos booting. 
2. it does not follow windows implement 
3. it does not using ntoskrnl for it is ntoskrnl that handling the keyboard not the win32k.
4. it does not using right protoype for some syscall
5. some syscall does not working like windows. it mess it up instead. 
6. Do not implement own design on public api and syscall

svn path=/trunk/; revision=25763
2007-02-10 14:52:46 +00:00
Saveliy Tretiakov
516fc1cc74 Add missing return
svn path=/trunk/; revision=25762
2007-02-10 13:11:02 +00:00
Magnus Olsen
39f8130921 stub shall be in stub. file not in other files.
svn path=/trunk/; revision=25761
2007-02-10 09:15:04 +00:00
Saveliy Tretiakov
0675bc2424 Fix a bug.
svn path=/trunk/; revision=25760
2007-02-10 08:09:04 +00:00
Saveliy Tretiakov
011bca506e Add braces to if.
svn path=/trunk/; revision=25759
2007-02-10 07:28:25 +00:00
Saveliy Tretiakov
c1145464aa Add multiple keyboard layout support. Implemented NtUserLoadKeyboardLayoutEx, NtUserActivateKeyboardLayout, NtUserGetKeyboardLayoutList, NtUserGetKeyboardLayoutName.
svn path=/trunk/; revision=25758
2007-02-09 20:48:37 +00:00
Aleksey Bragin
f88b54561d 30 seconds screensaver timeout is just simply wrong. Developers should have test-settings inside *their* working copies, not trunk/release branches.
Set it to 10 minutes (default value in WinXP, iirc).

svn path=/branches/ros-branch-0_3_1/; revision=25757
2007-02-09 10:46:13 +00:00
Aleksey Bragin
cd679a1f7e 30 seconds screensaver timeout is just simply wrong. Developers should have test-settings inside *their* working copies, not trunk/release branches.
Set it to 10 minutes (default value in WinXP, iirc).

svn path=/trunk/; revision=25756
2007-02-09 10:45:54 +00:00
Timo Kreuzer
8c6bd0b95a A gdi handle viewer.
There's currently a hack, to make it work on ROS, OpenProcess() crashes ROS, so currently you will not see the processes names.

svn path=/trunk/; revision=25755
2007-02-08 23:29:24 +00:00
Sylvain Petreolle
f5dd45afa8 add msacm32.drv to bootcd
svn path=/trunk/; revision=25754
2007-02-08 17:06:48 +00:00
Sylvain Petreolle
4e8ef10889 try to load actual names
for midimap.dll and msacm32.drv

svn path=/trunk/; revision=25753
2007-02-08 17:05:15 +00:00
Alex Ionescu
867471f6cc - Fix build.
- Initialize some SharedUserData settings in MmInitSystem.

svn path=/trunk/; revision=25752
2007-02-08 01:22:04 +00:00
Alex Ionescu
1b3e649577 - Update boot graphics with new, RLE-compressed and palette-blacked versions from mf.
- Re-enable FreeLDR's "prepare for ros video" routine, but change it to match the new BootVid, which uses Mode 0x12. This is roughly what HalDisplayReset does, which isn't yet implemented (except the latter needs to setup a BIOS call trampoline).
- Fix up some bugs in bootvid and inbv.
- Implement SOS case of DisplayBootBitmap, and implement FinalizeBootLogo. Now bootvid starts to show its colors, but one .bmp is still buggy.

svn path=/trunk/; revision=25751
2007-02-08 00:50:23 +00:00
Alex Ionescu
f58c57410c - Add bootvid-compatible bitmaps for ReactOS, made by mf.
svn path=/trunk/; revision=25750
2007-02-07 22:08:13 +00:00
Hervé Poussineau
8afd1c5854 Specify which winuser.h we want to include, instead of relying on some magic to find the right one
svn path=/trunk/; revision=25749
2007-02-07 21:40:46 +00:00
Aleksey Bragin
f56e85deb7 Merge fixes for LiveCD (25746, 25747 plus corresponding changes in ex/init.c).
LiveCD now works.

svn path=/branches/ros-branch-0_3_1/; revision=25748
2007-02-07 20:56:12 +00:00
Alex Ionescu
e5a4c24966 - Better fix for LiveCD issue; now it should work no matter what.
svn path=/trunk/; revision=25747
2007-02-07 16:31:24 +00:00
Alex Ionescu
0883e06a43 - Fix IopApplyReactOSCdRomHack to handle LiveCD case properly. LiveCD should now boot*.
- Fix invalid inbv called during shutdown.
- Don't call HalResetDisplay during VidReset since it's not yet implemented and this will crash the system.
- Temporarily disable bootvid in LiveCD until it works, and enable debugging output so LiveCDs can output some debugging information in case of bugs.
* LiveCD won't actually work because for some time now, ReactOS needs to be "installed" because of missing PnP entries. LiveCD Boot will cause a message box saying "EnableUserModePnPManager" failed. hpoussin?

svn path=/trunk/; revision=25746
2007-02-07 06:08:24 +00:00
Dmitry Gorbachev
a840459c37 Fix "keyboard does not respond" bug. Thanks to Peter Krawies (breakoutbox /AT/ web /DOT/ de)
svn path=/trunk/; revision=25745
2007-02-07 00:29:50 +00:00
Dmitry Gorbachev
e6a2b315ca bootvid.sys -> bootvid.dll
svn path=/trunk/; revision=25744
2007-02-06 17:48:21 +00:00
Magnus Olsen
aaba4e8b8c update my private doc about mmx
svn path=/branches/ros-branch-0_3_1/; revision=25743
2007-02-06 16:46:33 +00:00
Magnus Olsen
10321d87a1 mmx works so activate mmx optimze for mesa32
svn path=/branches/ros-branch-0_3_1/; revision=25742
2007-02-06 16:44:44 +00:00
Magnus Olsen
47fe8ffea2 update my private regress doc.
svn path=/branches/ros-branch-0_3_1/; revision=25741
2007-02-06 16:11:20 +00:00
Magnus Olsen
7399c608e5 tempary fix for OpenGL. until ntoskrnl got sse implement. this fix are only for 0.3.1 branch
svn path=/branches/ros-branch-0_3_1/; revision=25740
2007-02-06 16:10:45 +00:00
Magnus Olsen
8b263ce49e Doc what I known is left todo.
please update it. what have been regress and which regress have been fixed. 

svn path=/branches/ros-branch-0_3_1/; revision=25739
2007-02-06 15:27:24 +00:00
Magnus Olsen
c66a34663b fixed ReactOS.xml to ReactOS.rbuild.
some one forget change some place to ReactOS.rbuild and update the doc

svn path=/trunk/; revision=25738
2007-02-06 13:34:47 +00:00
Hervé Poussineau
9c1b205b00 Correctly fix the hack introduced in r25667.
svn path=/trunk/; revision=25734
2007-02-05 23:58:06 +00:00
Timo Kreuzer
e6eab028de No code change! Just a way to try to contact Eric.
Eric, I tried to contact you without success, I have code for the appearance page to add the needed functionality. I would talk with you about this, as you are also working on that. Please contact me, if you read this.

svn path=/trunk/; revision=25733
2007-02-05 23:31:17 +00:00
Aleksey Bragin
0556ab785e Merge 25725, 25726, 25728.
svn path=/branches/ros-branch-0_3_1/; revision=25732
2007-02-05 20:59:18 +00:00
Aleksey Bragin
1a84ae85d4 Update ex/timer.c up to 25610.
svn path=/branches/ros-branch-0_3_1/; revision=25731
2007-02-05 20:41:00 +00:00
Aleksey Bragin
0a0fa78d34 Merge 25584, 25588.
svn path=/branches/ros-branch-0_3_1/; revision=25730
2007-02-05 20:14:59 +00:00
Magnus Olsen
bc9d01a54d fixed 5.01 can be type in calc it did remove the zero so the result was 5.1
See issue #2019 for more details.

svn path=/trunk/; revision=25729
2007-02-05 16:34:29 +00:00
Timo Kreuzer
5e7eb24549 FreeResource is deprecated. Not needed to free any mem.
svn path=/trunk/; revision=25728
2007-02-05 13:37:16 +00:00
Aleksey Bragin
9d941c2836 Those Wmi*() are not kernel APIs.
svn path=/trunk/; revision=25727
2007-02-05 10:47:27 +00:00
Timo Kreuzer
8444d4afb3 Make LoadCursorIconImage() find shared icons, even if they don't have the desired width/height. Now explorer doesn't leak icons / bitmaps anymore.
fixes bug 1554
See issue #1554 for more details.

svn path=/trunk/; revision=25726
2007-02-05 00:59:59 +00:00
Timo Kreuzer
cde527ab70 MSDN sais: "The CreateIconFromResource function calls CreateIconFromResourceEx passing LR_DEFAULTSIZE|LR_SHARED as flags."
(not supported yet in CreateIconFromResourceEx())

svn path=/trunk/; revision=25725
2007-02-05 00:21:38 +00:00
Sylvain Petreolle
1db729aaed fix build
svn path=/trunk/; revision=25724
2007-02-04 22:35:09 +00:00
Magnus Olsen
4f1dce8b1e Good news after all bugfix in cmd it seam pipe works with unicode.
only bug left 
1. we need found where we miss translate some part from unicode -> ansi and use current codepage. 
This change are not for 0.3.1 it is target for next release. 


svn path=/trunk/; revision=25723
2007-02-04 21:48:07 +00:00
Sylvain Petreolle
165da8e9da fix bootvid build
svn path=/trunk/; revision=25722
2007-02-04 19:19:18 +00:00
Alex Ionescu
925751080d - Fix call to VidInitialize.
- Disable call to HalDisplayReset to avoid bugcheck. [Lock held]
- Don't unload bootvid after Phase 3 I/O Init since we still need to call it.
- Implement HalpTranslateResourceAddress since bootvid (and other windows boot drivers, potentially) needs it.

svn path=/trunk/; revision=25721
2007-02-04 19:15:04 +00:00
Magnus Olsen
7f1390f3c4 patch from : Paolo Devoti <devotip at gmail.com>
fix issue  : fix it.rc typo
see bug 1983 as well
See issue #2017 for more details.

svn path=/trunk/; revision=25720
2007-02-04 18:25:47 +00:00
Magnus Olsen
ca4c9d46fc fixed a problem possible overwrite memory in cmd. base on knowlges from bug 2017. the patch are incorrect to fix it.
we simple do not allown overwrite the memory. both on trunk and 0.3.1

  
See issue #2017 for more details.

svn path=/trunk/; revision=25719
2007-02-04 18:19:34 +00:00
Magnus Olsen
b27a0418ec fixed a problem possible overwrite memory in cmd. base on knowlges from bug 2017. the patch are incorrect to fix it.
we simple do not allown overwrite the memory.
  
See issue #2017 for more details.

svn path=/branches/ros-branch-0_3_1/; revision=25718
2007-02-04 18:17:34 +00:00
Aleksey Bragin
2dcc044532 Lock bootvid's code.
svn path=/trunk/; revision=25717
2007-02-04 16:35:00 +00:00
Thomas Bluemel
4b72595190 There's no such function VidDisplayString, comment out code
svn path=/trunk/; revision=25716
2007-02-04 16:32:13 +00:00
Thomas Bluemel
9481fbbae6 Fix compilation
svn path=/trunk/; revision=25715
2007-02-04 16:22:19 +00:00
Aleksey Bragin
fab5494340 A stub driver for wmilib.sys. Since we don't implement WMI anyway, this stub is just enough for now.
svn path=/trunk/; revision=25714
2007-02-04 16:21:27 +00:00
Thomas Bluemel
c1bd35020a Remove code that was commented out some time ago
svn path=/trunk/; revision=25713
2007-02-04 16:07:02 +00:00
Thomas Bluemel
6bbca5c035 Fix the code to read the SystemDrive environment variable
svn path=/trunk/; revision=25712
2007-02-04 16:06:08 +00:00
Magnus Olsen
02d9b451a6 merge down 25710 change from trunk : implement NtUserGetKeyboardLayoutName tested in 0.3.1 and works fine, it is one step closer to fix ibrowers typing bug
svn path=/branches/ros-branch-0_3_1/; revision=25711
2007-02-04 16:01:25 +00:00
Magnus Olsen
352fb74648 implement NtUserGetKeyboardLayoutName tested in 0.3.1 and works fine
svn path=/trunk/; revision=25710
2007-02-04 15:54:14 +00:00
Sylvain Petreolle
6a92e6db5f changed wrong line in previous commit,
thanks to jjkola

svn path=/trunk/; revision=25709
2007-02-04 14:50:47 +00:00
Alex Ionescu
e1ed22b77f - Temporarily disable referencing and dereferencing the LPC mapping process since the dereference never seems to happen, thus causing processes never to die. Now they die again when killed/closing.
svn path=/trunk/; revision=25708
2007-02-03 21:10:08 +00:00
Alex Ionescu
c5cebc9965 - Update kernel fun.
svn path=/trunk/; revision=25707
2007-02-03 20:35:37 +00:00
Alex Ionescu
ffe900f573 - Replace broken bootvid by a new bootvid based on TinyKRNL's version. It is a .DLL instead of a .SYS and takes advantage of my patch to FreeLDR which allows us to load DLLs that drivers/the kernel load.
- This new version is also binary compatible, so Windows's bootvid can be dropped instead and our kernel can talk to it. It has been tested under Windows/TinyKRNL.
- Write 90% of the Inbv component in the kernel. Displaying the boot bitmap hasn't yet been coded.
- The HAL is missing required routines for bootvid.dll, so it doesn't work yet.
- .BMP resources haven't yet been added to the kernel. I will add them soon.

svn path=/trunk/; revision=25706
2007-02-03 20:30:32 +00:00
Alex Ionescu
f0d898c481 - Disgusting* hack by hto to temporarily work around Mm/DPC Interrupt bug in trunk after applying new scheduler. We both tested it and it makes trunk not crash anymore (but I do see a noticeable slowdown during bootup). Reminder: explorer will take 30-60 seconds to startup after GUI boot. Be patient.
* This doesn't refer to hto's programming skills or code, but to the hackyness of the patch itself, which is a temporary solution.

svn path=/trunk/; revision=25705
2007-02-03 20:28:24 +00:00
Magnus Olsen
b2abf6b504 patch from : Paolo Devoti <devotip at gmail.com>
fix issue  : (Clean up patch)
             Removed variables formerly in use to handle pagination.
             Pagination belongs to ConOutPrintfPaging.
             Removed already commented out code of old pagination

See issue #2016 for more details.

svn path=/trunk/; revision=25704
2007-02-03 17:38:20 +00:00
Magnus Olsen
0b971d5007 patch from : Paolo Devoti <devotip at gmail.com>
fix issue  : The fix does a WriteFile per line insted of one per char.
See issue #2015 for more details.

svn path=/trunk/; revision=25703
2007-02-03 16:03:37 +00:00
Sylvain Petreolle
d8540d8289 translate hardcoded strings into 'edit variable' box
svn path=/trunk/; revision=25702
2007-02-03 14:07:03 +00:00
Sylvain Petreolle
a24bc8782c update french translation
svn path=/trunk/; revision=25701
2007-02-03 13:53:13 +00:00
Sylvain Petreolle
c0e8ed0771 avoid crash
svn path=/trunk/; revision=25700
2007-02-03 13:50:47 +00:00
Magnus Olsen
bb10cf55cf fix buliding with optimze -O3 forget add <compilerflag>-Wno-strict-aliasing</compilerflag> to all level of optimze
svn path=/trunk/; revision=25699
2007-02-02 13:56:33 +00:00
Magnus Olsen
ef4d0daf3b part 2/2 adding a new value OPTIMIZE, easy way to enable diffent optimze level do not chamge it if u do not known what u doing
svn path=/trunk/; revision=25698
2007-02-02 13:02:17 +00:00
Magnus Olsen
7ba2de8293 part 1/2 adding a new value OPTIMIZE, easy way to enable diffent optimze level do not chamge it if u do not known what u doing
svn path=/trunk/; revision=25697
2007-02-02 13:01:43 +00:00
Johannes Anderwald
1943dc7533 - ukrainian translation by Artem Reznikov temarez {AT} yandex (DOT) [RU]- fixes bug 1723
See issue #1723 for more details.

svn path=/trunk/; revision=25696
2007-02-02 10:41:50 +00:00
Johannes Anderwald
d6513bce85 - ukrainian translation by Artem Reznikov temarez {AT} yandex (DOT) [RU]
See issue #1723 for more details.

svn path=/trunk/; revision=25695
2007-02-02 10:38:53 +00:00
Johannes Anderwald
2910614bb4 - diff2wine
svn path=/trunk/; revision=25694
2007-02-02 10:38:04 +00:00
Sylvain Petreolle
97d64de5af fix make install for Marlett.ttf
svn path=/trunk/; revision=25693
2007-02-02 10:35:56 +00:00
Johannes Anderwald
edf66a1789 - ukrainian translation by Artem Reznikov temarez {AT} yandex (DOT) [RU]
See issue #1723 for more details.

svn path=/trunk/; revision=25692
2007-02-02 10:35:36 +00:00
Johannes Anderwald
a396359914 - diff2wine
svn path=/trunk/; revision=25691
2007-02-02 10:29:56 +00:00
Johannes Anderwald
a329ecbe4c - ukrainian translation by Artem Reznikov temarez {AT} yandex (DOT) [RU]
See issue #1723 for more details.

svn path=/trunk/; revision=25690
2007-02-02 10:24:12 +00:00
Johannes Anderwald
3c38469d6a - diff2wine
svn path=/trunk/; revision=25689
2007-02-02 10:22:59 +00:00
Magnus Olsen
c7e4bc835a merges comit r25685 -> fixed oarch being use. some have remove oarch flags when ros being compile. now we add it back. for mingw
svn path=/branches/ros-branch-0_3_1/; revision=25688
2007-02-02 10:17:47 +00:00
Johannes Anderwald
3b72d01949 - ukrainian translation by Artem Reznikov temarez {AT} yandex (DOT) [RU]
See issue #1723 for more details.

svn path=/trunk/; revision=25687
2007-02-02 10:17:14 +00:00
Johannes Anderwald
e415a5308e - ukrainian translation by Artem Reznikov temarez {AT} yandex (DOT) [RU]
- Someone plz update avifil32_ros.diff
See issue #1723 for more details.

svn path=/trunk/; revision=25686
2007-02-02 10:15:50 +00:00
Magnus Olsen
9c745033ff fixed oarch being use. some have remove oarch flags when ros being compile. now we add it back. for mingw
svn path=/trunk/; revision=25685
2007-02-02 09:31:22 +00:00
Johannes Anderwald
c0bd47734e - Fix include path
- Make code c compatible
- Fix bug in parsing routine


svn path=/trunk/; revision=25684
2007-02-02 09:17:45 +00:00
Johannes Anderwald
c6b29c7d8f - Fix warning(s)
- Void functions dont return values
- Include intrin.h for _enable / _disable intrinsics

svn path=/trunk/; revision=25683
2007-02-02 08:41:30 +00:00
Ged Murphy
fd8a0765c1 let get the name correct this time
svn path=/trunk/; revision=25682
2007-02-02 00:08:53 +00:00
Ged Murphy
38c3252004 add renamed font
svn path=/trunk/; revision=25681
2007-02-02 00:04:56 +00:00
Ged Murphy
de15da76a1 - Many improvements to the Marlett font now making it a complete replacement for the Windows variant.
- Rename font to Marlett as the 'TG' parts have been redone.
- Thanks to wierd_w for his help on this.

svn path=/trunk/; revision=25680
2007-02-02 00:03:30 +00:00
Johannes Anderwald
b5a6a666e7 - Remove stdcall decoration
svn path=/trunk/; revision=25679
2007-02-01 23:14:54 +00:00
Johannes Anderwald
d75711a725 - Use ntdefs constants over limits.h constants
svn path=/trunk/; revision=25678
2007-02-01 23:13:02 +00:00
Johannes Anderwald
9955ff8027 - remove stdcall declaration
svn path=/trunk/; revision=25677
2007-02-01 23:06:40 +00:00
Johannes Anderwald
63da9a0fc7 - ULONG is always >= 0
- Include limits.h to use ULONG_MAX instead of doing a cast

svn path=/trunk/; revision=25676
2007-02-01 23:05:32 +00:00
Johannes Anderwald
a75eaa8433 - Fix prototype HalAllocateCrashDumpRegisters
- Include intrin.h for _enable / _disable

svn path=/trunk/; revision=25675
2007-02-01 23:03:38 +00:00
Johannes Anderwald
527d2c961a - Fix function pointer definition
svn path=/trunk/; revision=25674
2007-02-01 22:36:04 +00:00
Johannes Anderwald
a05e3af0b9 - NTDLL no longer needs intrlck library
svn path=/trunk/; revision=25673
2007-02-01 22:11:40 +00:00
Johannes Anderwald
a886de7e77 - Use compiler intrinsics instead of hidden dependency of intrlck
svn path=/trunk/; revision=25672
2007-02-01 22:10:21 +00:00
Johannes Anderwald
fa5cd6e23c - Compile csrss with intrinsics
- Remove the intrlck dependency

svn path=/trunk/; revision=25671
2007-02-01 21:44:23 +00:00
Johannes Anderwald
ae8e954d79 - Fix typo in Italian translation by Daniele Forsi (dforsi at gmail dot com)
- Fixes bug 2006
See issue #2006 for more details.

svn path=/trunk/; revision=25670
2007-02-01 20:04:32 +00:00
Alex Ionescu
875b73611c - Fix a bug in NtSetInformationThread which was causing 2nd-stage setup to freeze/crash. Fixes regression from 25631.
svn path=/trunk/; revision=25669
2007-02-01 19:25:04 +00:00
Dmitry Gorbachev
28bb8d08f5 Commit attachment #1151
svn path=/trunk/; revision=25668
2007-02-01 08:04:23 +00:00
Aleksey Bragin
c2f58cd197 - Comment out clearing of KeLoaderBlock (introduced by 25629), because it looks like someone is still calling IopLoadServiceModule() even after that point. 2nd stage boots with this change.
svn path=/trunk/; revision=25667
2007-01-31 22:30:59 +00:00
Magnus Olsen
176b0cdbe8 merge trunk rev : 25663 and 25664 to 0.3.1 branch - update freetype, take care of a segment fualt I getting in vmware
svn path=/branches/ros-branch-0_3_1/; revision=25666
2007-01-31 17:07:19 +00:00
Magnus Olsen
5e2f2fafad merge trunk rev : 25656 to 0.3.1 branch - fixing my rmap problem in vmware
svn path=/branches/ros-branch-0_3_1/; revision=25665
2007-01-31 17:04:49 +00:00
Johannes Anderwald
7d26f5efb9 remove doc directory
svn path=/trunk/; revision=25664
2007-01-31 08:38:39 +00:00
Magnus Olsen
f88646c249 update freetype from 2.1.9 to 2.3.0
allot of changes see freetype change log,
Bigest news 
1. Fixing segment fualt with some of ttf font 
2. Fixed memory leak. 
3. Getting cjk rending working allot better. 
and more

svn path=/trunk/; revision=25663
2007-01-31 06:11:48 +00:00
Aleksey Bragin
ee9beb65c6 - Fix intlck compile.
svn path=/trunk/; revision=25662
2007-01-30 19:50:34 +00:00
Eric Kohl
fe7ce99eb1 Change the size of caption and scrollbar in the preview window.
svn path=/trunk/; revision=25661
2007-01-29 23:35:31 +00:00
Alex Ionescu
d330ef46ec - Add the stuff I deleted from winnt.h to ntifs.h where it belongs, I was naively hoping we'd have it in ntifs and didn't catch this until a kernel compile.
svn path=/trunk/; revision=25660
2007-01-29 05:16:00 +00:00
Alex Ionescu
06283000a1 - Turns out MSVC wasn't compiling one file because it had the same name as another. Renamed it and fixed the resulting errors.
- The structures for vista symlink support are not in winnt.h, they are only in the ntifs.h. Removed them from our winnt.h, and temporarily added them to the .c file itself.
- Implemented intrinsic interlocked functions instead of using the depcreated interlck lib.
- Fixed a bug in the MemoryBarrier intrinsic.
- Included intrin.h by default when using the NDK now, since native apps need Interlocked() functions and ntdll doesn't provide them, and they can't link to kernel32, and libintrlck is deprecated/sucks.
- Fixed stub of BaseCheckAppcompatCache.

svn path=/trunk/; revision=25659
2007-01-29 05:13:13 +00:00
Magnus Olsen
70ab8ffa3c start implement detections of export functions name. not finish does not working yet. Only fix pe loader so it works
svn path=/trunk/; revision=25658
2007-01-28 19:52:02 +00:00
Dmitry Gorbachev
61bb2998be Prototype of Italian keyboard support (see bug #1963)
svn path=/trunk/; revision=25657
2007-01-28 19:06:29 +00:00
Alex Ionescu
0d65391a4f - Merge Arty's Mm Page Referencing patch. I was able to complete first-stage setup (albeit only on the second try) and booting to second stage (after three tries). There are still freelist.c bugchecks but this patch is defintely a step in the right direction.
svn path=/trunk/; revision=25656
2007-01-28 16:23:52 +00:00
Dominique Cote
4d0c1a2de3 Added tests for FsRtlGetFileSize() and FsRtlReadMdl()
svn path=/trunk/; revision=25655
2007-01-28 04:15:39 +00:00
Martin Fuchs
81557f635c update XMLStorage:
- optional CDATA embedding by set_content()
- fix for handling in XML parser

svn path=/trunk/; revision=25652
2007-01-27 20:55:22 +00:00
Johannes Anderwald
281da1dd05 - diff2wine
svn path=/trunk/; revision=25651
2007-01-27 18:21:10 +00:00
Johannes Anderwald
9e0537881f - move wine includes to precomp.h
- this enables compiling nearly all (printdlg has some issues) of comdlg32 with msvc (first include all standard headers and then include the wine compability headers)

svn path=/trunk/; revision=25650
2007-01-27 17:52:03 +00:00
Eric Kohl
da3a838762 set properties
svn path=/trunk/; revision=25649
2007-01-27 14:53:18 +00:00
Thomas Bluemel
d0e23d4854 Make RtlEqualPrefixSid portable
svn path=/trunk/; revision=25648
2007-01-27 14:06:01 +00:00
Magnus Olsen
4fa1eded47 fixing comping error adding a new line to cacls.c
svn path=/branches/ros-branch-0_3_1/; revision=25647
2007-01-27 12:34:15 +00:00
Dominique Cote
16112941ac Added function FsRtlGetFileSize()
Added function FsRtlMdlRead() (mostly Alex's reviewed)

svn path=/trunk/; revision=25646
2007-01-27 05:26:30 +00:00
Johannes Anderwald
b6fe08489d - wrap include_next in macro (msvc doesnot understand this)
svn path=/trunk/; revision=25644
2007-01-26 23:17:02 +00:00
Sylvain Petreolle
31bba229dc merge 25562
svn path=/branches/ros-branch-0_3_1/; revision=25643
2007-01-26 22:31:55 +00:00
James Tabor
2dc167ecee Fix warning.
svn path=/trunk/; revision=25642
2007-01-26 22:28:47 +00:00
Sylvain Petreolle
eb33cecb2c merge 25640
svn path=/branches/ros-branch-0_3_1/; revision=25641
2007-01-26 22:17:44 +00:00
Sylvain Petreolle
c8d34de940 uninitialized variable fix
svn path=/trunk/; revision=25640
2007-01-26 22:00:03 +00:00
Alex Ionescu
594d924eaa - Enable NT Scheduler.
- The good:
  - Fixes hangs/freezes in trunk
  - No matter how sluggish the system got, I was able to move the mouse and other apps were still responsive even though one app was hogging the CPU.
  - Balancer thread activates and does its job of preventing deadlocks.
  - The code was heavily tested and some of it is based off direct pseudo-code from NT's very own kernel (legally obtained from Windows Internals II slides) as well as Windows Internals 4th.
The bad:
  - Explorer takes 30 seconds to load, after that all is fine though.
  - First-stage installer asserts at 18% in Mm instead of lagging like previously.
  - Various other Mm crashes related to the above ^^.
- Please help out to fix/figure out the Mm crashes! It would be much appreciated, otherwise, in a week, we will revert this patch as well as the patch that caused the hangs/freezes.

svn path=/trunk/; revision=25639
2007-01-26 20:54:30 +00:00
Johannes Anderwald
528e8fe9ec - fix some warnings
- define _ACLUI_

svn path=/trunk/; revision=25638
2007-01-26 19:44:42 +00:00
Johannes Anderwald
96401084ac - remove stdcall convention
svn path=/trunk/; revision=25637
2007-01-26 18:45:29 +00:00
Johannes Anderwald
120ffca3ec - winsock2.h needs to be included before windows.h (msvc)
svn path=/trunk/; revision=25636
2007-01-26 18:43:14 +00:00
Johannes Anderwald
756a324443 - update ukrainian translation by Artem Reznikov temarez {AT} yandex (DOT) [RU]
See issue #1723 for more details.

svn path=/trunk/; revision=25635
2007-01-26 18:42:05 +00:00
Aleksey Bragin
d1beb35b7d Fix compile (debug information is removed from Spare[2], but noone uses it).
svn path=/trunk/; revision=25634
2007-01-26 10:07:26 +00:00
Alex Ionescu
35c5b063fd - Fix definition of RTL_CRITICAL_SECTION_DEBUG.
- Fix all MSVC warnings in kernel32.
- Re-enable PCH.
- Disable Rtl*CondVar calls, since we can't target Vista *AND* 2003 due to linker problems. We'll need a way to create multiple DLL versions if we're going to attempt this.
- Make ASSERTs always valid in kernel32 as long as DBG is set.
- Fix Windows-loading hack, it seems there's only two levels of SEH. Eitherways, I think I've found a cleaner way to make it load nicely, so this hack will go away soon.

svn path=/trunk/; revision=25633
2007-01-26 07:22:19 +00:00
Alex Ionescu
32a29de195 - Multiple fixes to ERESOURCE implementation.
svn path=/trunk/; revision=25632
2007-01-25 23:48:48 +00:00
Alex Ionescu
c4f9542125 - Clean up kernel32\thread.c and fix some bugs.
- Implement KeSetDisableBoostThread.
- Temporarily disable SEH/validation in NtQuery/SetProcess/ThreadInformation routines since it was making all calls fail.
- Fix bugs when using ThreadPriority, ThreadBasePriority, ThreadAffinityMask. Parameters are now validated properly, and affinity masked with the process.
- Implement ThreadSetIdealProcessor and ThreadPriorityBoost case.
- Implement ThreadZeroTlsCell case. TLS should now work properly.
- Make kernel32_winetest for threads usable.
- Update Kernel Fun.

svn path=/trunk/; revision=25631
2007-01-25 22:39:32 +00:00
Alex Ionescu
91d26f3e23 - Implement the balance set manager. Doesn't do much for now except start up the thread queue scanner.
- Implement the thread queue scanner, but disable most of it for now, since we're not using the new scheduler.

svn path=/trunk/; revision=25630
2007-01-25 18:48:56 +00:00
Alex Ionescu
819a0ed90a - Use WinXP style /SOS output when enabled. (TODO: Display banner/memory/cpu).
- Make more init functions return TRUE/FALSE and bugcheck the system if they failed.
- Add more progress bar update calls.
- Merge MmInit2 and MmInit3 into MmInitSystem with different phase calls.
- Clear KeLoaderBlock after drivers have been loaded.
- Update kernel fun.
- Update symbolic names of certain strings in ntoskrnl.mc. Use WINDOWS_NT... instead of REACTOS because these names are documented and should be kept for cross-code compatibility.

svn path=/trunk/; revision=25629
2007-01-25 17:51:45 +00:00
Sylvain Petreolle
bbf7047df5 compile intl_new using its includes, not intl's ones
svn path=/trunk/; revision=25628
2007-01-25 15:06:10 +00:00
Magnus Olsen
267904be80 revers r25623
Acdring to Sylvain Petreolle, spetreolle at yahoo.fr this is copy paste from windows xp cpl, it is not allown todo a copy paste of sentence from windows xp, he did compare it. 

svn path=/trunk/; revision=25627
2007-01-25 10:15:19 +00:00
Alex Ionescu
92208d72a8 - Implement KeUpdateSystemTime properly, it now saves and returns the old time, supports HAL time, as well as loops the timer list to fixup relative timers and expired timers after the time has changed.
- Replace mm failure detection code by dprint + while loop to avoid bugchecks which might make the error worse to see.
- Remove some deprecated code/functions and cleanup clock.c entirely.

svn path=/trunk/; revision=25626
2007-01-25 05:14:55 +00:00
Alex Ionescu
2691e0994a - Implement ObQueryTypeInfo and link it to NtQueryObject.
- Fix a bug in ObQueryNameInfo.
See issue #1993 for more details.

svn path=/trunk/; revision=25625
2007-01-25 01:50:40 +00:00
Alex Ionescu
bdc7f65b2d - Rename KiSetSystemTime to KeSetSystemTime and enhance prototype for later use.
- Create Phase 1 initialization for the SRM (SeInitSystem). Right now it inserts the system boot token into object manager, which is something we forgot to do before.
- Renamed ExPhase2Init to Phase1Initialization, since it's not Phase 2.
- Updated Phase 1 PS Initialization to get the KeLoaderBlock pointer and use it as a context parameter when calling Phase1Initialization.
- Split off Phase1Initialization into Phase1InitializationDiscard, which is the bulk of the phase 1 code (99% of it) and can be put in an .INIT section to be freed after boot.
- Modify parts of the Inbv setup code. Also implement support for /SOS, and try to mimic its behaviour on NT (not fully achieved). You will need /SOS to see boot messages on the screen! FreeLDR now adds this by default to the "Debug "configuration.
- Temporarily disable ReactOS Banner during boot. We will get this data from the .mc/.res file in a later patch instead of hard-coding it.
- Optimize calling and usage of ExpLoadInitialProcess.
- Add support for Y2K bug fix documented for Windows NT (/YEAR).
- Add support to detect WinPE/MiniNT/ReactOS Live CD.
- Add temporary debugging code to MmInit2 and some Mm functions to detect if these functions are being used too early, which could result in catastrophic to subtle bugs.
- Add more bugchecks when failures occur, and enhance others. Also add more codes to ntoskrnl.mc.
- Disable calls to ObfDereferenceDeviceMap since it's not yet implemented.

svn path=/trunk/; revision=25624
2007-01-25 01:13:09 +00:00
Johannes Anderwald
3f65c90a12 - set svn eol-properties
- update translation by Heis Spiter heis underscore spiter at hotmail dot c o m
See issue #2000 for more details.

svn path=/trunk/; revision=25623
2007-01-24 20:27:50 +00:00
Alex Ionescu
ddcd40d53c - Fix a bug, fix breakage from previous revision.
svn path=/trunk/; revision=25622
2007-01-24 19:54:51 +00:00
Alex Ionescu
c307d73c12 - Fix ExInitPoolLookasidePointers and ExpInitailizeLookasideLists.
- Implement DbgLoadImageSymbols, Implement DebugService, and ExpLoadBootSymbols during phase 0 executive init to make KD load the symbols for all the boot drivers, and optionally breakpoint. Not yet useful since we don't have KD.
- Detect /BURNMEM and /PERFMEM and go all the way to determining the pages required, but warn the user that we don't support these flags yet.
- Detect FLG_KERNEL_STACK_TRACE_DB and FLG_ENABLE_EXCEPTION_LOGGING and warn that we don't support these yet.
- Add call to Cm to setup system variables, but disable until cm rewrite.
- Add PnP Manager initialization call and implement PnP Manager Phase 0 initialization (PiInitPhase0, PpInitializeDeviceReferenceTable), but this isn't used for now.
- Move MmInit2 to Phase 1 initialization, and initailize bootvid there as well.
- Add/Fix missing definitions, prototypes to NDK/NTIFS.

svn path=/trunk/; revision=25621
2007-01-24 19:48:34 +00:00
KJK::Hyperion
0e1ec5f828 * __cpuid, __rdtsc, __readmsr, __readpmc, __writemsr, __wbinvd, __readcr0, __readcr2, __readcr3, __readcr4: show me a fan of the extended inline asm syntax and I'll show you a SPARKLING FIST OF BURNING RAGE. Sprinkled __volatile__ liberally because there is no way to say "has side effects" OR "delete if outputs are ignored", only BOTH or NEITHER. This breaks Visual C++ compatibility ever so subtly. Tread carefully. THANK YOU GCC TEAM for keeping things interesting!
* __writemsr: pass 64-bit value with "A" constraint
 * __writecr0, __writecr3, __writecr4: "memory" clobber becase Visual C++ does, too

svn path=/trunk/; revision=25620
2007-01-24 19:07:19 +00:00
KJK::Hyperion
d9a9b8a705 * __ll_lshift, __ll_rshift, __ull_rshift: fixed handling of 64-bit arguments and return values by forcing them to be passed as EDX:EAX. Finally generates decent code
* updated comments to reflect current state of the code

svn path=/trunk/; revision=25619
2007-01-24 18:01:34 +00:00
Sylvain Petreolle
2bf5cb7c4f add french resources
fix typos

svn path=/trunk/; revision=25618
2007-01-24 17:45:26 +00:00
KJK::Hyperion
9c1f53ca78 * _ReadBarrier, _WriteBarrier: defined as aliases for _ReadWriteBarrier. Alas
* __emul, __emulu: fixed to specify instruction length suffix
 * __rdtsc: removed "__volatile__" attribute from the inline asm. Hyperion recommends you fix your goddamn code instead
 * __emul, __emulu, __rdtsc, __readmsr, __readpmc: return 64-bit values with the "=A" constraint instead of horrible kludge

svn path=/trunk/; revision=25617
2007-01-24 16:53:44 +00:00
Ged Murphy
f9d9392872 merge r25600
svn path=/branches/ros-branch-0_3_1/; revision=25616
2007-01-24 15:26:51 +00:00
Ged Murphy
2ec1b8df07 merge new icon/cursor selection code, cursors and radio button drawing code from head
svn path=/branches/ros-branch-0_3_1/; revision=25615
2007-01-24 15:25:43 +00:00
Aleksey Bragin
a3ad85c5a5 - Merge 25572 (except the NTLPC related part), this fixes VMWare detection.
- Merge a small part of 25501 ("Fix the KiMask32Array").

svn path=/branches/ros-branch-0_3_1/; revision=25614
2007-01-24 12:14:04 +00:00
Aleksey Bragin
1425102068 Merge 25473.
svn path=/branches/ros-branch-0_3_1/; revision=25613
2007-01-24 11:50:03 +00:00
Aleksey Bragin
a910887fdf - Merge a couple of small bugfixes from 25461 (smss and csrss related)
- Merge 25472

svn path=/branches/ros-branch-0_3_1/; revision=25612
2007-01-24 10:52:55 +00:00
Alex Ionescu
f1e71db26d - Rewrite kernel timer implementation to use Windows 2003's hash-based table timer model. Extremely scalable, since each timer list has its own lock, and optimized for speed since timers are hashed with the tick count at each update (timer.c).
- Implement a new timer expiration function which takes advantage of the fact that timers are now hashed with the system tickcount, and thus only parses the "hot" lists (dpc.c).
- Detect timer expiration during KeUpdateSystemTime and edit the KPRCB to notify of timer expiration. This will be picked up by the timer expiration DPC (clock.s).
- Add support for new timer code in dispatcher (wait.c, queue.c, ke_x.h).
- Change system startup to support the new timer DPC/list (krnlinit.c, clock.c).
- Remove corresponding entry from kernel fun, and update the guidance plan with recent successes and setbacks. This patch is likely the last big architectural change in the kernel except for enabling the new scheduler at a later time.

svn path=/trunk/; revision=25611
2007-01-24 06:50:28 +00:00
Alex Ionescu
991fe7200a - Fix a bug in NtSetTimer which was causing us to completely disregard the due time.
- kmtest now reports 0 failures for the extimer regression test.

svn path=/trunk/; revision=25610
2007-01-24 04:46:31 +00:00
Dominique Cote
dd98a989eb Added test calls for function FsRtlMdlReadDev() and FsRtlMdlReadCompleteDev()
svn path=/trunk/; revision=25609
2007-01-23 23:12:32 +00:00
Alex Ionescu
2ef08cc69b - Fix reference count bugs in executive timer implementation.
- Don't modify status when failing due to an access fault (NT doesn't!).
- Do parameter checks before bothering with expensive SEHing.

svn path=/trunk/; revision=25608
2007-01-23 23:10:13 +00:00
Alex Ionescu
36433ba5ec - Fix some warnings.
- Rearrange some code.
- Remove useless/deprecated code.

svn path=/trunk/; revision=25607
2007-01-23 22:46:38 +00:00
Christoph von Wittich
4fc7465a8f replace _sleep with Sleep to fix the gcc 4.x build
svn path=/trunk/; revision=25606
2007-01-23 21:48:31 +00:00
Alex Ionescu
5c2e4f088a - Convert KxDelayThreadWait, KxSingleThreadWait, KxMultiThreadWait into macros.
- Add KxQueueThreadWait macro based on previous ones.
- Add KxSetTimerForThreadWait to initialize the timer during the macros above. Wait timer setup is now done in two phases, which will be required with the new timer code anyway.
- Remove IRQL hack from idle loop when delivering DPCs.
- Make the wait code use the new macros and make it scale better.
- Add some missing definitions to asm.h

svn path=/trunk/; revision=25605
2007-01-23 18:39:47 +00:00
KJK::Hyperion
85ffdc2193 Fixed:
- _ReadWriteBarrier
 - _InterlockedCompareExchange8
 - _InterlockedCompareExchange16
 - _InterlockedCompareExchange
 - _InterlockedCompareExchange64
 - _InterlockedCompareExchangePointer
 - _InterlockedExchange
 - _InterlockedExchangePointer
 - _InterlockedExchangeAdd
 - _interlockedbittestandset
 - _interlockedbittestandreset

This commit dedicated to Alex (sup Alex!)

svn path=/trunk/; revision=25604
2007-01-23 18:26:51 +00:00
Aleksey Bragin
12e90157e6 Alexey Zavyalov: Add functionally Numbers, Currency, Time, Date tabs. Fix some bugs.
See issue #1988 for more details.

svn path=/trunk/; revision=25603
2007-01-23 17:59:36 +00:00
Alex Ionescu
89056c2f7a - Fix MSVC breakage caused by recent modifications of cctypes.h.
- Remove structures from ntifs.h that shouldn't be there.
- Add support for optimized detection of a DOS device path \?? or \??\ and implement it into ObpLookupObjectName.
- Add support for proper re-parsing up to a maximum of 30 times to avoid reparse DOS attacks on the kernel.
- Set WIN32_WINNT version to Windows 2003 SP1.

svn path=/trunk/; revision=25602
2007-01-22 22:16:13 +00:00
Ged Murphy
b5edfb619c - Fix the display of the radio buttons by using the Marlett font to draw the radio buttons instead of using Pie and Ellipse as Wine does. (ReactOS NtGdiPie and NtGdiEllipse need work anyway)
- The font is a bit messy at the moment, so it would be appreciated if any font designers out there could fix it.

svn path=/trunk/; revision=25601
2007-01-22 20:14:59 +00:00
Ged Murphy
182f879324 Don't substitute Marlett as TGMarlett is the file name, not the typeface name.
svn path=/trunk/; revision=25600
2007-01-22 19:42:16 +00:00
Christoph von Wittich
5d4a1b41e0 named pipes support for linux builds
svn path=/trunk/; revision=25599
2007-01-22 19:34:53 +00:00
Ged Murphy
87553c6cdd A temporary set of white cursors containing 1 bit and 32 bit variations.
I have some much better ones than these, but they are 32bit only. Making 1 bit versions of these (all ROS can handle at the moment) looked ugly. 32bit cursor support should be ready within the coming weeks.

svn path=/trunk/; revision=25598
2007-01-22 18:11:21 +00:00
Thomas Bluemel
4b97b271b9 Silence a warning
svn path=/trunk/; revision=25597
2007-01-22 17:52:47 +00:00
Saveliy Tretiakov
f603122931 Fix bugs in IntLoadKeyboardLayout and make it work.
svn path=/trunk/; revision=25596
2007-01-22 17:08:34 +00:00
Johannes Anderwald
a00e6038e9 - remove obsolete file
svn path=/trunk/; revision=25595
2007-01-22 10:43:18 +00:00
Sylvain Petreolle
85ff81ad42 fix warnings
svn path=/trunk/; revision=25594
2007-01-22 10:35:52 +00:00
Alex Ionescu
b440bf6fae - Implement ExEnumHandleTable. Had to add a small hack due to some memory freeing/init problem that requires more investigation.
- Implement ObpEnumFindHandleProcedure.

svn path=/trunk/; revision=25593
2007-01-22 09:57:10 +00:00
Hervé Poussineau
50d8fb4688 Fix warnings and indentation
svn path=/trunk/; revision=25592
2007-01-22 09:48:26 +00:00
Hervé Poussineau
e51baab788 Fix indentation
svn path=/trunk/; revision=25591
2007-01-22 09:46:01 +00:00
Sylvain Petreolle
17291b0214 fix case (2nd try)
svn path=/trunk/; revision=25590
2007-01-22 09:33:42 +00:00
Sylvain Petreolle
7b65b5fdf8 fix case
svn path=/trunk/; revision=25589
2007-01-22 09:24:42 +00:00
Johannes Anderwald
5e50203d9d - Italian translation by Daniele Forsi (dforsi at gmail dot com)
- fixes bug 1990
See issue #1990 for more details.

svn path=/trunk/; revision=25588
2007-01-22 09:14:32 +00:00
Alex Ionescu
19085f7dfd - Proper fix for the bug that 25558 attempted to fix. Kernel-mode registry handles now work (they didn't before 25558).
- Also the system now boots again since this fix is correct.

svn path=/trunk/; revision=25587
2007-01-22 08:46:56 +00:00
Alex Ionescu
3e42c58603 - Implement new ExHandle* implementation using pushlocks and the Windows 2003 HANDLE_TABLE structure and semantics. Only the currently used base APIs were implemented; support for audit masks still disabled, debug/tracing calls disabled.
- Remove manual overrides of NTDDI_VERSION all over the thread and set it once globally, since ExHandle* was the only non-updated package. The entire kernel now builds with Windows 2003 SP1 as a target.
- Remove this entry from kernel fun.

svn path=/trunk/; revision=25586
2007-01-22 08:15:17 +00:00
Alex Ionescu
d1c966119b - Fix HANDLE_TABLE definition.
- Fix LPC bugcheck during 2nd stage setup and/or bootup (double-free):
- LpcReplyMessage and LpcWaitingOnPort are a union inside ETHREAD, and they can actually be both accessed in the same time! (Unlike other unions which are self-exclusive). Therefore, we need a way to:
  1) Mark a message vs a port.
  2) Retrieve the correct object.
 This has now been implemented with some helper inline functions.

svn path=/trunk/; revision=25585
2007-01-22 08:07:24 +00:00
Alex Ionescu
a0d7a72c1a - Implement a cute little hack called DEFINE_WAIT_BLOCK which makes pushlocks work on GCC 3.4.5 as well as 4.1.2+ (with no perf-hit on the latter).
- Implement ExWaitForUnblockPushLock (just a wrapper around ExTimedWaitForUnblockPushLock).
- Simplfy ExBlockPushLock and fix some bugs.
- Fix a bug in ExfReleasePushLockExclusive when we have to wake the lock.
- Fix a bug in ExfUnblockPushLock which was touching the wrong pointer.
- Fix ExWaitOnPushLock to verify that the pushlock is actually locked.

svn path=/trunk/; revision=25584
2007-01-22 06:47:44 +00:00
Christoph von Wittich
2f75cefc88 some more warnings fixes (gcc 4.2)
svn path=/trunk/; revision=25583
2007-01-22 03:00:02 +00:00
Thomas Bluemel
4410a2013e This is the last fix for GCC4.2. Now everything can be built with -O3
svn path=/trunk/; revision=25582
2007-01-21 23:54:59 +00:00
Johannes Anderwald
3b4ec883fa - define msvc compabitble debug macro
- fix error in debug print

svn path=/trunk/; revision=25581
2007-01-21 23:29:12 +00:00
Thomas Bluemel
80513cb036 Fix compilation with GCC4.2. Please check changes in CreateProcessInternalW for correctness!
svn path=/trunk/; revision=25580
2007-01-21 23:29:10 +00:00
Johannes Anderwald
b4b32d74ee msvc only knows _snprintf ...
svn path=/trunk/; revision=25579
2007-01-21 23:23:24 +00:00
Johannes Anderwald
8d3d576d40 required cast because unsigned value ranges are always >= 0
svn path=/trunk/; revision=25578
2007-01-21 23:21:55 +00:00
Johannes Anderwald
c353557eea remove stdcall declaration
svn path=/trunk/; revision=25577
2007-01-21 23:19:35 +00:00
Johannes Anderwald
6ebc412a03 - fix small bug
svn path=/trunk/; revision=25576
2007-01-21 23:13:02 +00:00
Johannes Anderwald
986c2d5d7d - add include guards
svn path=/trunk/; revision=25575
2007-01-21 22:59:01 +00:00
Johannes Anderwald
8e502ebf41 as stated in file dir:
the file is obsolescent, please use io.h

svn path=/trunk/; revision=25574
2007-01-21 22:54:54 +00:00
Thomas Bluemel
243a44d2c0 Yet another fix for GCC4.2
svn path=/trunk/; revision=25573
2007-01-21 22:47:22 +00:00
Alex Ionescu
05e22f2f64 - Fix IN/OUT privileged instruction fault (we don't yet handle HLT/CLI/STI other prefixes but the framework is there).
- Enable back proper VMWARE detection.
- Fix namepointer setup in DbgkCreateThread.
- Skip the first entry when doing fake module load messages.
- Fix which handle count is read in DbgkCloseObject.
- Set the right flags for the debug event thread instead of random flags inside the debug event itself when parsing in DbgkpSetProcessDebugPort.
- Add debug event in the temporary list to be woken, if rundown couldn't be acquired.
- Properly validate continue statues allowed in NtDebugContinue.
- Properly support timeout in NtWaitForDebugEvent.
- Properly do backout in NtWaitForDebugEvent.
- Disable LPC debug messages accidentally enabled, and add a small hack to better find the cause of the LPC shutdown bug.

svn path=/trunk/; revision=25572
2007-01-21 22:43:32 +00:00
Thomas Bluemel
285cc65a82 - Allow warnings in the expat library
- More fixes for GCC4.2

svn path=/trunk/; revision=25571
2007-01-21 22:42:44 +00:00
Dominique Cote
27c812af6e ===================================================================
ntoskrnl/fsrtl/fastio.c
===================================================================
Fixed @implemented/@unimplemented tags

===================================================================
Index: ntoskrnl/cc/mdl.c
===================================================================
Fixed a comment.

svn path=/trunk/; revision=25570
2007-01-21 21:01:57 +00:00
Christoph von Wittich
316f362656 fix win32csr (gcc 4.2)
svn path=/trunk/; revision=25569
2007-01-21 20:38:29 +00:00
Christoph von Wittich
38dd475bcf revert this change (it broke the build)
svn path=/trunk/; revision=25568
2007-01-21 20:25:27 +00:00
Christoph von Wittich
745785f093 fix some more warnings (gcc 4.2)
svn path=/trunk/; revision=25567
2007-01-21 20:10:17 +00:00
Thomas Bluemel
e32b29f0a0 Fix the NdisQueryBufferOffset and the ARGUMENTS_PRESENT macro
svn path=/trunk/; revision=25566
2007-01-21 19:44:42 +00:00
Magnus Olsen
662d573b8d Allot of change in dejavu 2.14 I have not review what really good news for us
what I can see allot of misc char are supported now. 

Changes from 2.13 to 2.14
- added Philippine peso glyph U+20B1 (by Clayborne Arevalo)
- made U+2012 have the same width as digits, according to Unicode 5.0, 
  page 206 (by Roozbeh Pournader)
- made all of the "above" combining characters remove the dot of "i", 
  "j", etc (Soft_Dotted characters), according to Unicode 5.0, 
  page 228 (by Roozbeh Pournader)
- made U+012F, U+03F3, U+0456, U+0458, U+1E2D, and U+1ECB (all fonts 
  except Mono), U+0249, U+2148, and U+2149 (Sans and Sans Condensed), 
  U+0268 (Sans ExtraLight, Serif and Serif Condensed), and U+029D (Serif 
  and Serif Condensed) respect the Soft_Dotted property (by Roozbeh 
  Pournader)
- added U+223E, U+223F, U+2240, U+22C2, U+22C3 to Sans (by Rémy Oudompheng)
- added U+203D to Serif (by Gee Fung Sit)
- added zero-width glyphs for U+2061-U+2063 to Sans and Serif (by Gee 
  Fung Sit)
- changed isolated forms of Arabic waw (U+0648, U+0624 and U+06C6) (bug #9432) 
  (by Ben Laenen)
- added Lao consonants U+0E81, U+0E82, U+0E84, U+0E87, U+0E88, U+0E8A, 
  U+0E8D, U+0E94-0E97, U+0E99-0E9F, U+0EA1-0EA3, U+0EA5, U+0EA7, U+0EAA, 
  U+0EAB, U+0EAD-0EAF to Sans Mono (by Rémy Oudompheng)
- added U+0200-U+0217, U+0226-U+0229, U+02F3, U+1E00-U+1E07, 
  U+1E0A-U+1E0B, U+1E18-U+1E1F, U+1E22-U+1E23, U+1E28-U+1E2D, 
  U+1E3A-U+1E3B, U+1E40, U+1E48-U+1E49, U+1E56, U+1E58-U+1E59, 
  U+1E5E-U+1E5F, U+1E60, U+1E68-U+1E6B, U+1E6E-U+1E6F, U+1E72-U+1E77, 
  U+1E86-U+1E8B, U+1E92-U+1E96, U+1EA0-U+1EA1, U+1EF4-U+1EF5 to Mono 
  (by Ben Laenen)
- renamed uppercase variants of diacritics (macron, breve, double grave, 
  double acute, inverted breve, dot above) to "uni03XX.case" in Mono 
  (by Ben Laenen)
- moved uppercase variants of diacritics up in Mono so they properly 
  vertically align on capitals (by Ben Laenen)
- precomposed glyphs with macron, breve, double grave, double acute, 
  inverted breve, dot above, macron below, breve below, inverted breve 
  below, dot below, cedilla, caron below, circumflex below, diaeresis 
  below, tilde below now reference to combining diacritics instead of 
  space modifiers in Mono (by Ben Laenen)
- made ring below (U+0325), and half rings below (U+031C and U+0339) 
  smaller in Mono (by Ben Laenen)
- added U+205F to all fonts (by Roozbeh Pournader)
- added U+035E-U+035F to Sans (by Roozbeh Pournader)
- added empty glyphs for U+034F, U+202A-U+202E, U+2060, U+206A-206F, 
  U+FE00-U+FE0F to non-Mono fonts (by Roozbeh Pournader)
- added U+2101, U+2107-U+2108, U+210B, U+210C, U+2110, U+2112, U+211B, 
  U+211F, U+2123, U+2125, U+2128-U+2129, U+212C-U+212D, U+212F, 
  U+2130-U+2131, U+2133, U+2136-U+213A, U+2141-U+2144, U+2B00-U+2B11, 
  U+2B20-U+2B23 to Sans (by John Karp)
- reshaped omega (U+03C9) in Mono (by Ben Laenen)
- added U+2205, U+22C6, U+2300-U+2301, U+2303-U+2306, U+230C-U+230F, 
  U+2312-U+2315, U+231C-U+231F, U+2335, U+2337-U+233E, U+2341-U+2344, 
  U+2347-U+2348, U+234B-U+234D, U+2349-U+2350, U+2352-U+2354, 
  U+2357-U+2359, U+235A-U+235C, U+235E-U+2360, U+2363-U+2365, 
  U+2368-U+2369, U+236B-U+2370, U+2373-U+237A, U+2380-U+2383, 
  U+2388-U+238B, U+2395 in Mono (by Ben Laenen)

svn path=/trunk/; revision=25565
2007-01-21 19:27:35 +00:00
Johannes Anderwald
a02b98af72 - small fix
svn path=/trunk/; revision=25564
2007-01-21 19:12:46 +00:00
Thomas Bluemel
a8897783d7 Convert NdisQueryPacket to an inline function (The DDK also defines it as an inline function). Should fix some warnings with GCC4.2
svn path=/trunk/; revision=25563
2007-01-21 18:49:10 +00:00
Christoph von Wittich
603823ffb8 fix some warnings (gcc 4.2)
svn path=/trunk/; revision=25562
2007-01-21 18:25:47 +00:00
Christoph von Wittich
88803f3676 set the correct limits for the GDT Entry in KiInitializeTSS2
svn path=/trunk/; revision=25561
2007-01-21 18:20:06 +00:00
Christoph von Wittich
b598d64920 fix KeFlushCurrentTb
svn path=/trunk/; revision=25560
2007-01-21 17:53:16 +00:00
Christoph von Wittich
3863f61aaf -fix a call to ExGetPreviousMode()
-initialize CurKey in CmiScanKeyList

svn path=/trunk/; revision=25559
2007-01-21 17:32:11 +00:00
Christoph von Wittich
29043050ac fix some warnings (gcc 4.2) thanks to w3seek
svn path=/trunk/; revision=25558
2007-01-21 17:23:23 +00:00
Alex Ionescu
28df784f1a - Fix multiple LPC race conditions.
- Improve LpcpFreeToPortZone calls for optimizing lock release.
- Use RtlCopyMemory instead of RtlMoveMemory to optimize data transfer speed.
- Always hold a reference to the connection port associated to the LPC port and properly handle this reference in all the LPC code.
- Hold a reference to the process that mapped a server/client view, and use this field when freeing memory in case we're called out-of-process.
- Fix a lot of list parsing loops and code to handle the case when the list is now empty.
- Validate more fields and data in the code.
- There are still some LPC bugs at system shutdown.

svn path=/trunk/; revision=25557
2007-01-21 17:21:42 +00:00
Christoph von Wittich
b4483383d1 fix some warnings (gcc 4.2)
svn path=/trunk/; revision=25556
2007-01-21 16:04:17 +00:00
Maarten Bosma
41e6dfed9c More applications by EmuandCo.
svn path=/trunk/; revision=25555
2007-01-21 15:12:03 +00:00
Maarten Bosma
88b9f31e3a Merge xml changes to 0.3.1 branch.
svn path=/branches/ros-branch-0_3_1/; revision=25554
2007-01-21 15:12:00 +00:00
Magnus Olsen
2bdeda8d07 fixing a small disambler bug for mr
svn path=/trunk/; revision=25553
2007-01-21 15:06:57 +00:00
Aleksey Bragin
b467c3a28e [AUDIT]
(thanks to "Ventron" for help in checking this file)

Result: clean, reasons:
1) Alex cites legal sources for his magic numbers
2) The callers to the Hal don't know what they want to ask the Hal for (they pass NULLs)
3) It looks a bit incomplete in general

svn path=/trunk/; revision=25552
2007-01-21 11:38:05 +00:00
Magnus Olsen
9a661e9b1c comment out packmgr for it can not be build at moment. some should take a look at it.
svn path=/trunk/; revision=25551
2007-01-21 11:32:28 +00:00
Dominique Cote
3658aa350d ===================================================================
cctypes.h
ntoskrnl/cc/copy.c
===================================================================
Added CcFastMdlReadNotPossible
 
 
===================================================================
fastio.c
===================================================================
Added #ifdef to allow the file to compile "as is" in my windows 
framework. This doesnt affect RosBE

Brought back Alex's code for 

 FsRtlMdlReadCompleteDev
 FsRtlMdlReadDev
 FsRtlMdlReadComplete 

after having code reviewed it.

===================================================================
ntoskrnl/include/internal/cc.h
ntoskrnl/cc/mdl.c
===================================================================
Change the name of CcMdlReadCompleteDev to CcMdlReadComplete2


svn path=/trunk/; revision=25550
2007-01-21 04:46:38 +00:00
Dominique Cote
9b89b48609 Initial commit for the fsrtl lib test driver. This does not compile under ROS. You need some glue to compile and use it under windows.
svn path=/trunk/; revision=25549
2007-01-20 18:06:23 +00:00
Dominique Cote
bdc2486c5a * Adding FsRtlCopyRead(), FsRtlCopyWrite()
* Added #ifdef _NTIFS_INCLUDED_
	typedef struct _SHARED_CACHE_MAP {
  definition to cctypes.h header file.

svn path=/trunk/; revision=25548
2007-01-20 17:43:46 +00:00
Aleksey Bragin
7f1c973339 Merge 25454, 25455, 25457, 25458.
svn path=/branches/ros-branch-0_3_1/; revision=25547
2007-01-20 15:29:52 +00:00
Aleksey Bragin
60f76ba979 Merge 25429:25431, 25437, 25441:25443.
svn path=/branches/ros-branch-0_3_1/; revision=25546
2007-01-20 15:15:54 +00:00
Johannes Anderwald
a434a6256b - add italian translation by Paolo Devoti, devotip at tiscali dot xit
See issue #1949 for more details.

svn path=/trunk/; revision=25545
2007-01-20 14:12:12 +00:00
Magnus Olsen
b760238f4d sorry ia32 should be own folder
svn path=/trunk/; revision=25544
2007-01-20 13:39:01 +00:00
Magnus Olsen
fb71b542de start add mr op code causeome new bug for ppc
svn path=/trunk/; revision=25543
2007-01-20 13:33:42 +00:00
Magnus Olsen
5b7bc2d57e forgot thuse file
svn path=/trunk/; revision=25542
2007-01-20 13:32:26 +00:00
Magnus Olsen
a07e330040 forgot this file
svn path=/trunk/; revision=25541
2007-01-20 13:30:04 +00:00
Hervé Poussineau
961f68c118 Fix some warnings
svn path=/trunk/; revision=25540
2007-01-20 13:29:04 +00:00
Johannes Anderwald
4dec84dc2a msvc compilation fix & identify
svn path=/trunk/; revision=25539
2007-01-20 13:25:28 +00:00
Thomas Bluemel
f1f13fff16 Enable shell extensions to add pages to the control panel. The "Remote" page in XP however disappears when being clicked on. Is someone interested in taking a look at it?
svn path=/trunk/; revision=25536
2007-01-19 18:34:50 +00:00
Thomas Bluemel
e4a01dbd1c Merge patch from wine-head: Fixes function prototypes of SHAddFromPropSheetExtArray, SHCreatePropSheetExtArray, SHReplaceFromPropSheetExtArray and SHDestroyPropSheetExtArray
svn path=/trunk/; revision=25535
2007-01-19 18:30:53 +00:00
Thomas Bluemel
e7f892ab74 Merged recent w32api changes
svn path=/trunk/; revision=25534
2007-01-19 16:46:36 +00:00
Sylvain Petreolle
7c323b32c0 fix typo
svn path=/trunk/; revision=25533
2007-01-19 15:45:44 +00:00
Thomas Bluemel
f4947f0064 Fix compilation
svn path=/trunk/; revision=25532
2007-01-19 15:37:51 +00:00
Magnus Olsen
4faf77f9ca adding beepmidi to build
svn path=/trunk/; revision=25530
2007-01-19 10:37:52 +00:00
Christoph von Wittich
7f361aca5b fix some gcc 4.2 warnings
svn path=/trunk/; revision=25529
2007-01-19 10:14:29 +00:00
Christoph von Wittich
a356a76c21 fix some gcc 4.2 compilation problems and warnings
svn path=/trunk/; revision=25528
2007-01-19 09:26:20 +00:00
Magnus Olsen
fa8f26e7c6 Fixing the src and dst of register so they are being read right (PPC brain)
Adding stw for dissembler and converting (PPC and IA32)
Fixing a counter bug in ConvertBitToByte, ConvertBitToByte32, GetMaskByte, GetMaskByte32
we did miss one bit calculation when we count the mask the bit 0 

svn path=/trunk/; revision=25527
2007-01-19 08:20:42 +00:00
Thomas Bluemel
4f8fd087f7 Fix compilation (second attempt, too many local changes to keep track of)
svn path=/trunk/; revision=25526
2007-01-19 01:06:25 +00:00
Thomas Bluemel
f0b7c5e2d6 Fix compilation
svn path=/trunk/; revision=25525
2007-01-19 01:05:44 +00:00
Christoph von Wittich
d5a1f83701 fix some warnings (gcc 4.2 on Linux x64)
svn path=/trunk/; revision=25524
2007-01-19 01:00:06 +00:00
Thomas Bluemel
ff8132912c Fix freeing memory
svn path=/trunk/; revision=25523
2007-01-19 00:23:48 +00:00
Thomas Bluemel
0c3e4dc99b Move the "Computer Name" page to netid.dll
svn path=/trunk/; revision=25522
2007-01-19 00:09:21 +00:00
Thomas Bluemel
717f760ac7 set eol-style to native
svn path=/trunk/; revision=25521
2007-01-18 23:42:21 +00:00
Andrew Greenwood
8a64d7ef61 PC speaker MIDI driver (see README.TXT for info)
Tested on Windows XP but should be compatible with ReactOS


svn path=/trunk/; revision=25520
2007-01-18 23:26:30 +00:00
Johannes Anderwald
f8edfc8d99 - forgot these changes in my local svn
- generating dependency map works
- results can be viewed with XSL capable browser

svn path=/trunk/; revision=25519
2007-01-18 22:37:10 +00:00
Magnus Olsen
0cb4e210e1 Fixing another bug in converting
PPC 
stwu r1,-32(r1) 

equal with intel
mov [esp-32],esp; 
mov esp, esp - 32; 

svn path=/trunk/; revision=25518
2007-01-18 22:09:08 +00:00
Magnus Olsen
a286bd796f Adding stwu to converting to ia32
fixing some smaller bug when it was disabmler
fixing dymatic translations of abi for ppc and ia32


svn path=/trunk/; revision=25517
2007-01-18 21:35:48 +00:00
Thomas Bluemel
9ea6afafc7 Merge 3 STATICs together
svn path=/trunk/; revision=25516
2007-01-18 21:09:56 +00:00
Johannes Anderwald
62b03bfff8 - dutch translation by Eric Janssen (janssuhhh@gmail.com)
See issue #1989 for more details.

svn path=/trunk/; revision=25515
2007-01-18 20:22:56 +00:00
Magnus Olsen
36a8eccf27 Implement disambler for stwu, left todo add it to the Converter
svn path=/trunk/; revision=25514
2007-01-18 19:33:48 +00:00
Christoph von Wittich
4e16032857 fix some warnings
svn path=/trunk/; revision=25513
2007-01-18 17:12:49 +00:00
Thomas Bluemel
bdce0f47d1 Use comctl32's syslink control, no need to reinvent the wheel
svn path=/trunk/; revision=25512
2007-01-18 16:37:30 +00:00
Magnus Olsen
e6cfb666ca Fixing some ppc disambler bugs. Li are not 100% test it can contain some fault.
Fixing Li bug the register for dest was wrong calctions see file OpCodePPC.txt.
fixing some meaing in ReadMe.txt


svn path=/trunk/; revision=25511
2007-01-18 15:40:37 +00:00
James Tabor
fd1467e3a2 Add Arc.c to win32k. See gdi32 painting.c for more info.
svn path=/trunk/; revision=25508
2007-01-18 13:56:58 +00:00
Magnus Olsen
48cd2b3e75 Expain how the bit order works and how get the opcode. The IBM and freescale manual for ppc cpu are not good expain it.
now I got less headic, and got understainf how to decoding the manual and how the opcode are store. 
  

svn path=/trunk/; revision=25507
2007-01-18 13:43:17 +00:00
Magnus Olsen
4da115c6b5 Adding a opcode list, which opcode we are supportin convert from
svn path=/trunk/; revision=25506
2007-01-18 12:04:24 +00:00
Sylvain Petreolle
d245564623 fix gcc4 build
svn path=/trunk/; revision=25505
2007-01-18 11:13:43 +00:00
Alex Ionescu
9522e0a02b [25 bug fixes]:
- Implement KeReadStateThread.
- Fix PspTerminateProcess to handle case where there's no threads in the process.
- Fix check in PspTerminateProcess. ObClearProcessHandleTable gets called if there's a debug port, not if there's an object table.
- Simplfy PspReapRoutine.
- Fix PspExitThread to wait for all other threads before continuing to kill the last thread. Should fix lots of race/wait conditions.
- PspExitThread should check for !DeadThread and not !Terminated before determining if it should free the TEB. Also, the DbgK handle should only be closed if the thread isn't already dead.
- Fixup formatting of some code to warn less on MSVC.
- Fail various APIs if acquiring rundown protection failed.
- Fix Process Quantum/Priority settings.
- Grant PROCESS_TERMINATE by default.
- Add PROCESS_SET_INFORMATION, STANDARD_RIGHTS_ALL and PROCESS_SET_QUOTA to the default process granted access mask.
- Initialize process/thread/image notification callbacks durin phase 0 Ps initialization.
- The Audit Name belongs to the system process, not the idle process.
- Detect more failures in phase 0 startup.
- Fix various race conditions/incorrect checks in ps/security.c related to impersonation information. Also allow PspAssignPrimaryToken to be called directly with the token pointer and not only the handle.
- Wrap system thread startup stub in SEH and write a SEH filter function to print out debug information when a system thread dies unexpectedly.

svn path=/trunk/; revision=25504
2007-01-18 09:44:49 +00:00
Alex Ionescu
ccee43a360 - Fix __rdtsc so it's considered volatile by GCC instead of caching it.
- Add NtInitialUserProcessBuffer settings and validate/user them when launching smss.
- Use SePublicDefaultUnrestrictedSd for the root system link.
- Make enough space for the smss process parameters, there's 6 strings, not 4.
- Fix incorrect length of NtSystemRoot string.
- Disable SYSENTER on CPUs that don't support it.
- Detect and enable NX feature bit.
- Detect and enable DTS support.
- Implement Ki386EnableXMMIExceptions (the XMMI handler still needs to be done, however).
- Implement KiI386PentiumLockErrataFixup to work around the F00F bug.
- Implement KiIsNpxErrataPresent to detect the FDIV bug.
- Implement CPU Speed detection.
- Only setup Initial FX State if the CPU supports FXSR.
- Setup some more PCR fields during init.
- Use NX_SUPPORT_POLICY flags documented in ntddk.h
- Don't boot if CMPXCHG8B is not supported by the CPU. This is the same requirement as Windows.
- Don't overwrite all the PRCB locks in KiInitSpinlocks due to a stupid bug in the timer spinlock initialization.

svn path=/trunk/; revision=25503
2007-01-18 06:23:14 +00:00
Alex Ionescu
8be76ffcb3 - Remove hack from KiSetPriorityThread. Now it doesn't dispatch threads anymore, but this cleans up the IRQL/Dispatcher hack (it will still insert the higher priority thread in the right queue though, so there's not much visible change, just that priorities suck a bit more -- but this is temporary).
- Guard some more code with #ifdef NEW_SCHEDULER.
- Fix bugs in KiDispatchInterrupt.
- Use PRCB fields instead of PriorityListHead/PriorityListMask to reduces number of code changes between NEW_SCHEDULER and old.
- Fully implement KiDeferredReadyThread, but only for Uni-Processor systems. Supports unwait boosts as well as lock boosts. Not yet used.
- Implement NEW_SCHEDULER version of KiSwapThread and NtYieldExecution.

svn path=/trunk/; revision=25502
2007-01-17 21:53:45 +00:00
Alex Ionescu
a04cac242c [10 bug fixes]:
- Simplify KiSelectReadyThread.
- Use ASSERT_IRQL_EQUAL instead of ASSERT_IRQL, because ASSERT_IRQL is braindead and doesn't actually do what the name proposes. This caused us to miss many critical bugs.
- Don't lower IRQL to PASSIVE_LEVEL after KeInsertQueueApc. This caused a call to KiExitDispatcher at PASSIVE, which is completely fucked. Also do the same fix in KeFreezeAllThreads and KeThawAllThreads.
- Implement code in KiDispatchInterrupt to switch to a new thread, but don't enable for now.
- Fix the KiMask32Array. One of the values was totally off and screwed up priority/affinity masks.
- Exit the dispatcher in KiAdjustQuantumThread. This wasn't done, thus causing a weird system state.
- Fix a bug in KiSetPriorityThread which wasn't properly checking the ProcessReadyQueue member and thus not applying priority changes.
- Fixup lock release and dispatcher exit in wait functions in the NoWait case. It was inverted and messed up, leading to system inconsistency.

svn path=/trunk/; revision=25501
2007-01-17 20:44:37 +00:00
Magnus Olsen
22033f60ea fixing dymatic abi for ppc, and implement a dymatic abi even for ia32 converter
svn path=/trunk/; revision=25500
2007-01-17 20:25:46 +00:00
Magnus Olsen
3f44d73a4b fixing count how many reg we are using. so we can setup a frame pointer
svn path=/trunk/; revision=25499
2007-01-17 18:47:08 +00:00
Magnus Olsen
d1aa0d32ae Adding m68k,arm,ia32,ppc to ppc convert.
Remove the old disambler list from ppc to ppc 
implement new ppc to ppc disambler that are allot better at end. 

svn path=/trunk/; revision=25498
2007-01-17 17:35:18 +00:00
Magnus Olsen
65747168ef fixing a bug did write end code for frame pointer that we do not have
tempary fix, we can not optimize code so good yet. so if it more that 4 register same time we are using own frame, ebx is working as our ebp for we already resvert  the ebp 

svn path=/trunk/; revision=25497
2007-01-17 16:23:39 +00:00
Magnus Olsen
af42a0cc24 fixing the ppc to ia32 break, use ebx as ebp if we got to many register.
svn path=/trunk/; revision=25496
2007-01-17 15:31:47 +00:00
Magnus Olsen
69999a5ad4 This break the ppc disambler support and convert to ia32, temporary
I change the desgin lite to preopare the ia32 to ppc 

svn path=/trunk/; revision=25495
2007-01-17 15:02:43 +00:00
Aleksey Bragin
60fc740a7d Delete 100 files which are completely unneeded in order to statically compile expat library (full source code is located in the vendor branch).
svn path=/trunk/; revision=25494
2007-01-17 12:42:43 +00:00
Alex Ionescu
c696d66532 - Simplify KiSelectReadyThread.
- Disable KiSetAffinityThread to do nothing else but change affinity instead of doing re-scheduling (temporary change).
- Cleanup KiQuantumEnd to prepare for new scheduler.
- Fix up a large bug in KeInsertQueueDpc which was making every DPC become a Threaded DPC due to a bad assignment-instead-of-compare.
- Copy KiSelectNextThread for new scheduler branch, without SMT support.
- Fix a bug in KiAdjustQuantumThread under new scheduler.
- Re-implement KiSetPriorityThread under new scheduler, leave hacks for current scheduler support.
- Remove old testing assert from KiExitDispatcher.

svn path=/trunk/; revision=25491
2007-01-17 01:56:15 +00:00
Alex Ionescu
c15d054bad [22 bug fixes]:
- Make KiComputeNewPriority accept various priority adjuments instead of always assuming an increase of 1 priority level.
- Fix ASSERT in KeSetEventBoostPriority: API is valid *only* for Synchronization events, not notification ones.
- Use proper KiComputeNewPriority call in KeSetEventBoostPriority, since we're not adjusting by 1.
- Make sure the FreezeCount is also 0 in KeAlertResumeThread, before signalling the suspend semaphore.
- Simply alert-mode check in KeAlertThread.
- Don't exit the critical region in KeFreezeAllThreads, it needs to be held.
- Don't enter a critical region in KeThawAllThreads, it should already have been entered; release it after thawing is complete.
- Also change the list loop in these functions to always start with the first thread.
- Copy over boost-disable flag in KeStartThread.
- Don't acquire the dispatcher lock in KeTestAlertThread.
- Set the KernelStackResident flag to TRUE in KeInitThread.
- Fix KeSetIdealProcessorThread to check the CPU is valid on the system, not valid across all valid CPU numbers. Also fix it to compare affinity, not processor.
- Fix KeSetBasePriorityThread to properly call KiComputeNewPriority with an adjustment of 0, and then properly manually adjust with the delta between the new base priority and the old base priority.
- Also normalize the new priority if it's too low.
- Always set the priority decrement back to 0 when KeSetPriorityThread is called.
- Normalize the priority in KeSetPriorityThread if it falls too low.
- Fix process stack count check in KeTerminateThread.
- Acquire thread and PRCB lock in KiAdjustQuantumThread.
- Use KiComputeNewPriority in KiAdjustQuantumThread.
- Dispatch a new thread in KiAdjustQuantumThread to take into account the new scheduler settings.
- Thread priorities should make more sense now...

svn path=/trunk/; revision=25490
2007-01-16 20:49:40 +00:00
Thomas Bluemel
dde6333e88 Fix difference in signedness warnings
svn path=/trunk/; revision=25489
2007-01-16 18:55:06 +00:00
Ged Murphy
6c5af8a927 improve cursor loading code
svn path=/trunk/; revision=25488
2007-01-16 18:30:54 +00:00
Aleksey Bragin
a645a0af1f - Sync desk.cpl with trunk
svn path=/branches/ros-branch-0_3_1/; revision=25487
2007-01-16 17:46:06 +00:00
Alex Ionescu
14060f6c04 - Reimplement Process/Thread/Image notification callbacks by using the new executive lightweight callback implementation.
- Remove corresponding entry from kernel fun.

svn path=/trunk/; revision=25486
2007-01-16 15:09:53 +00:00
Alex Ionescu
b7e3f88937 - Implement ExCompareExchangeCallBack. The CallBack implementation is now ready for testing.
svn path=/trunk/; revision=25485
2007-01-16 14:20:19 +00:00
Alex Ionescu
1ef7c86725 - Implement ExReferenceCallBackBlock and ExDereferenceCallBackBlock.
- Code is very similar to Ob* Fast Referencing, and the use of macros to encapsulate generic referencing should be done later. Essentially, Ob sticks ObRefs around FastRefs, while ExCallbacks sticks ExRundown around FastRefs.

svn path=/trunk/; revision=25484
2007-01-16 07:20:16 +00:00
Alex Ionescu
9416d6ffa4 - Start partial implementation of Executive Lightweight Callbacks: ExAllocateCallBack, ExInitializeCallBack, ExFreeCallBack, ExWaitForCallBacks, ExGetCallBackBlockRoutine, ExGetcallBackBlockContext, ExDoCallBack.
- Stub ExReferenceCallBackBlock and ExDereferenceCallBackBlock until I get the locking right.
- These callbacks are used by Cm as well as Ps inside Windows NT and combine the power of PushLocks, Rundown Protection and Fast Referencing to ensure callbacks only get called once and thread safely. Not yet used in ROS.

svn path=/trunk/; revision=25483
2007-01-16 05:31:05 +00:00
Alex Ionescu
b51d473275 - Large cleanup of exported callback implementation. It was my first code to ReactOS and quite messy.
- Make code use standard NT structures.
- Fix object type initialization.
- Fix calls to ExCreatecallback during system initalization which were randomly overwriting memory.
- Fix ExREgisterCallback which was allocating only a pointer inside of the entire structure, also over-writing system memory.

svn path=/trunk/; revision=25482
2007-01-16 04:16:31 +00:00
Alex Ionescu
532a28a03c - Fix major bugs in the definition of _KTHREAD inside the NDK. I made some stupid assumptions when reading the .pdb dump data. _KTHREAD should now be the right size and structure as Win 2003. (the reason this bug wasn't more evident was because we were using 1-byte packing and a "padding" field. this has now been removed).
svn path=/trunk/; revision=25481
2007-01-16 02:40:41 +00:00
Alex Ionescu
73d8fac4c0 - Simplify KiWaitTest.
- Add _ADJUST_REASON
- Reformat some ke_x.h wait macros to use simpler/shorter variable names.

svn path=/trunk/; revision=25480
2007-01-16 02:24:19 +00:00
Alex Ionescu
ce501f07c6 - Fix insertion of special APC into APC delivery list.
- Re-identize some APC code (just formatting change).
- Detect APC during GateWait. Previous check scanned for DeferredReady, which is incorrect.
- Simplfy KeremovequeueApc to take advantage of the fact RemoveEntryList now returns whether the list is empty or not.

svn path=/trunk/; revision=25479
2007-01-16 01:27:36 +00:00
Ged Murphy
5b7abf2e8a don't leak a bitmap object if we fail to allocate memory
svn path=/trunk/; revision=25478
2007-01-16 00:08:41 +00:00
Ged Murphy
138ba142b5 use IC instead of DC
svn path=/trunk/; revision=25477
2007-01-15 23:37:44 +00:00
Ged Murphy
01ee458c11 revert r25474
svn path=/trunk/; revision=25476
2007-01-15 23:33:01 +00:00
Ged Murphy
1e1efd9791 - implement correct alpha blending of icons
- pixel bits must be pre-multiplied with the alpha channel
- along with the previous LookupIconIdFromDirectoryEx, basic alpha blending is working. some bugfixing is still required.

svn path=/trunk/; revision=25475
2007-01-15 23:25:35 +00:00
Ged Murphy
743b67a342 silence debug message
svn path=/trunk/; revision=25474
2007-01-15 23:23:29 +00:00
Alex Ionescu
4f9b8acb4d - Fix locking bugs in guarded mutex implementation. In race conditions some operations were not re-attempted.
- Fix some other logic bugs, including a serious bug in KeTrytoAcquireGuardedMutex which inversed the result.

svn path=/trunk/; revision=25473
2007-01-15 21:34:36 +00:00
Alex Ionescu
2e03cf0bb5 - Fix several bugs in the rundown protection implementation, mostly related to incorrect loop restarting in case of a race condition.
- The rundown event is a sync event, not a notification event.
- Only take slow path when waiting for release if the value changed *and* is still not active, not if only one of the two is true.

svn path=/trunk/; revision=25472
2007-01-15 21:12:32 +00:00
Alex Ionescu
6b4b2a47a3 - Add KeAreAllApcsDisabled to DDK.
[4 bug fixes]:
- Setup default GrantedAccess for system init thread/process in ObInit.
- Fix a small bug in ObpReapObject.
- Set object header flag is deletion was done deferred.
- Simplify ObpDeferObjectDeletion.
- Use KeAreAllApcsDisabled instead of only checking IRQL to determine if we should do defered deletion.

svn path=/trunk/; revision=25471
2007-01-15 20:54:40 +00:00
Aleksey Bragin
da557c1562 - Merge 25404-25406, very small part of 25407, 25409, 25410, 25412+25414, 25422-25426.
svn path=/branches/ros-branch-0_3_1/; revision=25470
2007-01-15 20:33:07 +00:00
Alex Ionescu
d591f751c7 [12 bug fixes]:
- Isolate FuckedUpCm version of ObpLookupDirectoryObject into CmpLookupDirectoryObject to avoid name info leak.
- Rename ObpIncrementQueryReference to ObpAcquireNameInformation and ObpDecrementQueryReference to ObpReleaseNameInformation and make some changes to make calling a lot easier.
- Fixup reference increment loop in above function.
- Fix incorrect check for defer delete flag instead of query references flag.
- Only clear the directory/directory lock flag in ObpCleanupDirectoryLookup if the directory was actually locked.
- Fix lock logic in ObpLookupDirectoryEntry.
- Properly handle the case when lookup occurs after an existing object, avoid name information leak and reference leak.
- Hold shared lock inside NtQuerydirectoryObject.
- Properly initiailize the directory object in NtCreateDirectoryObject.
- Clear create info before creating the unnamed handle in ObInsertObject.
- Only dereference the target process if we actually have one in NtDuplicateObject.
- Don't double-reference the name information in ObpDeleteNameCheck, thus avoiding another leak.
- Fix object case sensitivity check in ObpLookupObjectName.

svn path=/trunk/; revision=25469
2007-01-15 20:24:40 +00:00
Aleksey Bragin
958d720408 - Merge two small fixes from 25400
- Merge 25401 and 25402

svn path=/branches/ros-branch-0_3_1/; revision=25468
2007-01-15 19:41:14 +00:00
Alex Ionescu
4e9c7cf7e4 [22 bugfixes]:
- ObpReferenceProcessObjectByHandle is always called with HandleInformation, remove this check.
- ObpReferenceProcessObjectByHandle already gets a process parameter, don't query the current one.
- ObpReferenceProcessObjectByHandle already gets a handle table, don't query the current one.
- ObpDecrementHandleCount shouldn't remove the object from the creator info.
- ObpDecrementHandleCount should clear the exclusive process if this is the last handle.
- Killing a protected handle should raise an exception if a debug port is connected, not an exception port.
- ObpIncrementHandleCount should support OBJ_FORCE_ACCESS_CHECK.
- ObpIncrementHandleCount needs to support ObDuplicateHandle.
- ObpIncrementHandleCount needs to support being called without an AccessState.
- Fix interlocked handle count accounting.
- Allow user-mode to create kernel-mode handles.
- Fix the way Additional reference bias is de-referenced during failures.
- Complete rundown in ObKillProcess.
- Send SourceProcess in ObDuplicateHandle.
- Assume initial failure and clear handle in ObDuplicateHandle.
- Don't leak object table references when failing in ObDuplicateHandle.
- Assume failure in ObOpenObjectByName.
- Don't leak buffer during failure in ObOpenObjectByName.
- Don't leak object reference durning failure in ObOpenObjecByName.
- Validate handle attributes in ObOpenObjectByPointer.
- Use RtlCopyMemory when possible to speed up.

svn path=/trunk/; revision=25467
2007-01-15 18:37:53 +00:00
Ged Murphy
3bd87918a1 fix icon loading code to load the correct icon for the current display bpp settings
svn path=/trunk/; revision=25466
2007-01-15 18:08:37 +00:00
Alex Ionescu
d673aa2616 - Fix handle close bug. The ExDestroyHandleEntry API was only killing entries unless the table wasn't being destoyed, which it actually is during process termination, and through failing, was actually not closing the handle at all. This means any killed process leaked all its handles and they were never closed. These handles are now closed, reducing memory load/leaks and opening the door for new bugs :)
- Fix LPC process closing bug.
- Rewrite executive timer support to make it thread-safe and use proper locking order and semantics as well as safe referencing. Also implement Windows 2003 feature of flushing DPCs when a timer is deleted, to avoid the timer from being fired after deletion.

svn path=/trunk/; revision=25461
2007-01-15 07:33:42 +00:00
Aleksey Bragin
1a17bce83b - Merge 25373
- Merge 25396 (only the part related to semgr.c file)
- Merge 25399

svn path=/branches/ros-branch-0_3_1/; revision=25460
2007-01-14 22:36:14 +00:00
Aleksey Bragin
b8f9ed5ea8 Add config.rbuild and change version to 0.3.1
svn path=/branches/ros-branch-0_3_1/; revision=25459
2007-01-14 20:49:18 +00:00
Johannes Anderwald
8eb1ea4802 - add a primitive XSL for displaying the ReactOS dependency map
svn path=/trunk/; revision=25458
2007-01-14 20:41:01 +00:00
Johannes Anderwald
6a1a30f13b - comment out using xsl style sheet until its ready
svn path=/trunk/; revision=25457
2007-01-14 19:49:27 +00:00
Johannes Anderwald
e112816fe2 - implement dependency map checking
svn path=/trunk/; revision=25455
2007-01-14 19:28:07 +00:00
Johannes Anderwald
21f599291b - the parameter flags is of type unsigned. Therefore you dont need an additional check if Flags < 0
svn path=/trunk/; revision=25454
2007-01-14 18:07:56 +00:00
Magnus Olsen
363cf7f261 the public frist version that can convert arty testms.exe that are commited to powerpc branch in the alink folder.
the program doing main() ( return 0 )
fixing minior bugs as well

svn path=/trunk/; revision=25453
2007-01-14 18:01:56 +00:00
Magnus Olsen
bb89b8709c delete ImageLoaer.c until I time rewrite it
svn path=/trunk/; revision=25451
2007-01-14 17:16:38 +00:00
Sylvain Petreolle
93c3b784de fix warnings
svn path=/trunk/; revision=25450
2007-01-14 15:21:35 +00:00
Magnus Olsen
f74e30f8ca Adding stub for AnyalsingProcess and ConvertToIntelProcess
svn path=/trunk/; revision=25449
2007-01-14 13:54:19 +00:00
Magnus Olsen
7c96cb069a adding blr opcode (can not found it in the ibm or motorala doc, the primary opcode refens to addi).
now we can disambler two opcode the li and blr, add blr to my own asm langues. 

svn path=/trunk/; revision=25448
2007-01-14 12:10:53 +00:00
Magnus Olsen
0764ca19ac Fixing a bug in ppc opcode Li
Fixing the memory leak bug
Full implement of the Li 
Convert Li to my own asm langues, opcode move reg,imm
Left todo is add the anyalying process and converting process, after that we can translate our frist public pe file for ppc to intel
with one opcode, it must be Li 



svn path=/trunk/; revision=25447
2007-01-14 10:57:18 +00:00
Magnus Olsen
c96114a82c start on adding the own langues, this version create a memory leak if u try run this tool in translate mode. but not in
disambler mode. (only true for ppc brain about memory leak)

svn path=/trunk/; revision=25445
2007-01-13 23:26:32 +00:00
Magnus Olsen
95c8fa90a8 1. fixing a layout bug
2. frist disambler output for public, the public version can now disambler ppc li rA,imm that all at moment

svn path=/trunk/; revision=25444
2007-01-13 22:09:11 +00:00
Eric Kohl
088891d47e Add hit-testing for caption buttons.
svn path=/trunk/; revision=25443
2007-01-13 19:15:12 +00:00
Johannes Anderwald
1b7e5efafd - add italian translation by Paolo Devoti, devotip@tiscali.it
- fixes some issues with the patch (missing \ or \n or ")
See issue #1983 for more details.

svn path=/trunk/; revision=25442
2007-01-13 18:39:38 +00:00
Johannes Anderwald
bbf29dfdf8 - add italian translation by Paolo Devoti, devotip@tiscali.it
- fixes bug 1974, 1975, 1976

svn path=/trunk/; revision=25441
2007-01-13 18:20:53 +00:00
Magnus Olsen
350c6a32c2 adding GetData32Be, GetData32Le for getting 4bytes from big or lite endian
start implment Ld for ppc.

svn path=/trunk/; revision=25440
2007-01-13 17:27:14 +00:00
Magnus Olsen
ad3d7fea36 adding print out the type of asm file in the asm file
svn path=/trunk/; revision=25439
2007-01-13 14:34:50 +00:00
Magnus Olsen
9b4a7b1fc5 adding option for disambler mode, disambler mode does not translate a binary file. it doing a disambler of the file
svn path=/trunk/; revision=25438
2007-01-13 12:23:25 +00:00
Johannes Anderwald
b339ec7ea9 - make sysreg compilable under Linux
- sysreg is now able to start the emulator but it cannot get any debug data yet. But this might be due that i tested sysreg in linux under vmware which then ran qemu....

svn path=/trunk/; revision=25437
2007-01-13 12:19:56 +00:00
Magnus Olsen
4ffa785260 1. last move is done arm to From folder
2. remove some include in CpuToIntel.c file they are not longer need it. 


svn path=/trunk/; revision=25436
2007-01-13 10:39:12 +00:00
Magnus Olsen
40bbafca90 Create a folder call From and start move in all cpu we will in futer translate from
svn path=/trunk/; revision=25435
2007-01-13 10:27:17 +00:00
Magnus Olsen
40628588f8 1. finish the peloader, left todo add decoder for each sectionheader, add the base address when u call a brain, and some other minior fix
2. fix some comment that was wrong. 
 

svn path=/trunk/; revision=25434
2007-01-13 09:56:05 +00:00
Magnus Olsen
2aab0c74eb backport the start of a pe loader,
backport allot of bug fix. like open file, reading file.
My working copy have allot of hacks and is a big mess. This stuff is cleanup from it.  

svn path=/trunk/; revision=25433
2007-01-12 21:11:44 +00:00
Dmitry Gorbachev
a8dce67086 Thai language support: keyboard layout
svn path=/trunk/; revision=25431
2007-01-11 22:44:26 +00:00
Christoph von Wittich
c4d9ae3316 added target depmap to makefile
svn path=/trunk/; revision=25430
2007-01-11 20:33:04 +00:00
Christoph von Wittich
44592e4e76 added a dependencymap backend (it doesn't do anything yet)
svn path=/trunk/; revision=25429
2007-01-11 20:32:20 +00:00
Peter Ward
c093c9b6b5 - Fix a couple of typos, patch by GreyGhost.
svn path=/trunk/; revision=25426
2007-01-11 15:22:04 +00:00
Peter Ward
98a086245c - Applied patch for "Invalid Sync after loading BLUE.SYS (bootCD-dbg)".
- See issue http://www.reactos.org/bugzilla/show_bug.cgi?id=1953
- Patch by Dmitry G. Gorbachev (hto at mail cnt dot ru).

svn path=/trunk/; revision=25425
2007-01-11 14:47:50 +00:00
Timo Kreuzer
dc8aa9ffd7 - Make IntSystemParametersInfo send a WM_SETTINGCHANGE message when needed.
- Some code cleanup

svn path=/trunk/; revision=25423
2007-01-10 23:55:53 +00:00
Timo Kreuzer
b2c4c0e76e Don't remove keyboard focus from any other window than the one that was disabled.
svn path=/trunk/; revision=25422
2007-01-10 23:48:02 +00:00
Thomas Bluemel
11f6279e11 Fix warnings
svn path=/trunk/; revision=25421
2007-01-10 22:52:07 +00:00
Hervé Poussineau
f1f9bb147e Don't rely on stdio.h to define EOF, as native stdio.h can conflict with ROS headers
svn path=/trunk/; revision=25419
2007-01-10 20:02:41 +00:00
Hervé Poussineau
d9466bc852 Move up wpp include, as it is needed by widl
svn path=/trunk/; revision=25418
2007-01-10 19:57:52 +00:00
Hervé Poussineau
e6f6ed291d Disable some boot options on non-x86 platforms.
You can enable them again for specific platforms if needed.

svn path=/trunk/; revision=25417
2007-01-10 19:48:35 +00:00
Hervé Poussineau
263d5e238b Allow use of ROS_PREFIX on MS Windows platforms (needed for cross-compiling)
svn path=/trunk/; revision=25416
2007-01-10 19:39:52 +00:00
Hervé Poussineau
35f20cc413 Move x86 specific part to i386/ directory.
Fix a few warnings

svn path=/trunk/; revision=25415
2007-01-10 19:39:01 +00:00
Timo Kreuzer
de1bca6b2c sorry, forgot to remove that line
svn path=/trunk/; revision=25414
2007-01-10 18:31:33 +00:00
Alex Ionescu
b432f6d20f - Fix build.
svn path=/trunk/; revision=25413
2007-01-10 06:09:57 +00:00
Timo Kreuzer
b824f04492 remove focus from window, when it gets diabled
- fixes bug 843
See issue #843 for more details.

svn path=/trunk/; revision=25412
2007-01-10 04:51:27 +00:00
Alex Ionescu
6af685313a - Commit NTLPC and remove old implementation.
- Yeah, this adds another regression on top of the new Ob stuff, but in the end it's for the better, as it removes more race conditions and buggy code.
- This whole week I've fixed about 45 bugs and removed a dozen race conditions, sorry for the 2-3 regressions, they will be fixed ASAP. 
- DELETE MAKEFILE.AUTO BEFORE BUILDING THIS BUILD.

svn path=/trunk/; revision=25411
2007-01-10 04:27:40 +00:00
Timo Kreuzer
d8160f0676 Make NtUserSetFocus accept NULL window.
svn path=/trunk/; revision=25410
2007-01-10 04:23:33 +00:00
James Tabor
78749a977a Should be 7 zeros not 6.
svn path=/trunk/; revision=25409
2007-01-10 03:42:10 +00:00
Alex Ionescu
70d1578a28 - Implement ObReferenceProcessHandleTable and ObDereferenceProcessHandleTable and use them where appropriate to avoid race issues if the process is being killed meanwhile.
- Implement ObpReferenceProcessObjectByHandle and simplfy ObDuplicateObject.
- Disable hard errors while closing handles, and protect against races. Also print our error message since it seems handles aren't being closed now (message displays leak count).
- Honour DUPLICATE_CLOSE_SOURCE during failure paths in ObDuplicateObject, and catch race conditions.
- Add some more sanity checks and speed up some internal referencing.

svn path=/trunk/; revision=25408
2007-01-10 03:35:59 +00:00
Alex Ionescu
6e3ccb6ffd - Fix a bug in ExfWakePushLock.
- Implement object directory locking to avoid race conditions in Ob and enable most of the query referencing code.

svn path=/trunk/; revision=25407
2007-01-10 01:00:46 +00:00
Eric Kohl
8fb22da8e5 - Add currency page controls.
- Display currency format information.

svn path=/trunk/; revision=25406
2007-01-09 23:00:21 +00:00
James Tabor
208da846ac Implement new keyboard driver and layout structures to help Saveliy Tretiakovs LoadKeyboardLayout implementation.
svn path=/trunk/; revision=25405
2007-01-09 22:55:40 +00:00
Johannes Anderwald
cf06d4975f Updated French translation by Pierre Schweitzer 2007 (heis_spiter AT hotmail DOT com)
See issue #1969 for more details.

svn path=/trunk/; revision=25404
2007-01-09 22:02:17 +00:00
Alex Ionescu
f9c3ffa9d1 - Heavy cleanup of locking and lookup macros in ob_x.h.
- Add calls to ObpInitializeDirectoryLookup where required.
- Fixup calls to ObpAcquireDirectoryLockExclusive, but still keep them stubbed out for now.

svn path=/trunk/; revision=25403
2007-01-09 21:48:26 +00:00
Johannes Anderwald
9b6f258861 - czech translation by Kamil Hornicek, hornik1@fel.cvut.cz
See issue #1959 for more details.

svn path=/trunk/; revision=25402
2007-01-09 21:21:52 +00:00
Johannes Anderwald
87b814835f - i prefer tabs
svn path=/trunk/; revision=25401
2007-01-09 20:41:14 +00:00
Alex Ionescu
43075eb308 - Fix Port and Section Object Type creation by specifying a valid ValidAccessMask when creating the types.
- NTLPC "Branch": Ports need to maintain a Type List.
- Use proper access mode in parse callbacks.
- Properly validate the access mask given to ObpCreate(Unnamed)Handle and only grant valid bits according to ValidAccessMask.
- Use InterlockedExchangeAdd for reference count bias instead of looping on a single increment.
- Only return the object if the caller did any bias to it.
- Detach from the process much later, since exclusive process support and handle table database needs to be in the same context as the owner.
- Add audit calls to ObpCreateHandle.
- Add stubbed out calls to ObpCleanupDirectoryLookup in ObpCreateHandle.

svn path=/trunk/; revision=25400
2007-01-09 17:18:22 +00:00
Christoph von Wittich
d12b251a36 don't include the Iso targets in the workspace
svn path=/trunk/; revision=25399
2007-01-09 12:28:30 +00:00
Magnus Olsen
022849644c minor changes, for be use later, adding some new data types
svn path=/trunk/; revision=25398
2007-01-09 10:53:19 +00:00
Alex Ionescu
3a79b7cfd8 - Hold reference to the current directory and to the current parent directory during lookups.
- Add more stubbed out cleanup code.

svn path=/trunk/; revision=25397
2007-01-09 09:37:36 +00:00
Alex Ionescu
5676292f72 - Complete the hack that's already in SeAccessCheck to also return STATUS_SUCCESS if we return TRUE always. Otherwise, code might weirdly fail.
- Save parent directory during lookups and check if the caller has the right to traverse it, if we ever need to.
- Optimize the configuration of the lookup context so that it's only done when necessary, add stub calls to lock the directory.

svn path=/trunk/; revision=25396
2007-01-09 09:30:43 +00:00
Alex Ionescu
96b09e8f09 - Add missing code to ObpLookupDirectoryEntry.
- Add calls to ObpInitailizeDirectoryLookup.
- Add calls to ObpCleanupDirectoryLookup but disable them for now.
- Add calls to ObpAcquireDirectoryLock but disable them for now.

svn path=/trunk/; revision=25395
2007-01-09 09:07:36 +00:00
Alex Ionescu
fe1190c599 - Enable sanity check in ObInsertObject to catch assholes that were calling it incorrectly (without a Handle output parameter, which is only allowed in a specific scenario). Changes:
- Registry code which was calling ObInsertObject for no reason at all. Now an ugly hack has been added to Cm code to perform the only operation the insert did -> to free the create info.
   - SeSubProcessToken was broken and calling it incorrectly, fixed.
   - \Device\PhysicalMemory was being inserted incorrectly, fixed.
   - Boot-time driver objects were being inserted for no reason, call removed.
- Support the only case of ObInsertObject where it is OK to call it without an output handle. This codepath will only charge quota instead of creating the full-blown handle.

svn path=/trunk/; revision=25394
2007-01-09 08:38:07 +00:00
Alex Ionescu
612a4059a4 - Merge some local changes from my version of ObpLookupObjectName:
- Fixup the way we allocate object names: use paged pool instead of non-paged pool, detect insufficient memory case, detect failure to insert entry into the object directory, use name length, not maximum length when copying, use RtlCopy, not RtlMove.
   - Support forcing of case-insensitivity and OBJ_FORCE_ACCESS_CHECK.
   - Call ObCheckCreateObjectAccess and fail if access isn't granted.
   - Call ObpCheckTraverseAccess if traversing a directory fomr user-mode and fail lookup if access wasn't granted.
   - Fixup return of proper error code if we reparsed.
   - Add FIXME note for SeCreateGlobalPrivilege check which is missing.
   - Add callout IRQL checks around parse callouts.
   - Rename some variables for clearer meaning.
   - Add an extra reference when calling the parse routine in the reparse case.

svn path=/trunk/; revision=25393
2007-01-09 07:54:19 +00:00
Alex Ionescu
6829abde13 - Add internal macros for acquiring the object directory pushlock during lookup (not yet used).
- Add internal macros for incrementing/decrementing query references, and use them where appropriate. Do not yet support the path for an object which is currently being defer deleted.
- Add internal macros for cleaning up a directory lookup (not yet used and needs renaming/cleanup), initializing a directory lookup (not yet used).
- Don't call security callback in ObpDeleteNameCheck. Make sure permanent flag is still cleared after acquiring type lock. Add special call for symboilc links. Add commented out calls to lock the object directory.

svn path=/trunk/; revision=25392
2007-01-09 07:28:40 +00:00
Timo Kreuzer
0202185efa implement SPI_SETNONCLIENTMETRICS in SystemParametersInfoA
svn path=/trunk/; revision=25391
2007-01-09 01:19:52 +00:00
Christoph von Wittich
5b83954756 -don't create project files for the ISO targets
-use the new extended_obj_names to prevent C::B from linking the wrong libs
-change project file version to 1.6
-compile spec, S, asm and idl files
-delete the temp rc files after building

svn path=/trunk/; revision=25390
2007-01-09 00:17:23 +00:00
Alex Ionescu
9de4aee541 - Make ObpReleaseCapturedName an actual function and rename it to ObpFreeObjectNameBuffer. Fix a bug in this function which was causing it to attempt freeing the UNICODE_STRING structure instead of the actual buffer.
- Implement ObpAllocateObjectNameBuffer instead of inlined code in ObpCaptureObjectAttributes. Enable usage of the Name Buffer Lookaside List since the bug in ObpFreeObjectNameBuffer has now been fixed. This should result in significant speedup and less fragmentation of pool memory.
- Allocate object names in the paged pool instead of non-paged pool, if we can't use the lookaside list.

svn path=/trunk/; revision=25389
2007-01-08 21:02:22 +00:00
Eric Kohl
00207351ec - Add hit-testing to the preview control (almost complete).
- Add selected item combobox.
- Select item in the combobox upon clicking on an item in the preview window.

svn path=/trunk/; revision=25388
2007-01-08 20:55:47 +00:00
Alex Ionescu
27fda62288 - "No files where added or changed, there is nothing to see here" <= Yeah, thanks a lot Tortoise.
svn path=/trunk/; revision=25387
2007-01-08 20:52:45 +00:00
Timo Kreuzer
adf72c70d0 Clean up tabs / spaces mix (no code change)
svn path=/trunk/; revision=25386
2007-01-08 20:01:04 +00:00
Alex Ionescu
8c9205dfd5 - Implement ObpCreateSymbolicLinkName and enable call to the function. It shouldn't do any work currently because we don't have DOS Device Maps.
- Also stub ObpDeleteSymbolicLinkName since it'll probably be needed later.

svn path=/trunk/; revision=25385
2007-01-08 19:52:49 +00:00
Alex Ionescu
76de33fe36 - Implement ObFindHandleForObject and add it to the NDK. However, it depends on ExEnumHandleTable which is still unimplemented.
- Fix up prototype of the function (it returns TRUE/FALSE, not NTSTATUS) and fix callers to use it properly.
- Also add ExEnumHandleTable to NDK.

svn path=/trunk/; revision=25384
2007-01-08 19:40:10 +00:00
Alex Ionescu
30bc8d330f - Fix some NDK dependency problems.
svn path=/trunk/; revision=25383
2007-01-08 18:11:24 +00:00
Alex Ionescu
a9b16dfb0e - Fix kmtest's inclusion of the NDK.
- Implement support for the Handle Count Database.
- Don't do anything in IopCloseFile if this isn't the last handle for the process.
- Fix definition of OBJECT_HANDLE_COUNT_DATABASE.

svn path=/trunk/; revision=25382
2007-01-08 17:56:56 +00:00
Alex Ionescu
a9e4074bd0 - Fix build. Sorry, forgot that the last commit also included changes to FsrtlAreNamesEqual to raise an exception if upcasing the strings failed.
svn path=/trunk/; revision=25381
2007-01-08 17:49:44 +00:00
Alex Ionescu
a22a4040cc - Add authors' names.
svn path=/trunk/; revision=25380
2007-01-08 17:22:15 +00:00
Alex Ionescu
cbd8c78730 - Delete /fs directory.
- Add /fsrtl directory with new file structure and remove all the code except for some smaller "known-working" functions.
- Reason for this is that FsRtl now has a new owner (Dominique Coté) and he will be implementing and testing proper versions of the routines.

svn path=/trunk/; revision=25379
2007-01-08 16:51:06 +00:00
Peter Ward
7ce1744f9a - Fix some annoying warnings in wrc.
- Fixed a warning in winebuild.

svn path=/trunk/; revision=25373
2007-01-08 08:48:28 +00:00
Alex Ionescu
74332efe63 - Fix ObReferenceObjectByName to do proper name validation checks.
- Fix ObReferenceObjectByName to call ObpCheckObjectReference before allowing the caller to obtain the reference.
- Rename ObFindObject to ObpLookupObjectName and shuffle parameters around and add some placeholder code that resets the object pointer of the lookup context.
- Modify ObpChargeQuotaForObject to also return if this is a new object.
- Modify ObpDecrementHandleCount to detect when objects with a handle database are being used. Also protect close callout with checks. Protect ObpCloseHAndleTableEntry's callouts with checks as well.
- Update logic of ObpIncrementHandleCount and ObpIncrementUnnamedHandleCount to handle currently exclusive objects as well as new handles with OBJ_EXCLUSIVE. Also detect objects that require handle databases and protect callouts.
- Support CreatorInfo and the TypeList in ObpIncrementHandleCount. Also update the TotalNumberOfHandles in the object type properly.
- Fixup object type lock usage in these routines.
- Do proper invalid attributes check in ObOpenObjectByName, and also use a buffer from the pool instead of the stack.
- Make ObInsertObject detect invalid object insertions and change some parameter names and checks.
- Add stub code to validate the access mask in ObInsertObject. Proper initailize some lookup variables before starting lookup.
- Add detection for symbolic link inserts which require some handling code later on.
- Free the create information at the right moment isntead of too late.
- Add some missing Ob functions, flags and types to the NDK. Fix OBJECT_DIRECTORY structure to use EX_PUSH_LOCK for locks, not ERESOURCE.

svn path=/trunk/; revision=25372
2007-01-08 08:03:47 +00:00
Alex Ionescu
956ae8b6f1 - Changes to lookup context set-up as place-holder and compatibility for future patch. Only configure the lookup context once, outside the initial loop, instead of configuring it with the same settings at each iteration.
svn path=/trunk/; revision=25371
2007-01-08 07:54:57 +00:00
Alex Ionescu
569e9458d6 - Validate lookup context in ObpInsertEntryDirectory.
- Read actual ObpLUIDDeviceMapsEnable variable do determine if shadow-searching is enabled in ObpLookupEntryDirectory.
- Currently disable all directory locking code (it was never used anyways) in ObpLookupEntryDirectory.
- Update ObpLookupEntryDirectory with placeholder code/branches for future patch implementing directory locks.

svn path=/trunk/; revision=25370
2007-01-08 07:53:50 +00:00
Alex Ionescu
d107f7d0f4 - Set an invalid pointer as the object header's type when freeing it, to detect invalid usage.
- Optimize type mutex acquisition in ObpDeleteObject. Also optimize freeing of the unicode_String containing the name. Also add callout checks/protection during the security and delete procedure callouts.
- Acquire object type mutex during modification of the OB_FLAG_PERMANENT flag in ObpSetPermanentObject.
- Initialize default QueryReferences field to 1 during object allocation.
- Support undocumented 0x10000 object attribute flag used in Windows 2003 SP1 and higher to protect objects from user-mode access (such as PhysicalMemory).
- Use InterlockedIncrements for ObjectType accounting outside the type lock.
- Clear the lookup context's object pointer for future use.

svn path=/trunk/; revision=25369
2007-01-08 07:51:07 +00:00
Alex Ionescu
5626181735 - Implement ObCheckCreateObjectAccess, ObpCheckTraverseAccess, ObpCheckObjectReference. These APIs are not used yet but are all very similar to ObCheckObjectAccess. There are used at different places by Ob to make sure that the current token and access rights permits some privileged operations such as directory traversal, object referencing and object creation.
svn path=/trunk/; revision=25368
2007-01-08 07:46:17 +00:00
Alex Ionescu
ee811ba102 - Add ObDereferenceObjectDeferDelete to NDK.
svn path=/trunk/; revision=25367
2007-01-08 07:44:22 +00:00
Alex Ionescu
50de0ce133 - Fix a bug in ExReleasePushLock which broken contention checking.
svn path=/trunk/; revision=25366
2007-01-08 07:43:49 +00:00
Alex Ionescu
a46e532da9 - Fix ntdll and usetup not to use OBJ_OPENLINK on symbolic links. This attribute is for registry keys, not symlinks.
svn path=/trunk/; revision=25365
2007-01-08 07:43:18 +00:00
Alex Ionescu
1c15cd5161 - Fix _PsProcessType for MSVC compilation.
svn path=/trunk/; revision=25364
2007-01-08 07:42:38 +00:00
Christoph von Wittich
013562e393 fixed most of the memory leaks
svn path=/trunk/; revision=25363
2007-01-08 02:40:38 +00:00
Christoph von Wittich
091af4eeea added defines for GetClassLongPtrA/W
svn path=/trunk/; revision=25362
2007-01-08 02:29:32 +00:00
Timo Kreuzer
29e164cf19 - implement SPI_GETMINIMIZEDMETRICS and SPI_SETMINIMIZEDMETRICS in IntSystemParametersInfo and UserSystemParametersInfo
- add both to SystemParametersInfoA
See issue #1668 for more details.

svn path=/trunk/; revision=25361
2007-01-08 02:18:58 +00:00
Timo Kreuzer
15b82d28e7 implement SPI_SETNONCLIENTMETRICS in IntSystemParametersInfo and UserSystemParametersInfo
svn path=/trunk/; revision=25360
2007-01-08 00:23:15 +00:00
Hervé Poussineau
dafa988988 Fix compilation
svn path=/trunk/; revision=25359
2007-01-07 23:55:50 +00:00
Timo Kreuzer
a423de55e0 Add German resource for wordpad.
svn path=/trunk/; revision=25358
2007-01-07 23:13:41 +00:00
Maarten Bosma
3080176283 - Confused left and right, please fix in the translations.
- Misspelled Environment 

svn path=/trunk/; revision=25356
2007-01-07 22:06:25 +00:00
Hervé Poussineau
c69a51c0a4 Add french tranlation by Heis Spiter
See issue #1913 for more details.

svn path=/trunk/; revision=25355
2007-01-07 22:00:01 +00:00
Hervé Poussineau
5ed56a4f48 Fix svn properties
Use SUBLANG_ENGLISH_US in LANG_ENGLISH resource file

svn path=/trunk/; revision=25354
2007-01-07 21:59:10 +00:00
Hervé Poussineau
f716669f6f Updated french translation (by Heis Spiter)
See issue #1916 for more details.

svn path=/trunk/; revision=25353
2007-01-07 21:43:24 +00:00
Timo Kreuzer
c582ada859 My first commit!
NtGdiExtTextOut:
- Unlock dc if failed
- Copy string from usermode using MmCopyFromCaller

svn path=/trunk/; revision=25352
2007-01-07 21:18:34 +00:00
Aleksey Bragin
c6aab9a0e3 Cleanup of libxml2 library - removing all stuff which is not needed for building the library.
Whole version of this version of libxml2 is stored in vendor/libxml2/current, and future updates will be done only via proper vendor imports.

svn path=/trunk/; revision=25351
2007-01-07 19:46:10 +00:00
Aleksey Bragin
8749551813 Cleanup of zlib library - removing all stuff which is not needed for building the library (~280 files/160 folders -> 40 files/no folders).
Whole version of this version of zlib is stored in vendor/zlib/current, and future updates will be done only via proper vendor imports.

svn path=/trunk/; revision=25348
2007-01-07 19:10:09 +00:00
Magnus Olsen
82c171d4c7 update from zlib 1.1.4 to 1.2.3
ChangeLog file for zlib
Changes in 1.2.3 (18 July 2005)
- Apply security vulnerability fixes to contrib/infback9 as well
- Clean up some text files (carriage returns, trailing space)
- Update testzlib, vstudio, masmx64, and masmx86 in contrib [Vollant]

Changes in 1.2.2.4 (11 July 2005)
- Add inflatePrime() function for starting inflation at bit boundary
- Avoid some Visual C warnings in deflate.c
- Avoid more silly Visual C warnings in inflate.c and inftrees.c for 64-bit
  compile
- Fix some spelling errors in comments [Betts]
- Correct inflateInit2() error return documentation in zlib.h
- Added zran.c example of compressed data random access to examples
  directory, shows use of inflatePrime()
- Fix cast for assignments to strm->state in inflate.c and infback.c
- Fix zlibCompileFlags() in zutil.c to use 1L for long shifts [Oberhumer]
- Move declarations of gf2 functions to right place in crc32.c [Oberhumer]
- Add cast in trees.c t avoid a warning [Oberhumer]
- Avoid some warnings in fitblk.c, gun.c, gzjoin.c in examples [Oberhumer]
- Update make_vms.com [Zinser]
- Initialize state->write in inflateReset() since copied in inflate_fast()
- Be more strict on incomplete code sets in inflate_table() and increase
  ENOUGH and MAXD -- this repairs a possible security vulnerability for
  invalid inflate input.  Thanks to Tavis Ormandy and Markus Oberhumer for
  discovering the vulnerability and providing test cases.
- Add ia64 support to configure for HP-UX [Smith]
- Add error return to gzread() for format or i/o error [Levin]
- Use malloc.h for OS/2 [Necasek]

Changes in 1.2.2.3 (27 May 2005)
- Replace 1U constants in inflate.c and inftrees.c for 64-bit compile
- Typecast fread() return values in gzio.c [Vollant]
- Remove trailing space in minigzip.c outmode (VC++ can't deal with it)
- Fix crc check bug in gzread() after gzungetc() [Heiner]
- Add the deflateTune() function to adjust internal compression parameters
- Add a fast gzip decompressor, gun.c, to examples (use of inflateBack)
- Remove an incorrect assertion in examples/zpipe.c
- Add C++ wrapper in infback9.h [Donais]
- Fix bug in inflateCopy() when decoding fixed codes
- Note in zlib.h how much deflateSetDictionary() actually uses
- Remove USE_DICT_HEAD in deflate.c (would mess up inflate if used)
- Add _WIN32_WCE to define WIN32 in zconf.in.h [Spencer]
- Don't include stderr.h or errno.h for _WIN32_WCE in zutil.h [Spencer]
- Add gzdirect() function to indicate transparent reads
- Update contrib/minizip [Vollant]
- Fix compilation of deflate.c when both ASMV and FASTEST [Oberhumer]
- Add casts in crc32.c to avoid warnings [Oberhumer]
- Add contrib/masmx64 [Vollant]
- Update contrib/asm586, asm686, masmx86, testzlib, vstudio [Vollant]

Changes in 1.2.2.2 (30 December 2004)
- Replace structure assignments in deflate.c and inflate.c with zmemcpy to
  avoid implicit memcpy calls (portability for no-library compilation)
- Increase sprintf() buffer size in gzdopen() to allow for large numbers
- Add INFLATE_STRICT to check distances against zlib header
- Improve WinCE errno handling and comments [Chang]
- Remove comment about no gzip header processing in FAQ
- Add Z_FIXED strategy option to deflateInit2() to force fixed trees
- Add updated make_vms.com [Coghlan], update README
- Create a new "examples" directory, move gzappend.c there, add zpipe.c,
  fitblk.c, gzlog.[ch], gzjoin.c, and zlib_how.html.
- Add FAQ entry and comments in deflate.c on uninitialized memory access
- Add Solaris 9 make options in configure [Gilbert]
- Allow strerror() usage in gzio.c for STDC
- Fix DecompressBuf in contrib/delphi/ZLib.pas [ManChesTer]
- Update contrib/masmx86/inffas32.asm and gvmat32.asm [Vollant]
- Use z_off_t for adler32_combine() and crc32_combine() lengths
- Make adler32() much faster for small len
- Use OS_CODE in deflate() default gzip header

Changes in 1.2.2.1 (31 October 2004)
- Allow inflateSetDictionary() call for raw inflate
- Fix inflate header crc check bug for file names and comments
- Add deflateSetHeader() and gz_header structure for custom gzip headers
- Add inflateGetheader() to retrieve gzip headers
- Add crc32_combine() and adler32_combine() functions
- Add alloc_func, free_func, in_func, out_func to Z_PREFIX list
- Use zstreamp consistently in zlib.h (inflate_back functions)
- Remove GUNZIP condition from definition of inflate_mode in inflate.h
  and in contrib/inflate86/inffast.S [Truta, Anderson]
- Add support for AMD64 in contrib/inflate86/inffas86.c [Anderson]
- Update projects/README.projects and projects/visualc6 [Truta]
- Update win32/DLL_FAQ.txt [Truta]
- Avoid warning under NO_GZCOMPRESS in gzio.c; fix typo [Truta]
- Deprecate Z_ASCII; use Z_TEXT instead [Truta]
- Use a new algorithm for setting strm->data_type in trees.c [Truta]
- Do not define an exit() prototype in zutil.c unless DEBUG defined
- Remove prototype of exit() from zutil.c, example.c, minigzip.c [Truta]
- Add comment in zlib.h for Z_NO_FLUSH parameter to deflate()
- Fix Darwin build version identification [Peterson]

Changes in 1.2.2 (3 October 2004)
- Update zlib.h comments on gzip in-memory processing
- Set adler to 1 in inflateReset() to support Java test suite [Walles]
- Add contrib/dotzlib [Ravn]
- Update win32/DLL_FAQ.txt [Truta]
- Update contrib/minizip [Vollant]
- Move contrib/visual-basic.txt to old/ [Truta]
- Fix assembler builds in projects/visualc6/ [Truta]

Changes in 1.2.1.2 (9 September 2004)
- Update INDEX file
- Fix trees.c to update strm->data_type (no one ever noticed!)
- Fix bug in error case in inflate.c, infback.c, and infback9.c [Brown]
- Add "volatile" to crc table flag declaration (for DYNAMIC_CRC_TABLE)
- Add limited multitasking protection to DYNAMIC_CRC_TABLE
- Add NO_vsnprintf for VMS in zutil.h [Mozilla]
- Don't declare strerror() under VMS [Mozilla]
- Add comment to DYNAMIC_CRC_TABLE to use get_crc_table() to initialize
- Update contrib/ada [Anisimkov]
- Update contrib/minizip [Vollant]
- Fix configure to not hardcode directories for Darwin [Peterson]
- Fix gzio.c to not return error on empty files [Brown]
- Fix indentation; update version in contrib/delphi/ZLib.pas and
  contrib/pascal/zlibpas.pas [Truta]
- Update mkasm.bat in contrib/masmx86 [Truta]
- Update contrib/untgz [Truta]
- Add projects/README.projects [Truta]
- Add project for MS Visual C++ 6.0 in projects/visualc6 [Cadieux, Truta]
- Update win32/DLL_FAQ.txt [Truta]
- Update list of Z_PREFIX symbols in zconf.h [Randers-Pehrson, Truta]
- Remove an unnecessary assignment to curr in inftrees.c [Truta]
- Add OS/2 to exe builds in configure [Poltorak]
- Remove err dummy parameter in zlib.h [Kientzle]

Changes in 1.2.1.1 (9 January 2004)
- Update email address in README
- Several FAQ updates
- Fix a big fat bug in inftrees.c that prevented decoding valid
  dynamic blocks with only literals and no distance codes --
  Thanks to "Hot Emu" for the bug report and sample file
- Add a note to puff.c on no distance codes case.

Changes in 1.2.1 (17 November 2003)
- Remove a tab in contrib/gzappend/gzappend.c
- Update some interfaces in contrib for new zlib functions
- Update zlib version number in some contrib entries
- Add Windows CE definition for ptrdiff_t in zutil.h [Mai, Truta]
- Support shared libraries on Hurd and KFreeBSD [Brown]
- Fix error in NO_DIVIDE option of adler32.c

Changes in 1.2.0.8 (4 November 2003)
- Update version in contrib/delphi/ZLib.pas and contrib/pascal/zlibpas.pas
- Add experimental NO_DIVIDE #define in adler32.c
    - Possibly faster on some processors (let me know if it is)
- Correct Z_BLOCK to not return on first inflate call if no wrap
- Fix strm->data_type on inflate() return to correctly indicate EOB
- Add deflatePrime() function for appending in the middle of a byte
- Add contrib/gzappend for an example of appending to a stream
- Update win32/DLL_FAQ.txt [Truta]
- Delete Turbo C comment in README [Truta]
- Improve some indentation in zconf.h [Truta]
- Fix infinite loop on bad input in configure script [Church]
- Fix gzeof() for concatenated gzip files [Johnson]
- Add example to contrib/visual-basic.txt [Michael B.]
- Add -p to mkdir's in Makefile.in [vda]
- Fix configure to properly detect presence or lack of printf functions
- Add AS400 support [Monnerat]
- Add a little Cygwin support [Wilson]

Changes in 1.2.0.7 (21 September 2003)
- Correct some debug formats in contrib/infback9
- Cast a type in a debug statement in trees.c
- Change search and replace delimiter in configure from % to # [Beebe]
- Update contrib/untgz to 0.2 with various fixes [Truta]
- Add build support for Amiga [Nikl]
- Remove some directories in old that have been updated to 1.2
- Add dylib building for Mac OS X in configure and Makefile.in
- Remove old distribution stuff from Makefile
- Update README to point to DLL_FAQ.txt, and add comment on Mac OS X
- Update links in README

Changes in 1.2.0.6 (13 September 2003)
- Minor FAQ updates
- Update contrib/minizip to 1.00 [Vollant]
- Remove test of gz functions in example.c when GZ_COMPRESS defined [Truta]
- Update POSTINC comment for 68060 [Nikl]
- Add contrib/infback9 with deflate64 decoding (unsupported)
- For MVS define NO_vsnprintf and undefine FAR [van Burik]
- Add pragma for fdopen on MVS [van Burik]

Changes in 1.2.0.5 (8 September 2003)
- Add OF to inflateBackEnd() declaration in zlib.h
- Remember start when using gzdopen in the middle of a file
- Use internal off_t counters in gz* functions to properly handle seeks
- Perform more rigorous check for distance-too-far in inffast.c
- Add Z_BLOCK flush option to return from inflate at block boundary
- Set strm->data_type on return from inflate
    - Indicate bits unused, if at block boundary, and if in last block
- Replace size_t with ptrdiff_t in crc32.c, and check for correct size
- Add condition so old NO_DEFLATE define still works for compatibility
- FAQ update regarding the Windows DLL [Truta]
- INDEX update: add qnx entry, remove aix entry [Truta]
- Install zlib.3 into mandir [Wilson]
- Move contrib/zlib_dll_FAQ.txt to win32/DLL_FAQ.txt; update [Truta]
- Adapt the zlib interface to the new DLL convention guidelines [Truta]
- Introduce ZLIB_WINAPI macro to allow the export of functions using
  the WINAPI calling convention, for Visual Basic [Vollant, Truta]
- Update msdos and win32 scripts and makefiles [Truta]
- Export symbols by name, not by ordinal, in win32/zlib.def [Truta]
- Add contrib/ada [Anisimkov]
- Move asm files from contrib/vstudio/vc70_32 to contrib/asm386 [Truta]
- Rename contrib/asm386 to contrib/masmx86 [Truta, Vollant]
- Add contrib/masm686 [Truta]
- Fix offsets in contrib/inflate86 and contrib/masmx86/inffas32.asm
  [Truta, Vollant]
- Update contrib/delphi; rename to contrib/pascal; add example [Truta]
- Remove contrib/delphi2; add a new contrib/delphi [Truta]
- Avoid inclusion of the nonstandard <memory.h> in contrib/iostream,
  and fix some method prototypes [Truta]
- Fix the ZCR_SEED2 constant to avoid warnings in contrib/minizip
  [Truta]
- Avoid the use of backslash (\) in contrib/minizip [Vollant]
- Fix file time handling in contrib/untgz; update makefiles [Truta]
- Update contrib/vstudio/vc70_32 to comply with the new DLL guidelines
  [Vollant]
- Remove contrib/vstudio/vc15_16 [Vollant]
- Rename contrib/vstudio/vc70_32 to contrib/vstudio/vc7 [Truta]
- Update README.contrib [Truta]
- Invert the assignment order of match_head and s->prev[...] in
  INSERT_STRING [Truta]
- Compare TOO_FAR with 32767 instead of 32768, to avoid 16-bit warnings
  [Truta]
- Compare function pointers with 0, not with NULL or Z_NULL [Truta]
- Fix prototype of syncsearch in inflate.c [Truta]
- Introduce ASMINF macro to be enabled when using an ASM implementation
  of inflate_fast [Truta]
- Change NO_DEFLATE to NO_GZCOMPRESS [Truta]
- Modify test_gzio in example.c to take a single file name as a
  parameter [Truta]
- Exit the example.c program if gzopen fails [Truta]
- Add type casts around strlen in example.c [Truta]
- Remove casting to sizeof in minigzip.c; give a proper type
  to the variable compared with SUFFIX_LEN [Truta]
- Update definitions of STDC and STDC99 in zconf.h [Truta]
- Synchronize zconf.h with the new Windows DLL interface [Truta]
- Use SYS16BIT instead of __32BIT__ to distinguish between
  16- and 32-bit platforms [Truta]
- Use far memory allocators in small 16-bit memory models for
  Turbo C [Truta]
- Add info about the use of ASMV, ASMINF and ZLIB_WINAPI in
  zlibCompileFlags [Truta]
- Cygwin has vsnprintf [Wilson]
- In Windows16, OS_CODE is 0, as in MSDOS [Truta]
- In Cygwin, OS_CODE is 3 (Unix), not 11 (Windows32) [Wilson]

Changes in 1.2.0.4 (10 August 2003)
- Minor FAQ updates
- Be more strict when checking inflateInit2's windowBits parameter
- Change NO_GUNZIP compile option to NO_GZIP to cover deflate as well
- Add gzip wrapper option to deflateInit2 using windowBits
- Add updated QNX rule in configure and qnx directory [Bonnefoy]
- Make inflate distance-too-far checks more rigorous
- Clean up FAR usage in inflate
- Add casting to sizeof() in gzio.c and minigzip.c

Changes in 1.2.0.3 (19 July 2003)
- Fix silly error in gzungetc() implementation [Vollant]
- Update contrib/minizip and contrib/vstudio [Vollant]
- Fix printf format in example.c
- Correct cdecl support in zconf.in.h [Anisimkov]
- Minor FAQ updates

Changes in 1.2.0.2 (13 July 2003)
- Add ZLIB_VERNUM in zlib.h for numerical preprocessor comparisons
- Attempt to avoid warnings in crc32.c for pointer-int conversion
- Add AIX to configure, remove aix directory [Bakker]
- Add some casts to minigzip.c
- Improve checking after insecure sprintf() or vsprintf() calls
- Remove #elif's from crc32.c
- Change leave label to inf_leave in inflate.c and infback.c to avoid
  library conflicts
- Remove inflate gzip decoding by default--only enable gzip decoding by
  special request for stricter backward compatibility
- Add zlibCompileFlags() function to return compilation information
- More typecasting in deflate.c to avoid warnings
- Remove leading underscore from _Capital #defines [Truta]
- Fix configure to link shared library when testing
- Add some Windows CE target adjustments [Mai]
- Remove #define ZLIB_DLL in zconf.h [Vollant]
- Add zlib.3 [Rodgers]
- Update RFC URL in deflate.c and algorithm.txt [Mai]
- Add zlib_dll_FAQ.txt to contrib [Truta]
- Add UL to some constants [Truta]
- Update minizip and vstudio [Vollant]
- Remove vestigial NEED_DUMMY_RETURN from zconf.in.h
- Expand use of NO_DUMMY_DECL to avoid all dummy structures
- Added iostream3 to contrib [Schwardt]
- Replace rewind() with fseek() for WinCE [Truta]
- Improve setting of zlib format compression level flags
    - Report 0 for huffman and rle strategies and for level == 0 or 1
    - Report 2 only for level == 6
- Only deal with 64K limit when necessary at compile time [Truta]
- Allow TOO_FAR check to be turned off at compile time [Truta]
- Add gzclearerr() function [Souza]
- Add gzungetc() function

Changes in 1.2.0.1 (17 March 2003)
- Add Z_RLE strategy for run-length encoding [Truta]
    - When Z_RLE requested, restrict matches to distance one
    - Update zlib.h, minigzip.c, gzopen(), gzdopen() for Z_RLE
- Correct FASTEST compilation to allow level == 0
- Clean up what gets compiled for FASTEST
- Incorporate changes to zconf.in.h [Vollant]
    - Refine detection of Turbo C need for dummy returns
    - Refine ZLIB_DLL compilation
    - Include additional header file on VMS for off_t typedef
- Try to use _vsnprintf where it supplants vsprintf [Vollant]
- Add some casts in inffast.c
- Enchance comments in zlib.h on what happens if gzprintf() tries to
  write more than 4095 bytes before compression
- Remove unused state from inflateBackEnd()
- Remove exit(0) from minigzip.c, example.c
- Get rid of all those darn tabs
- Add "check" target to Makefile.in that does the same thing as "test"
- Add "mostlyclean" and "maintainer-clean" targets to Makefile.in
- Update contrib/inflate86 [Anderson]
- Update contrib/testzlib, contrib/vstudio, contrib/minizip [Vollant]
- Add msdos and win32 directories with makefiles [Truta]
- More additions and improvements to the FAQ

Changes in 1.2.0 (9 March 2003)
- New and improved inflate code
    - About 20% faster
    - Does not allocate 32K window unless and until needed
    - Automatically detects and decompresses gzip streams
    - Raw inflate no longer needs an extra dummy byte at end
    - Added inflateBack functions using a callback interface--even faster
      than inflate, useful for file utilities (gzip, zip)
    - Added inflateCopy() function to record state for random access on
      externally generated deflate streams (e.g. in gzip files)
    - More readable code (I hope)
- New and improved crc32()
    - About 50% faster, thanks to suggestions from Rodney Brown
- Add deflateBound() and compressBound() functions
- Fix memory leak in deflateInit2()
- Permit setting dictionary for raw deflate (for parallel deflate)
- Fix const declaration for gzwrite()
- Check for some malloc() failures in gzio.c
- Fix bug in gzopen() on single-byte file 0x1f
- Fix bug in gzread() on concatenated file with 0x1f at end of buffer
  and next buffer doesn't start with 0x8b
- Fix uncompress() to return Z_DATA_ERROR on truncated input
- Free memory at end of example.c
- Remove MAX #define in trees.c (conflicted with some libraries)
- Fix static const's in deflate.c, gzio.c, and zutil.[ch]
- Declare malloc() and free() in gzio.c if STDC not defined
- Use malloc() instead of calloc() in zutil.c if int big enough
- Define STDC for AIX
- Add aix/ with approach for compiling shared library on AIX
- Add HP-UX support for shared libraries in configure
- Add OpenUNIX support for shared libraries in configure
- Use $cc instead of gcc to build shared library
- Make prefix directory if needed when installing
- Correct Macintosh avoidance of typedef Byte in zconf.h
- Correct Turbo C memory allocation when under Linux
- Use libz.a instead of -lz in Makefile (assure use of compiled library)
- Update configure to check for snprintf or vsnprintf functions and their
  return value, warn during make if using an insecure function
- Fix configure problem with compile-time knowledge of HAVE_UNISTD_H that
  is lost when library is used--resolution is to build new zconf.h
- Documentation improvements (in zlib.h):
    - Document raw deflate and inflate
    - Update RFCs URL
    - Point out that zlib and gzip formats are different
    - Note that Z_BUF_ERROR is not fatal
    - Document string limit for gzprintf() and possible buffer overflow
    - Note requirement on avail_out when flushing
    - Note permitted values of flush parameter of inflate()
- Add some FAQs (and even answers) to the FAQ
- Add contrib/inflate86/ for x86 faster inflate
- Add contrib/blast/ for PKWare Data Compression Library decompression
- Add contrib/puff/ simple inflate for deflate format description

svn path=/trunk/; revision=25342
2007-01-07 15:56:49 +00:00
Magnus Olsen
3280f62148 prepare for sync of zlib
add malloc to usetup. it only will be use by zlib 1.2.3 when the sync is finish

svn path=/trunk/; revision=25339
2007-01-07 15:11:57 +00:00
Johannes Anderwald
e91d8b9c37 fix paths
svn path=/trunk/; revision=25338
2007-01-07 12:37:27 +00:00
Alex Ionescu
a50637c13a - Smallish changes to HalpReboot to make flags clearer and fixup one of them.
svn path=/trunk/; revision=25337
2007-01-07 06:49:00 +00:00
Alex Ionescu
8fe3cfc983 - Fix multiple bugs in HalpCalculateChsValues.
- Fix lots of typecast warnings.
- Fix potentially uninitialized variables.
- This should fix the partitioning problems/regression. Thanks to hto for finding out the source of the bug.

svn path=/trunk/; revision=25336
2007-01-07 00:50:41 +00:00
Saveliy Tretiakov
99e8c9a7c7 Add DisableVmwInst option to unattend setup to disable vmware driver setup wizard
svn path=/trunk/; revision=25334
2007-01-06 21:18:36 +00:00
Aleksey Bragin
a227f30dac Dmitry G. Gorbachev (hto at mail cnt dot ru):
NtOpenKey() calls ObpCaptureObjectAttributes() which can return null
ObjectName.

Then null pointer used in
 if (ObjectName.Buffer[(ObjectName.Length / sizeof(WCHAR)) - 1] == '\\')
which leads to a crash.

svn path=/trunk/; revision=25332
2007-01-06 19:14:41 +00:00
Eric Kohl
01ff2d0170 - Don't use hardcoded colors.
- Calculate the menu bar rectangle.
- Add preview menu and remove the menu item strings.
- Draw the menu bar using DrawMenuBarTemp.

svn path=/trunk/; revision=25331
2007-01-06 16:53:07 +00:00
Christoph von Wittich
66ae45808d copyrights of all files are changed to 1998-2007 (patch by Colin Finck)
See issue #1942 for more details.

svn path=/trunk/; revision=25330
2007-01-06 13:12:53 +00:00
Eric Kohl
f3b40cead4 Add DrawMenuBarTemp prototype.
svn path=/trunk/; revision=25329
2007-01-06 12:23:48 +00:00
Maarten Bosma
34386521e2 Two more formating and debug output changes from cc branch.
svn path=/trunk/; revision=25326
2007-01-06 02:50:53 +00:00
Maarten Bosma
0456489590 Some formating and debug output changes based on cc branch.
svn path=/trunk/; revision=25324
2007-01-06 02:34:58 +00:00
Maarten Bosma
a384da8a87 DbgPrint => DPRINT1
svn path=/trunk/; revision=25323
2007-01-06 00:24:51 +00:00
Ged Murphy
75a5ab0577 forgot to clean up my mess
svn path=/trunk/; revision=25321
2007-01-05 22:59:33 +00:00
Ged Murphy
057b027ea2 fix a menu resource leak
svn path=/trunk/; revision=25320
2007-01-05 22:55:49 +00:00
Christoph von Wittich
f0ae8b4726 fix a warning
svn path=/trunk/; revision=25319
2007-01-05 21:02:15 +00:00
Eric Kohl
ddd07cb10c - Draw the Scrollbar.
- Draw the Titlebar using DrawCaptionTemp.
- Clean up the code structure.

svn path=/trunk/; revision=25318
2007-01-05 20:58:24 +00:00
Christoph von Wittich
d5de43d13e * fixed some warnings
svn path=/trunk/; revision=25316
2007-01-05 20:22:44 +00:00
Christoph von Wittich
d2e64780de * fixed a bug in AddPartitionToList (value must be of type FORMATSTATE instead of MEDIA_TYPE
* fixed some warnings

svn path=/trunk/; revision=25315
2007-01-05 20:19:21 +00:00
Christoph von Wittich
aafd5a63ad * handle REG_EXPAND_SZ in GetAutostartEntriesFromRegistry
* changed license to LGPL

svn path=/trunk/; revision=25314
2007-01-05 20:15:07 +00:00
Aleksey Bragin
a8637ee73e Don't call ReadCacheSegmentChain() twice (thanks Maarten).
svn path=/trunk/; revision=25313
2007-01-05 19:41:19 +00:00
Ged Murphy
09ce11f2a5 fix build
svn path=/trunk/; revision=25312
2007-01-05 18:41:48 +00:00
Eric Kohl
ca20e276b2 Add DrawCaptionTempA/W prototypes.
svn path=/trunk/; revision=25311
2007-01-05 18:28:32 +00:00
Ged Murphy
7de51b4bdd comment out monitor blits until I (or someone else) gets around to writing a custom control to take changes of dialog units into account.
svn path=/trunk/; revision=25310
2007-01-05 18:16:32 +00:00
Ged Murphy
66e877331a - Add a bit of a hack to paint over the NULL text values in the caption bar. At least they look pretty now until a better fix is found
- load resource strings onto heap to avoid overfows from translations

svn path=/trunk/; revision=25309
2007-01-05 17:51:05 +00:00
Saveliy Tretiakov
3f8e525b58 Fix bsod when executing IntLoadKeyboardLayout. (NtOpenKey() tryes to modify readonly memory and it causes crash)
svn path=/trunk/; revision=25308
2007-01-05 17:12:10 +00:00
Johannes Anderwald
d77a0d5e2e - add italian translations from bugzilla
- fixes bugs from 1921-1935

svn path=/trunk/; revision=25306
2007-01-05 11:38:25 +00:00
Johannes Anderwald
eaaccf0016 - ignore default libraries when msvcrt.lib is used.
Using msvcrt.lib causes duplicate symbols linking errors for projects

svn path=/trunk/; revision=25305
2007-01-05 08:21:54 +00:00
Ged Murphy
565b2f4f9e It's strange that I always notice my own errors in ros-diffs and not before the commit.
svn path=/trunk/; revision=25299
2007-01-04 23:39:26 +00:00
Christoph von Wittich
6b47dbcdc8 activate openfile dialog (doesn't load files yet)
svn path=/trunk/; revision=25298
2007-01-04 23:19:11 +00:00
Ged Murphy
9b2c97c827 Eric's cute control made me smile, so I've added some text to the windows.
Note, as we can't use SetWindowText for these caption, the text must be drawn on manually (which makes for some icky code). This 'should' mean we can remove DC_TEXT in DrawCaption to get rid of those squares. However, removing these removes the gradient.
Eric, any ideas other than painting over the white squares?

svn path=/trunk/; revision=25297
2007-01-04 23:03:38 +00:00
Christoph von Wittich
a0320a1bf7 change extensions in commdlg filter to rtf
svn path=/trunk/; revision=25296
2007-01-04 22:35:34 +00:00
Johannes Anderwald
15c3d63c0f - improve error checking
svn path=/trunk/; revision=25295
2007-01-04 16:22:06 +00:00
Johannes Anderwald
6e368b2fff - remove line
svn path=/trunk/; revision=25294
2007-01-04 16:04:05 +00:00
Johannes Anderwald
d214a58cf9 - order all tools in alphabetically order
- add rgenstat to tools.mak

svn path=/trunk/; revision=25293
2007-01-04 15:57:47 +00:00
Magnus Olsen
7d473e742a do not build hello as GUI apps it is CUI apps. printf is redirect in GUI apps and does not output to console. Now we change to CUI, printf are redirect to console when it build as CUI.
svn path=/trunk/; revision=25292
2007-01-04 14:46:20 +00:00
Maarten Bosma
08c66925aa Add Miranda 0.5.1 (0.6 does not work)
svn path=/trunk/; revision=25291
2007-01-04 14:19:19 +00:00
Maarten Bosma
acc3b65d41 Make Downloader perform better under ReactOS:
- Use other font.
- Redraw buttons at resize.

svn path=/trunk/; revision=25290
2007-01-04 12:16:18 +00:00
Alex Ionescu
e7f7023167 - Fix a bug in KeLeaveCriticalRegion which was delivering APCs even if Special APCs were disabled. The check is now fixed. Thanks to Dominique Cote for the bug report.
svn path=/trunk/; revision=25289
2007-01-04 01:55:27 +00:00
Ged Murphy
70f0e9dbce update text to 2007
svn path=/trunk/; revision=25288
2007-01-03 23:12:19 +00:00
Maarten Bosma
5d34a990dc Boot sector for regression tests: Do always boot hdd if there is a MDR, otherwise always start the installation.
svn path=/trunk/; revision=25287
2007-01-03 21:46:46 +00:00
Ged Murphy
863cdcf393 Add 24bpp formats. This will clean up the look of interface until I get time to finish the alpha code changes
svn path=/trunk/; revision=25286
2007-01-03 20:58:37 +00:00
Ged Murphy
edb6261c52 Add 24bpp formats. This will clean up the look of interface until I get time to finish the alpha changes
svn path=/trunk/; revision=25285
2007-01-03 20:57:09 +00:00
Ged Murphy
3acea05096 These should have 24bpp versions.
svn path=/trunk/; revision=25284
2007-01-03 19:14:58 +00:00
Maarten Bosma
9d06a14bae Do not show "Press any key to boot from CD"-Message if there is no MBR on the hard drive.
svn path=/trunk/; revision=25283
2007-01-03 14:33:41 +00:00
Saveliy Tretiakov
f7e1cf715a Test application for loading and switching keyboard layouts
svn path=/trunk/; revision=25281
2007-01-03 11:16:47 +00:00
Eric Kohl
f3908f6d83 Add the appearance preview control. Right now it doesn't do much but sitting there and looking great. ;-)
svn path=/trunk/; revision=25279
2007-01-02 21:53:26 +00:00
Magnus Olsen
88784c27ec remove #define IMAGE_FILE_MACHINE_* from elf32.c it hack for we did miss them in the winnt.h header before, now seen few rev back we got them in right place.
svn path=/trunk/; revision=25278
2007-01-02 17:01:21 +00:00
Maarten Bosma
30c9c68789 Comment out definition of IMAGE_FILE_MACHINE_ARM to fix compilation - please fix properly.
svn path=/trunk/; revision=25277
2007-01-02 11:43:12 +00:00
Peter Ward
f17d99c983 - Add the rtltypes.h change from r25264 back and add the define for HEAP_CREATE_ENABLE_EXECUTE to winnt.h, this, I believe, is the proper fix.
svn path=/trunk/; revision=25276
2007-01-02 10:25:51 +00:00
Aleksey Bragin
b977a28611 Revert rtltypes.h change from r25264 until a proper fix is found.
svn path=/trunk/; revision=25275
2007-01-02 09:53:01 +00:00
Magnus Olsen
fe4dcf7a00 1. starting adding pe loader to cputointel to misc.c
2. move the loadimage stuff to own functions to misc.c
3. rewrite so loader call to brain* after it load the image.
4. setup main using the loader
5. add few more input param to main -in, -inexe, -in try autodetect type of file, -inexe try convert a PE file. 

svn path=/trunk/; revision=25272
2007-01-02 02:21:58 +00:00
Hervé Poussineau
d9e5c48061 Fix HalXbox build
svn path=/trunk/; revision=25271
2007-01-01 23:55:40 +00:00
Maarten Bosma
8e087e40db Set explicitly set default icon when adding item to the applications tree view. Workaround for reactos bug.
svn path=/trunk/; revision=25270
2007-01-01 21:46:29 +00:00
Hervé Poussineau
c5f27e3581 Move -enable-stdcall-fixup definition to .rbuild file. Other platforms may not need it.
svn path=/trunk/; revision=25269
2007-01-01 21:42:27 +00:00
Magnus Olsen
d333f341a6 adding more define of IMAGE_SUBSYSTEM that we are missing
svn path=/trunk/; revision=25268
2007-01-01 21:32:21 +00:00
Maarten Bosma
ca95529086 Add Samba TNG
svn path=/trunk/; revision=25267
2007-01-01 20:42:15 +00:00
Magnus Olsen
9f258befad adding allot IMAGE_FILE_MACHINE to winnt that we where missing
svn path=/trunk/; revision=25266
2007-01-01 20:21:43 +00:00
Johannes Anderwald
d0297efd80 - msvc compability fix...
svn path=/trunk/; revision=25265
2007-01-01 14:59:05 +00:00
Hervé Poussineau
f9b6e910f9 Better support for non X86 systems
svn path=/trunk/; revision=25264
2007-01-01 14:50:16 +00:00
Maarten Bosma
4afb3f0181 apps.xml => downloader.xml
svn path=/trunk/; revision=25263
2007-01-01 14:30:40 +00:00
Maarten Bosma
4e8d28cf9f - rename apps.xml to downloader.xml
- look first for the xml file in system32 then in current dir.

svn path=/trunk/; revision=25262
2007-01-01 14:29:26 +00:00
Magnus Olsen
3aa0dd271b Adding stubed arm4 for my CpuToIntel tool.
Now we got tree diffent arch we can port over to intel x86 asm. But this tool are experment tool

svn path=/trunk/; revision=25261
2007-01-01 13:37:24 +00:00
Maarten Bosma
718618b8a1 Remove flickering reducing trick, because it does not work under windows, and the problem does not exist under reactos anyway.
svn path=/trunk/; revision=25260
2007-01-01 12:59:11 +00:00
Magnus Olsen
791dced4bb adding a stubed ppc brain, to my cputointel tool
svn path=/trunk/; revision=25258
2007-01-01 00:30:58 +00:00
Magnus Olsen
00095b75ef 1. setup input param to main
2. implement cpu type flag in dummy and m68k 
3. Adding more opcode for m68k, but they are stubed 
Time to test the code and start implement m68k in next commit

svn path=/trunk/; revision=25257
2006-12-31 18:45:35 +00:00
Maarten Bosma
eae92c1b5f include the xml of the downloader.
svn path=/trunk/; revision=25256
2006-12-31 17:40:39 +00:00
Maarten Bosma
bd3f56c61d Recommit changes from cc branch, without the hackish changes to create.c.
svn path=/trunk/; revision=25255
2006-12-31 16:43:40 +00:00
Magnus Olsen
6da9503d34 1. Adding a dummycpu showing how you can write you own cpu brain.
2. Did make some cleanup work for m68k 

svn path=/trunk/; revision=25254
2006-12-31 16:03:07 +00:00
Hervé Poussineau
adcf186642 ... also check the return of IoCreateSymbolicLink
svn path=/trunk/; revision=25253
2006-12-31 15:37:36 +00:00
Johannes Anderwald
e415b04c90 - check if IoCreateDevice succeeded...
svn path=/trunk/; revision=25252
2006-12-31 15:28:20 +00:00
Magnus Olsen
39436f3008 initate work of a CPUtranslator, example M68k to Intel. it is writen so not only M68k can be added. it does not work at all. it is a ground layout how I should code it.
svn path=/trunk/; revision=25251
2006-12-31 14:59:07 +00:00
Saveliy Tretiakov
1282be6796 Fix a typo
svn path=/trunk/; revision=25250
2006-12-30 21:40:32 +00:00
Saveliy Tretiakov
34444545a2 Implement NtGdiPolyDraw (based on wine).
svn path=/trunk/; revision=25249
2006-12-30 20:46:05 +00:00
Aleksey Bragin
0651dba483 Comment out a call to GdiReleaseDC() since it spams debug log with unimplemented messages. I put up a FIXME so it gets uncommented once GdiReleaseDC() is implemented.
svn path=/trunk/; revision=25248
2006-12-30 11:04:20 +00:00
Maarten Bosma
6ef81ff9e1 Different folders for translations and other resources.
svn path=/trunk/; revision=25247
2006-12-30 10:11:58 +00:00
Magnus Olsen
f67f7ee675 do not use hacked vfat drv revers the 25243
the hacked do not delete pendling or incomplte data 
and so on, 

svn path=/trunk/; revision=25246
2006-12-30 01:11:14 +00:00
Maarten Bosma
f01a075e09 Add changes from cc rewrite brunch. The driver still works under the old cc because it makes use of the USE_ROS_CC_AND_FS define.
svn path=/trunk/; revision=25243
2006-12-30 00:37:52 +00:00
Maarten Bosma
8bf9208764 Add downloader to start menu.
svn path=/trunk/; revision=25242
2006-12-30 00:18:00 +00:00
Aleksey Bragin
4dfd67905c - Comment out the performance counting ("hits: xxx misses: yyy") part for the freetype lib.
svn path=/trunk/; revision=25241
2006-12-29 22:24:43 +00:00
Alex Ionescu
8f2eb74d99 - Fix OB_SECURITY_METHOD prototype, callers, and implementors.
- Add call to SeOpenObjectAuditAlarm in ObCheckObjectAccess.
- Start adding Ob Callout validation on checked builds. For now only done around security functions.
- Set *MemoryAllocated to FALSE in ObGetObjectSecurity early on to avoid inconcistent state if the callback failed.
- Implement new XP function ObSetSecurityObjectByPointer and simplify NtSetSecurityObject by making it use it.
- More Win 2003 SecurityDescriptor Cache functions to sdcache instead of obsecure.c.

svn path=/trunk/; revision=25240
2006-12-29 22:17:29 +00:00
Alex Ionescu
635dda87ec - Fix some subtle bugs in NtWaitForMultipleObjects/NtWaitForSingleObject:
- Fail if memory allocation failed.
  - Don't overwrite original captured handle value when decoding to kernel handle.
  - Use PAGED_CODE.
  - Check timeout validity first before probing the entire handle array.
- Fix a critical bug in NtSignalAndWaitForObject which was using the wrong object type (waitable object instead of signalled objecT).

svn path=/trunk/; revision=25239
2006-12-29 20:52:33 +00:00
Alex Ionescu
c0a3750d26 - Fix critical bugs in exception handling: Unwinding was completely broken, using the wrong SEH protector to detect collided unwinding. The correct protector itself also had a broken check.
- Fix architectural bug in the entire TrapFrame<->Context conversion system and Ring Privilege Transitions (Inter-ring and intra-ring) which was lacking proper sanitation and validation of segments, flags and debug registers. Among other things, IOPL is now respected, CS is not KGDT_R0_CODE | RPL_MASK anymore, and the GPF code is now properly being called. This completely fixes exception handling being totally broken and crashing firefox installer, mirc, and other applications.
- Rewrite the page fault handler base code in assembly instead of relying on a broken C routine. Detect VDM, V8086, detecting expected/normal fault in ExpInterlockedPopEntrySList and faults in the system handler code. Rewrite MmAccessFault to be the main function that calls out to other sub-fault functions, and use the same prototype as NT.
- Fix the KGDT boot table to have proper granularity and big flags, and extend it to 256 entries.
- Create proper thread context in RtlInitializeContext and cleanup Rtl Thread routines.
- Remove all int3 and breakpoints from trap handlers, and replace them with a much better "UNHANDLED_PATH" macro which freezes the system, beeps, and displays a message with the line of code that's unhandled. This is to clearly tell the user that something is unhandled, instead of nesting infinite exceptions due to the int3.
- Fix a bug in INT_PROLOG.
- Sanitize EFLAGS and Code Segments in KeContextToTrapFrame and KeTrapFrameToContext.
- Implement KiUpdateDr7 and KiRecordDr7 as well as DR_MASK and other DR-validation macros and functions to protect against DR-vulnerabilites as well as to properly account for each active hardware breakpoint in a per-thread fashion by using the dispatcher header.
- Allow CR0_EM when running in a VDM.
- Fix FPU/NPX Register handling in KeContextToTrapFrame and KeTrapFrameToContext, and also speed it up by manual copying instead of a memory move.
- Properly give IOPL 3 to user-mode threads if they requested it.
- Detect GPF during GPF.
- Detect pagefault with a trap-frame spread over two or more pages and nested.
- Properly sanitize and set correct trap frame in KiInitailizeUserApc.
- Return STATUS_ACCESS_VIOLATION during page faults instead of STATUS_UNSUCESSFUL. 
- Fix assert in VdmSwapContext, as well as Code Selector check which was broken.
- Fix delayed object deletion (ObDeferDeleteObject) and the Ob Repear Routine and list.
- Update Kernel Fun.
- BUGBUG: Temporaily hack VMWare to detection to always detect VMWare.

svn path=/trunk/; revision=25238
2006-12-29 18:49:00 +00:00
Magnus Olsen
32b82baa21 commit same strechblt code for 8,16,32, it does not using putpixel anylong for 8 and 32, and small cleanup
this code can be makefaster, how remove getpixel that will doing huge incress in speed, split calc to
simple 1x 2x .. zoom in/out now we are using 1.1x 2.2x Zoom and 1x 2x zoom same code. if we split it we will
see a speed incress. 

svn path=/trunk/; revision=25237
2006-12-29 13:16:53 +00:00
Magnus Olsen
2e502d8d23 freetype cache glyth patch pass last all my test.patch
ogrinal author of this patch is royce3, modify by tinus so it work again with trunk,  ThePhysicist (timo dot kreuzer at web dot de) did fix the last bugs in it. at last long leave freetype glyth patch, now we got faster text output in reactos. and I where up to 38fps in winquake with this patch (debugbuild + serial debug on). This is very fast. I wonder what speed it give in release build or qemu now. 
   

See issue #511 for more details.

svn path=/trunk/; revision=25236
2006-12-29 00:09:54 +00:00
James Tabor
168bd92ec5 Implement GetDCDWord, update GetObjectType and printing.c fixups.
svn path=/trunk/; revision=25235
2006-12-28 22:36:53 +00:00
Maarten Bosma
7a40310c04 EmuandCo: More applications
svn path=/trunk/; revision=25234
2006-12-28 16:52:07 +00:00
James Tabor
bc33042584 Work to date. Update and add more functions to printing.c.
svn path=/trunk/; revision=25232
2006-12-28 05:53:50 +00:00
Eric Kohl
69a2a4ca6e - Rename SCM_START_PACKET to SCM_CONTROL_PACKET.
- Rename SCM_START_COMMAND to SCM_CONTROL_START and use the unused value 0 of the SERVICE_CONTROL_ constants.
- Implement stop command.

svn path=/trunk/; revision=25231
2006-12-26 01:29:22 +00:00
Maarten Bosma
32bfd4a46f Error if download failed.
svn path=/trunk/; revision=25230
2006-12-25 19:25:27 +00:00
Maarten Bosma
aa366332eb Add downloader to installation.
svn path=/trunk/; revision=25229
2006-12-25 17:09:33 +00:00
Magnus Olsen
eac88d0a30 Update to lates dejavu font, version 2.13
1. 100% finish the Cyrillic for Sans font 
2. 41 new chars support
and allot more. 

svn path=/trunk/; revision=25228
2006-12-25 14:25:22 +00:00
Eric Kohl
8745000456 Add default screen saver.
svn path=/trunk/; revision=25227
2006-12-25 12:38:53 +00:00
Johannes Anderwald
515d199878 - remove stdcall decoration
svn path=/trunk/; revision=25226
2006-12-24 15:57:45 +00:00
Johannes Anderwald
aaf231182d - remove stdcall decoration
- include winsock2.h before windows.h

svn path=/trunk/; revision=25225
2006-12-24 15:41:36 +00:00
Johannes Anderwald
8566616d62 - remove stdcall decoration
svn path=/trunk/; revision=25224
2006-12-24 15:36:32 +00:00
Maarten Bosma
8b602f059f Bypass bug in windows, by deleting the content of the applications treeview twice. (Occurs under Windows XP.)
Physicus 24.12.2006 14:31: There's a bug in downloader: when you select Internet then click on Firefox then on Games & Fun, you will find putty there.

svn path=/trunk/; revision=25223
2006-12-24 15:30:50 +00:00
Johannes Anderwald
1ee33be807 - include winsock2.h before windows.h
svn path=/trunk/; revision=25222
2006-12-24 15:20:05 +00:00
Johannes Anderwald
001f6cc36d - remove stdcall decoration
svn path=/trunk/; revision=25221
2006-12-24 15:13:13 +00:00
Eric Kohl
27ddfa674c - Remove trailing whitespace
svn path=/trunk/; revision=25220
2006-12-24 15:00:24 +00:00
Eric Kohl
36deccc25e - Add version resource and description string.
- Ensure the message box pops up when you try to configure the screen saver using the context menu.

svn path=/trunk/; revision=25219
2006-12-24 14:48:52 +00:00
Maarten Bosma
ddd895bf12 Forgot to commit this one.
svn path=/trunk/; revision=25218
2006-12-24 13:26:08 +00:00
Maarten Bosma
f12ce11adc EmuandCo:
- Fix Typos in English resource file
- Add German translation
- Add applications

svn path=/trunk/; revision=25217
2006-12-24 12:28:27 +00:00
Magnus Olsen
0ed434ca11 a old patch I have for freeldr (did this change one year ago)
small speed in-cress, remove freeldr ros glue C version of  memcpy, memcmp, isalnum, labs and replace it from reactos string.a 
we got asm version of most of them, so that is reason to the speed in-cress of freeldr, freeldr are still slow in reactos thanks 
to our win32k, for we do not cahced the glyth yet. 

svn path=/trunk/; revision=25216
2006-12-23 21:02:31 +00:00
Magnus Olsen
22dc51bae5 Start comment how thing works in dx stuff and done some reformat, adding EnableDirectDraw to the directdraw handler hDD
svn path=/trunk/; revision=25215
2006-12-23 19:06:43 +00:00
Maarten Bosma
9e9286ab0d Call some more Unicode APIs explicitly.
svn path=/trunk/; revision=25214
2006-12-23 18:59:10 +00:00
Maarten Bosma
d7eb6d1ba4 Completely eliminate flickering by implementing double buffering.
svn path=/trunk/; revision=25213
2006-12-23 18:28:38 +00:00
Maarten Bosma
3b7c2562ce Prevent the user from making the window too small.
svn path=/trunk/; revision=25212
2006-12-23 18:07:37 +00:00
Aleksey Bragin
d53810a92e - Fix width/height params in a call to NtGdiAlphaBlend().
- Temporary disable the alpha blending code, because it doesn't work correctly. Comments added to the code.

svn path=/trunk/; revision=25211
2006-12-23 13:36:07 +00:00
Magnus Olsen
885e2ecded fixed a bug in DdDeleteDirectDrawObject
Zero the DirectDraw handler if it have sussess been free

svn path=/trunk/; revision=25210
2006-12-23 12:25:07 +00:00
Magnus Olsen
412dfceb6a fix a typo
svn path=/trunk/; revision=25209
2006-12-23 10:52:07 +00:00
Magnus Olsen
0435a6b3d6 adding joliet flags to bootcd
svn path=/trunk/; revision=25208
2006-12-23 10:34:05 +00:00
Magnus Olsen
80e2c0393d reformat dib16bpp.c remove mix betwin tab and space
svn path=/trunk/; revision=25207
2006-12-23 05:45:24 +00:00
Christoph von Wittich
deecf156b8 fixed some warnings
svn path=/trunk/; revision=25206
2006-12-22 21:49:18 +00:00
Magnus Olsen
14847ebfcf fixed a typo
svn path=/trunk/; revision=25205
2006-12-21 23:36:55 +00:00
Ged Murphy
f578f60f09 fix GCC 4.1 build
svn path=/trunk/; revision=25204
2006-12-21 22:58:35 +00:00
Magnus Olsen
d7d01873cd Last part of the new strectsblt
remove all mul and div from the loop. 

svn path=/trunk/; revision=25203
2006-12-21 22:36:16 +00:00
Magnus Olsen
f2bddbce01 start of new strechblt huge speed incress, the idea is not doing any mul or the div in the for loop. this is only done for 16bpp, same code will be copy to rest later.
1. remove all div and mul from for Y loops
2. todo remove so much as psoible mul and div from X loop

svn path=/trunk/; revision=25202
2006-12-21 21:57:17 +00:00
Magnus Olsen
d747ce9acb thx filip notice I use wrong filed to detect alpha blend.
svn path=/trunk/; revision=25201
2006-12-21 20:03:06 +00:00
Magnus Olsen
757b471441 Fixed alpha blend support in DrawIconEx
svn path=/trunk/; revision=25200
2006-12-21 19:43:13 +00:00
Magnus Olsen
b818e776ee some more stuff from filip dymatic resolutions change patch.
svn path=/trunk/; revision=25199
2006-12-21 17:38:36 +00:00
Magnus Olsen
af996c694b from filip
This is small part of filip dymatic change resolution  patch
1. fix a bsod in IntEngBitBltEx if the destsurface is NULL do not bsod or aseert, send back false.

svn path=/trunk/; revision=25198
2006-12-21 02:43:31 +00:00
Ged Murphy
c2feea400f contrast is implemented, don't grey it out
svn path=/trunk/; revision=25197
2006-12-21 00:01:37 +00:00
Eric Kohl
6eed4dbe08 Update the display resolution text while the slider is being moved.
svn path=/trunk/; revision=25196
2006-12-20 23:03:08 +00:00
Magnus Olsen
1762a757af Thanks janderwald you did think it was something wrong with the pointer This at begin of Create_DirectDraw
1. if some idot send in iPface is NULL to DirectDrawCreate/DirectDrawCreateEx  (example DirectDrawCreate/DirectDrawCreateEx(NULL,NULL,NULL)) we do not free the alloc memory at fail. 

svn path=/trunk/; revision=25194
2006-12-19 22:33:22 +00:00
Maarten Bosma
246509c4b5 Reduce flickering.
svn path=/trunk/; revision=25193
2006-12-19 22:03:24 +00:00
James Tabor
1d4927a407 Fixup ReleaseDC and add information.
svn path=/trunk/; revision=25192
2006-12-19 18:29:57 +00:00
Maarten Bosma
ad4bf983da prevent crash
svn path=/trunk/; revision=25190
2006-12-18 15:02:55 +00:00
Christoph von Wittich
3b3aadac55 some small warning fixes
svn path=/trunk/; revision=25189
2006-12-18 14:22:43 +00:00
Maarten Bosma
564debb90d Default text for application tree view.
svn path=/trunk/; revision=25188
2006-12-17 22:38:35 +00:00
Maarten Bosma
51f203737a Explicitly use Unicode Versions to please Ged.
svn path=/trunk/; revision=25187
2006-12-17 21:14:19 +00:00
Maarten Bosma
617b8b3f0f - Disallow warnings
- Explictically define _UNICODE
- Btn -> Button

svn path=/trunk/; revision=25186
2006-12-17 20:53:04 +00:00
Maarten Bosma
3df591e50e Prettier description field.
svn path=/trunk/; revision=25185
2006-12-17 20:34:19 +00:00
Magnus Olsen
2d38ffdb35 fixing some problem with backbuffer, we still can not draw to primary or backbuffer surface when we create a backbuffer why ??
svn path=/trunk/; revision=25184
2006-12-17 13:53:19 +00:00
Maarten Bosma
c038f82dad Fix build.
svn path=/trunk/; revision=25183
2006-12-16 18:49:57 +00:00
Maarten Bosma
b5beda119d Outsource strings to resource.
svn path=/trunk/; revision=25182
2006-12-16 18:36:45 +00:00
Johannes Anderwald
24dbaddea0 - include required header
svn path=/trunk/; revision=25181
2006-12-16 17:28:08 +00:00
Maarten Bosma
af95c99c2e More detailed Messages.
svn path=/trunk/; revision=25180
2006-12-16 11:57:07 +00:00
Maarten Bosma
1e657a7c38 Close window if xml file could not be found.
svn path=/trunk/; revision=25179
2006-12-16 11:33:38 +00:00
Maarten Bosma
36f750fcc3 Do not crash when download button is hit and no application selected and some other improvements.
svn path=/trunk/; revision=25178
2006-12-16 11:18:03 +00:00
Aleksey Bragin
815a380bfe - ReactOS does not directly aim NT4 compatibility everywhere, reflect this in the readme.
- Add a sentence about RosBE.

svn path=/trunk/; revision=25177
2006-12-16 11:06:33 +00:00
Sylvain Petreolle
1de0f7c37a dont crash if apps.xml cant be read
svn path=/trunk/; revision=25176
2006-12-16 10:55:15 +00:00
Magnus Olsen
c46da966ca Clean up the code bit, and move some code. nothing new really, it is basic new redesign for createsurface code.
svn path=/trunk/; revision=25175
2006-12-15 23:54:42 +00:00
Magnus Olsen
91742d22de Clean up the code bit, and move some code. nothing new really, it is basic new redesign for createsurface code.
svn path=/trunk/; revision=25174
2006-12-15 23:54:15 +00:00
Aleksey Bragin
b3b09c712f [AUDIT]
- Unlocking most of Mm components, because, first of all Memory Manager is based on a completely different concept, which is not like NT4, NT5, NT5.1 or NT5.2. Secondly, init routines are again different due to different Loader Parameter Block and different ways of passing memory map. Thirdly, there are a lot of stubs.
- All code was looked through and it does not seem to contain any suspicious details.

svn path=/trunk/; revision=25173
2006-12-15 20:22:43 +00:00
Maarten Bosma
e6440f38c4 Add the applications, which were in the old package manager.
svn path=/trunk/; revision=25172
2006-12-15 18:50:00 +00:00
Maarten Bosma
67fe893b0b Even set icon, if there is none given in the xml file. Workaround for ReactOS bug.
svn path=/trunk/; revision=25171
2006-12-15 18:14:49 +00:00
Maarten Bosma
343f35865f Do not hardcode the path to the xml file.
svn path=/trunk/; revision=25170
2006-12-15 16:54:18 +00:00
Maarten Bosma
1f61021064 Forgot to remove this
svn path=/trunk/; revision=25169
2006-12-15 16:40:18 +00:00
Maarten Bosma
e83af284f2 New Downloader
- Description field is not done yet. 
- Download.c is taken from getfirefox.

svn path=/trunk/; revision=25168
2006-12-15 16:11:59 +00:00
Magnus Olsen
0296188f39 adding experment code for createsurface overlay. but this code show how we should do the backbuffer.
svn path=/trunk/; revision=25167
2006-12-14 22:58:44 +00:00
Magnus Olsen
acb5f1bb20 we can now create backbuffer surface. but some how we are doing it wrong ??
1. hacked getattachsurface was not a good idea. we can not lure program with curren code so tehy fails. 


svn path=/trunk/; revision=25166
2006-12-14 21:11:00 +00:00
Sylvain Petreolle
8a0deccf20 build control with unicode=yes
svn path=/trunk/; revision=25165
2006-12-14 20:40:18 +00:00
Magnus Olsen
662f1546cf create backbuffer works, left todo is to implement getattach surface.
svn path=/trunk/; revision=25164
2006-12-14 20:03:06 +00:00
Magnus Olsen
23153cc3cf 1. fixed fullscreen crash when we exit
2. more prepations for backbuffer support

svn path=/trunk/; revision=25163
2006-12-14 19:33:05 +00:00
Magnus Olsen
4eca115ed8 start prepare for implement of the backbuffer. we do not alloc the backbuffers yet.
1. add alloc of backbuffer to own files so it is easy understand how it is done. 
   the file createsurface.c are not include to rbuild yet. I do not want lose current
   code. if something happen with it. 

svn path=/trunk/; revision=25162
2006-12-14 18:10:18 +00:00
Aleksey Bragin
627e0b918d A correct check, finally.
svn path=/trunk/; revision=25161
2006-12-14 13:22:55 +00:00
Aleksey Bragin
734c8972dd GreyGhost: Fixing typos.
svn path=/trunk/; revision=25160
2006-12-14 12:51:16 +00:00
Magnus Olsen
3b179ca6a9 revers 25135 for it is incorrect change, do ask before change any code in win32k. and do not assume code is wrong
See issue #25 for more details.

svn path=/trunk/; revision=25159
2006-12-14 12:49:19 +00:00
Magnus Olsen
75f5b641f2 make the cleanup working as it should, do not crash when it try free unlinked dd interface.
svn path=/trunk/; revision=25158
2006-12-14 10:53:35 +00:00
Magnus Olsen
80f2505753 The format change of setup.c cause unexpect error. some typo ??
svn path=/trunk/; revision=25157
2006-12-14 10:32:23 +00:00
Magnus Olsen
f6dc17f3c0 fixing the last problem with release of dd interface, hopply I do not forget to free any memory it alloc this time.
fixing proper shourtdown of dx. 

svn path=/trunk/; revision=25156
2006-12-14 09:35:19 +00:00
Magnus Olsen
45000c2da2 start implement release for dd interface, we do not release everthing yet, we still have some memory leak.
svn path=/trunk/; revision=25155
2006-12-14 09:20:00 +00:00
Magnus Olsen
849df320ad fixing a small check in createsurface
svn path=/trunk/; revision=25154
2006-12-14 08:43:04 +00:00
Magnus Olsen
fc31996a7d Implement full support for GetPixelFormat
svn path=/trunk/; revision=25153
2006-12-14 08:22:17 +00:00
Magnus Olsen
ac78b1e624 Do not crash in GetDC, mplayer company we do not have a backbuffer now. good news, instead for a crash
svn path=/trunk/; revision=25152
2006-12-13 23:19:20 +00:00
Magnus Olsen
e24638087b exprement code for GetPxielformat, (manger crash mplayer (the gui version) in the GetDC api, and maybe for we do not have the clipper implement. yet.
svn path=/trunk/; revision=25151
2006-12-13 23:06:48 +00:00
Sylvain Petreolle
1f89928830 build wordpad with unicode="yes/no"
svn path=/trunk/; revision=25150
2006-12-13 22:05:14 +00:00
Magnus Olsen
82d454c95b more cleanup,
1. fixed more tab to space
2. rewrite addref for some inteface. 

svn path=/trunk/; revision=25149
2006-12-13 21:48:35 +00:00
Magnus Olsen
b7bb710426 fixing more format from tab to space
svn path=/trunk/; revision=25148
2006-12-13 21:28:52 +00:00
Magnus Olsen
ca82e66f85 fixed format of this file do not mix tab and space
svn path=/trunk/; revision=25147
2006-12-13 20:57:09 +00:00
Aleksey Bragin
209f1567c8 - Improve a debug print to provide more info.
svn path=/trunk/; revision=25146
2006-12-13 16:04:17 +00:00
Hervé Poussineau
8a628a8eea Try to read shell name from HKCU registry key.
If HKCU registry key or file not found, fall back to HKLM registry key
If HKLM registry key or file not found, fall back to names "explorer.exe" and "cmd.exe"

svn path=/trunk/; revision=25145
2006-12-13 14:58:10 +00:00
Johannes Anderwald
7f7148ea0c - msvc compability fixes
- fix build breakage introduced by me

svn path=/trunk/; revision=25144
2006-12-13 14:45:23 +00:00
Magnus Olsen
4c1c201d3c fixed setcorative level set now the DDRAWILCL_ISFULLSCREEN flags,
remove some code from blt for it does not work in fullscreen. our bltblt working now in fullscreen and windows mode. 
 

svn path=/trunk/; revision=25143
2006-12-13 09:36:39 +00:00
Magnus Olsen
519c0fdb36 small cleanup for unlock
svn path=/trunk/; revision=25142
2006-12-13 08:31:02 +00:00
Magnus Olsen
cb00971319 Fixed, yeah our second test apps works ms dx sdk font.exe works equal good as it use to now. We are getting Ddlock and Ddunlock working again.
svn path=/trunk/; revision=25141
2006-12-13 07:54:45 +00:00
Peter Ward
f696e3e547 - Compilation fix.
svn path=/trunk/; revision=25140
2006-12-13 05:37:55 +00:00
Johannes Anderwald
86ee432e0b Part 2/2 of WDK compability fixes
- reflect previous header changes
- fix prototype for GetConsoleAliasA/W
                    CreateSymbolicLinkA/W


svn path=/trunk/; revision=25139
2006-12-12 23:57:24 +00:00
Johannes Anderwald
170373b2b0 Part 1/2 of WDK compability fixes
- add struct CONSOLE_READCONSOLE_CONTROL to wincon.h
- add missing pointer typedef
- fix declaration of ReadConsoleA 
                     ReadConsoleW
                     FindFirstVolumeA
                     FindFirstVolumeW
                     FindFirstVolumeMountPointA
                     FindFirstVolumeMountPointW
                     FindNextVolumeA
                     GetApplicationRecoveryCallback
                     RegisterApplicationRecoveryCallback
                     SystemTimeToTzSpecificLocalTime

- fix typedef of WIN32_FIND_STREAM_DATA

svn path=/trunk/; revision=25138
2006-12-12 23:52:02 +00:00
Magnus Olsen
0354fd8d4b do not crash if we call lock and unlock but something are wrong.
we manger getting a lock but ms sdk font sample does not showing the font why ??

svn path=/trunk/; revision=25137
2006-12-12 22:03:49 +00:00
Magnus Olsen
6d0fbf46e2 now we are back in track, we are almost same state as we got with the old desgin of ddraw.dll
bltblt working again for HAL

svn path=/trunk/; revision=25136
2006-12-12 20:35:12 +00:00
Johannes Anderwald
2e89f9158d - fix bug in IntChangeDisplaySettings
svn path=/trunk/; revision=25135
2006-12-12 20:22:07 +00:00
Magnus Olsen
fe01bb3090 bltblt is hacked now. but it draw a yellow surface now
svn path=/trunk/; revision=25134
2006-12-12 19:34:33 +00:00
Aleksey Bragin
0d5961e9e4 - Improve debug output
svn path=/trunk/; revision=25133
2006-12-12 19:08:32 +00:00
Maarten Bosma
5c0d1ea97a Check if This and ThisSrc are NULL.
svn path=/trunk/; revision=25132
2006-12-12 18:54:50 +00:00
Magnus Olsen
f1c6b23eaa remove fireball hack in changedisplay, do not hard code the display number,
with this patch we are now extract the display number from the desktop and use it
patch was wroten by me and janderwald. I was to lazy finish it so janderwald did finish it
thanks janderwald. 

svn path=/trunk/; revision=25131
2006-12-12 17:56:27 +00:00
Maarten Bosma
e564de2bbd Make it a compile time choice, whether you want to use a clipper or not, because our ddraw does not support it yet.
svn path=/trunk/; revision=25130
2006-12-12 17:51:50 +00:00
Aleksey Bragin
8d383c3bad ChangeDisplaySettingsEx() can be called with NULL DeviceName. In this case, we should look it up, instead of BSODing.
Right now, this case is fixed by substituting the value to a hardcoded one "\\.\DISPLAY1" in case of NULL and call is made to store the values in registry.

svn path=/trunk/; revision=25129
2006-12-12 12:18:17 +00:00
Johannes Anderwald
d7b7be7821 set svn:eolstyle native
svn path=/trunk/; revision=25128
2006-12-12 07:59:45 +00:00
Sylvain Petreolle
159c3a0448 add french translation to ipconfig
svn path=/trunk/; revision=25127
2006-12-11 22:41:37 +00:00
Sylvain Petreolle
e094e5bf06 unicode build fixes
svn path=/trunk/; revision=25126
2006-12-11 18:04:02 +00:00
Aleksey Bragin
1a86140ef5 - Assign a proper InterfaceType to the resource descriptor. Fixes assert when using VMWare video driver.
Approved by hpoussin.

svn path=/trunk/; revision=25125
2006-12-11 17:31:04 +00:00
Peter Ward
37d0a75dc4 - Fix GCC 4.1.2 build. Patch by Usurp.
svn path=/trunk/; revision=25122
2006-12-10 22:39:21 +00:00
Peter Ward
204be1a566 Fix compilation \ -> /.
svn path=/trunk/; revision=25121
2006-12-10 22:26:01 +00:00
Alex Ionescu
c853849d00 - Add missing header.
svn path=/trunk/; revision=25119
2006-12-10 21:21:08 +00:00
Alex Ionescu
c39989df1b - Fix SleepEx.
- Put volatile statements in EX_RUNDOWN_REF, IRP, DEVICE_OBJECT, ERESOURCE, FILE_OBJECT, IO_REMOVE_LOCK, WORK_QUEUE_ITEM where required (thanks to Microsoft's changes in the WDK to mark the fields properly).
- Update FILE_OBJECT definition.
- Add some asserts to some I/O functions.
- Add stub support for File Objects created by XP+ Drivers which have File Object Extensions.
- Add some fixes to IopDeleteFile, including proper reference counting for the DO and VPB, as well as cleanup when the file is closed without a handle.
- Fix a bug in IopSecurityFile.
- Queue and unqueue IRPs in all I/O functions.
- Fully support IRP cancellation now.
- Fix critical bugs in NtDeviceIoControlFile and NtDeviceFsControlFile which were causing double queueing of IRPs and freeing of invalid memory, as well as invalid paramter checking for user-mode buffers.
- Add exhaustive validation checks to IoCreateFile, add more failure cases, and validate the EA buffer. Also support IO_ATTACH_DEVICE_API flag.
- Implement IoCreateStreamFileObjectEx and IoCreateStreamFileObjectLite and fix several bugs in the original implementation of IoCreateStreamFileObject.
- Fix a bug in RtlRaiseException.
- Update Io*ShareAccess routines to support XP+ style semantics related to special File Object flags which disable their use.
- Add validation to all Query/Set routines so that information clasess, lengths, buffers and alignment are properly checked.
- Also add an array for the proper acess rights that each query/set operation requires.
- Check backup/restore privileges during I/O File operations.
- Check traverse access during I/O File Operations.
- Check access privileges to the device during I/O file operations.
- Rename IopReferenceDeviceObject and also verify if an exclusive DO is trying to be invalidly opened.
- Support various extra security checks during I/O File/Device Parse Routine.
- Fix a bug during IopCleanupIrp so that we don't dereference the File OBject if this was a create operation.
- Fix some bogus asserts in IofCompleteRequest, and save the IRP Flags before signalling it's event, since the driver might've freed it behind our back.
- Fix a large bug in ObInsertObject which affected the insert of unnamed objects with forced security options (Such as process/threads).
- Fix the creation of the Process/Thread/Job Obejct Types to that security information is forced.
- Remove "Fix PS!!!" messages since the bug is now fixed and these objects now get proper security descriptors.
- Fix another bug in ObInsertObjet which wasn't properly validating user-mode objects and always assumed kernel mode.
- Silence multiple trace/checkpoint messages that have accumulated throughout time for various debugging purposes.

svn path=/trunk/; revision=25118
2006-12-10 18:40:30 +00:00
Magnus Olsen
2ae5e0b1ff commit the patch from bug 1874 even it does not use the RDMSR and WRMSR measure methood, we need use the RDMSR and WRMSR for dual core and CPU support it see Intel documentations AP-485, who u should do it. The patch is from HTO Bugfix detections of RTSC support for single and dual core by me, adding check if the CPU support RDMSR and WRMSR and send a true or false value to GetCpuSpeed, so we known which method we should use. HTO patch should be use when it is false. other wise we should use the RDMSR and WRMSR measure method
See issue #1874 for more details.

svn path=/trunk/; revision=25117
2006-12-10 17:39:01 +00:00
Andrew Greenwood
d14487acdf Stubbing of Kernel Streaming DRM module
svn path=/trunk/; revision=25115
2006-12-10 15:12:12 +00:00
Andrew Greenwood
c7765a6c6c Further stubbing of Kernel Streaming APIs:
KS.SYS PORTCLS.SYS


svn path=/trunk/; revision=25114
2006-12-10 15:09:46 +00:00
Magnus Olsen
0fe6b951ac Fixed all hack in createsurface, we still have some bugs and do not create surface as we should.
but we lest create a single primary surface. 

svn path=/trunk/; revision=25113
2006-12-10 13:32:35 +00:00
Magnus Olsen
33ba72260b fixed some check in createsurface so user can not easy crash it.
svn path=/trunk/; revision=25112
2006-12-10 10:44:39 +00:00
Magnus Olsen
41059dabf4 Remove more of createsurface hack for primary surface.
svn path=/trunk/; revision=25111
2006-12-10 08:11:08 +00:00
Magnus Olsen
da0a71a8bc small optimzing of drawing line by George Veskov (jkxxster at gmail dot com) irc nick jkxx
svn path=/trunk/; revision=25110
2006-12-10 07:39:20 +00:00
Peter Ward
5ad7b6a0c9 - Revert 25108, requested by silverblade.
svn path=/trunk/; revision=25109
2006-12-10 05:43:49 +00:00
Andrew Greenwood
26fa983af4 Further stubbing of Kernel Streaming APIs
(corrective path fix to follow...)


svn path=/trunk/; revision=25108
2006-12-10 04:16:35 +00:00
Andrew Greenwood
275e3ef97e These files aren't complete yet, but this will put them at least in
their right place...


svn path=/trunk/; revision=25107
2006-12-10 04:04:03 +00:00
Magnus Olsen
b06bb7eb7e remove most of the hack in createsurface
svn path=/trunk/; revision=25105
2006-12-09 21:41:42 +00:00
Magnus Olsen
465b3d78e8 Test code to create surface. it is a big hack to create a primare surface.
but we success create a primary surface. with this hack. 

svn path=/trunk/; revision=25104
2006-12-09 18:31:31 +00:00
Eric Kohl
9360360cb5 Don't show a wallpapers file extension.
svn path=/trunk/; revision=25102
2006-12-09 15:31:06 +00:00
Johannes Anderwald
71d16876ff - only control panel applet should be started with rundll32.exe, other modules can be started w/o it
svn path=/trunk/; revision=25101
2006-12-09 14:43:02 +00:00
Christoph von Wittich
cc41125c21 fix version information display when using yasm
svn path=/trunk/; revision=25100
2006-12-09 13:47:38 +00:00
Magnus Olsen
94ca1acc37 revert the 25082 it cause unknown regress.
I did not notice it becose I did have a crashed dx hal interface.


svn path=/trunk/; revision=25099
2006-12-09 12:11:09 +00:00
Johannes Anderwald
659dc2230c - various msvc fixes
* inline -> __inline
 * use msvc generated interface name
 * fix duplicate definition of ElfrRegisterEventSourceA -> ElfrRegisterEventSourceW
 * fix memory leak in ElfrOpenELA 

svn path=/trunk/; revision=25097
2006-12-09 09:07:15 +00:00
Christoph von Wittich
880ee116c3 -display version information for compiler, binutils and nasm
svn path=/trunk/; revision=25092
2006-12-08 18:41:20 +00:00
Johannes Anderwald
3e7c9ccd65 - generated client header/source files get _c postfix
- generated server header/source files get _s postfix
- only generate code for the required module
Note: due to an bug in VS2005 build tool lib tool does only get part of generated object filename i.e. pnp_c.obj becomes pnp.obj. As a result the lib tool cannot link. However we need to generate unique obj files so that client / server project always compiles the requires source files

svn path=/trunk/; revision=25091
2006-12-08 12:47:58 +00:00
Johannes Anderwald
9813d8a0b7 - silence output
svn path=/trunk/; revision=25090
2006-12-08 12:24:40 +00:00
Johannes Anderwald
bc5080e521 - include path to generated idl files for dependant projects
svn path=/trunk/; revision=25089
2006-12-08 11:50:56 +00:00
Christoph von Wittich
adfd78e1b8 fix unused variable warning in release build
svn path=/trunk/; revision=25088
2006-12-08 11:15:48 +00:00
Johannes Anderwald
e731b55f87 - add missing source header
svn path=/trunk/; revision=25087
2006-12-08 10:53:14 +00:00
Christoph von Wittich
6bf437add2 updated buslogic driver to version 1.2.0.4
See issue #1891 for more details.

svn path=/trunk/; revision=25086
2006-12-08 02:01:34 +00:00
Christoph von Wittich
ae69669470 fix a typo in ObFindObject patch by hto
See issue #1861 for more details.

svn path=/trunk/; revision=25085
2006-12-08 01:06:10 +00:00
Christoph von Wittich
ceff92df91 -new german language file
-some fixed for the english language file
patch by Colin Finck
See issue #1900 for more details.

svn path=/trunk/; revision=25084
2006-12-08 01:00:51 +00:00
Christoph von Wittich
7ead042aa6 fix gcc 4.1.2 build patch by Coviti
See issue #1897 for more details.

svn path=/trunk/; revision=25083
2006-12-08 00:50:58 +00:00
Magnus Olsen
66bf6c2606 Adding more setup infromations for createsurface. (does not working yet)
svn path=/trunk/; revision=25082
2006-12-07 20:48:00 +00:00
Magnus Olsen
78eacb0873 start config up createsurface right to create surface but we are not setting all value right yet.
svn path=/trunk/; revision=25081
2006-12-07 18:27:16 +00:00
Magnus Olsen
f2f6e89dc0 start writing on the createsurface code, current does not setup the interface right yet so we do not doing the callbacks yet
svn path=/trunk/; revision=25080
2006-12-07 16:46:33 +00:00
Peter Ward
ab5143ea78 - Fix for "pice.sys gets loaded unexpectedly".
- Patch by Usurp.
- See bug http://www.reactos.org/bugzilla/show_bug.cgi?id=1898.

svn path=/trunk/; revision=25079
2006-12-07 16:43:30 +00:00
Johannes Anderwald
3315995e54 - fix a few warnings
- make it compilable with msvc and gcc4.1.1

svn path=/trunk/; revision=25078
2006-12-07 08:54:16 +00:00
Aleksey Bragin
87084dffa3 Add KdChangeOption() stub
svn path=/trunk/; revision=25077
2006-12-06 20:55:42 +00:00
Magnus Olsen
78e6f55307 did forget to exlucde the ddraw.rbuild. sorry I did break the build
svn path=/trunk/; revision=25076
2006-12-06 19:54:53 +00:00
Magnus Olsen
4e309b0917 fixed a pointer I forget setup. the This->lcl->lpDDCB was not set. and that mean we did not use any interface. we are using This->lcl->lpDDCB in the iface calls
svn path=/trunk/; revision=25075
2006-12-06 19:53:43 +00:00
Christoph von Wittich
e6219a7ac8 set minimum req. gcc version to 3.4.2
svn path=/trunk/; revision=25074
2006-12-06 16:22:32 +00:00
Aleksey Bragin
45f26cb114 - vfat now checks what CcCopyRead() returned, and return that value to the caller in case of failure
- Added a check for successful call to ReadCacheSegmentChain() in CC
See issue #1855 for more details.

svn path=/trunk/; revision=25073
2006-12-06 13:29:21 +00:00
Alex Ionescu
9dbd8d4fbe - Revert 25070: NO.
- Please look what I did inside FreeLdr. I called this function perfectly without needing to modify how it works. It's what the AdditionalBias parameter is there for...

svn path=/trunk/; revision=25071
2006-12-05 18:33:03 +00:00
Aleksey Bragin
35d9339017 A necessary hack for PE relocation within physical address space (in FreeLdr).
Using it removes code duplication from FreeLdr / winldr.

To get rid of this hack, either freeldr should be fully switched to virtual paged mode (which is not good) or code must be duplicated inside freeldr.

svn path=/trunk/; revision=25070
2006-12-05 18:28:08 +00:00
Johannes Anderwald
4ecce0d21b - fix build with gcc 4.1.0
svn path=/trunk/; revision=25069
2006-12-05 11:27:45 +00:00
Christoph von Wittich
94d2fce55a -revert janderwalds change until because it breaks the gcc 4.x build
svn path=/trunk/; revision=25065
2006-12-04 16:46:52 +00:00
Christoph von Wittich
6fb82c4caf fix ks.rbuild
svn path=/trunk/; revision=25064
2006-12-04 16:34:26 +00:00
Michael Steil
ef4a67dd52 ReactOS Intel Mac compatibility commits, part 2/2
== LBA Functionality BIOS Bug ==
When the BIOS is asked whether it supports INT 13 extensions, it will answer yes if the device is a hard disk, but it will pretend that even the function to ask about this functionality is unsupported if asked about a CD drive. This is similar to what is documented in the code already: Some BIOSes return "doesn't support INT 13 extensions" for CDs.
Code has been added to use INT 13 extensions (and therefore LBA read as opposed to CHS) even if the BIOS claims this is unsupported, if the device is a CD-ROM. The check for the drive type is done by comparing with 0x90: If the device number is 0x90 or above, it's a CD drive. (On Insyde's BIOS, it's 0x90, on most others, it's 0x9F).

(Ironically, Insyde's BIOS cannot even do CHS on CDs, so if the bootloader correctly asks for LBA support, it will get a "no" and will fail when trying to do CHS: When querying the max. CHS values, the BIOS returns 0 sectors per track, which will make conversions from LBA to CHS impossible.)

== LBA Read BIOS Bug ==
When trying to read from CD using the LBA function INT 13/42, the BIOS function will return as it is supposed to, with CF and AH cleared, but with an unchanged buffer. This is because freeldr passes a "disk address packets" that structure contains an extra 64 bit value at the end and is therefore 24 bytes long instead of 16. This is perfectly fine, and a BIOS should ignore any extra data in the structure, but Insyde's BIOS, which doesn't support the extra field (and thus the EDD-3.0 standard) just ignores the complete task and returns in this case.
The extra field has been removed from the structure in freeldr, as it is not used anyway. The structure is now 16 bytes long.

svn path=/trunk/; revision=25063
2006-12-04 15:33:06 +00:00
Michael Steil
eb565e3840 ReactOS Intel Mac compatibility commits, part 1/2, by Michael Steil.
== A20 Gate and the Keyboard Controller ==
In order to turn on the A20 gate, the keyboard controller has to be emptied. This is done in freeldr by reading bytes until the keyboard controller signals it's empty. Intel Macs don't have PS/2 keyboard controller and the status register always reads back 0xFF, so the "there is data" bit will never be cleared. (The same problem has been in GRUB as well as in Darwin's BIOS loader.)
Added code that doesn't bother to clear the keyboard buffer if the status port reads back 0xFF.

== Serial Port BIOS Bug ==
Insyde's BIOS reports that there is a COM1 serial port at 0x3F8 (as stored in 0040:0000 in memory), but there is none in Intel Macs, so freeldr spins infinitely while trying to empty the serial port's buffer.
Added code that makes sure the loop only gets executed up to 200 times

svn path=/trunk/; revision=25062
2006-12-04 15:00:11 +00:00
Peter Ward
f790496bd4 - Small compilation fix for roshttpd.
svn path=/trunk/; revision=25060
2006-12-04 01:50:47 +00:00
Johannes Anderwald
369fa23f46 - give roshttpd a rbuild file
- include it in build
- fix building with msvc

svn path=/trunk/; revision=25059
2006-12-03 23:35:02 +00:00
Johannes Anderwald
231c494a6f -fix compiling with msvc
svn path=/trunk/; revision=25058
2006-12-03 22:43:22 +00:00
Johannes Anderwald
9595935d9f - fix compiling with msvc
- replace getopt with simple parse routine

svn path=/trunk/; revision=25057
2006-12-03 22:29:07 +00:00
Johannes Anderwald
4c44ec895f - fix some warnings when compiling with msvc
svn path=/trunk/; revision=25056
2006-12-03 21:51:50 +00:00
Johannes Anderwald
f737754b34 - remove unused make files
svn path=/trunk/; revision=25055
2006-12-03 21:37:38 +00:00
Johannes Anderwald
06d8efb11c - fix msvc compile problems
svn path=/trunk/; revision=25054
2006-12-03 21:33:17 +00:00
Johannes Anderwald
8dde1987db - move undocumented constants to more appropiate location
- thnx to Alex_Ionescu

svn path=/trunk/; revision=25053
2006-12-03 21:19:23 +00:00
Andrew Greenwood
e07f82102e New stubbing of KS (Kernel Streaming) and associated header files.
Updated README.


svn path=/trunk/; revision=25052
2006-12-03 21:11:56 +00:00
Magnus Olsen
c33ae33877 started hacked SetCooperativeLevel and ReCreateDirectDraw code. we need it if hwnd are not null we need recreate the HAL and HEL interface for we already inistate it early.
svn path=/trunk/; revision=25051
2006-12-03 21:11:40 +00:00
Johannes Anderwald
54876ff367 - default to __cdecl convention for gui / console apps
svn path=/trunk/; revision=25050
2006-12-03 21:09:04 +00:00
Aleksey Bragin
5edc5e319f [AUDIT]
Change name everywhere back to Ariadne because real person could not be contacted. Non-working email address removed.

If this person doesn't contact me before finish of the audit, the copyright will be transferred to ReactOS Foundation.

svn path=/trunk/; revision=25049
2006-12-03 21:06:03 +00:00
Andrew Greenwood
d79fc4b62c Kernel Streaming cleanup - replacing with new stubs shortly!
svn path=/trunk/; revision=25048
2006-12-03 20:59:52 +00:00
Johannes Anderwald
77255e9849 -fix compiling with msvc
svn path=/trunk/; revision=25047
2006-12-03 20:48:25 +00:00
Johannes Anderwald
af06dadd48 - include gettype in build process
- add missing dependency

svn path=/trunk/; revision=25046
2006-12-03 20:43:21 +00:00
Johannes Anderwald
316ca7fc58 - give getfirefox a WinMain it deserves
- theres no reason to include NDK for it
- fix a bug in dlOnProgress while debugging it

svn path=/trunk/; revision=25045
2006-12-03 20:36:53 +00:00
Johannes Anderwald
86f3d0e7ea - fix some warnings when compiling with msvc
svn path=/trunk/; revision=25044
2006-12-03 20:17:55 +00:00
Johannes Anderwald
9a841754c2 - fix correct app type
svn path=/trunk/; revision=25043
2006-12-03 20:04:09 +00:00
Johannes Anderwald
69b8ba7ca7 - fix warning
- fix svn properties

svn path=/trunk/; revision=25042
2006-12-03 19:52:19 +00:00
Johannes Anderwald
5a8d8453fc - update readme
See issue #1890 for more details.

svn path=/trunk/; revision=25041
2006-12-03 19:17:19 +00:00
Johannes Anderwald
8a50599cf5 - update readme
See issue #1890 for more details.

svn path=/trunk/; revision=25040
2006-12-03 19:16:30 +00:00
Magnus Olsen
1de675a898 Fixed HALDD been setup right.
svn path=/trunk/; revision=25039
2006-12-03 18:53:05 +00:00
Johannes Anderwald
076a9dd89e - New changes for the Greek Keyboard layout
- by Apostolos Alexiadis
- fix some formating issues
See issue #1831 for more details.

svn path=/trunk/; revision=25038
2006-12-03 18:48:29 +00:00
Alex Ionescu
144e232b5f - Fix IopSecurityFile to send the IRP to the right device.
- Fix IoSetInformation to send the IRP to the right device.
- After the major fix in 24996, the functions that had been written to work with the I/O bug stopped working (by sending the IRP to the wrong device object, which, due to the bug was the ""right"" object), this is now fixed and the bootcd works again.

svn path=/trunk/; revision=25037
2006-12-03 18:04:32 +00:00
Magnus Olsen
a75646d6df fixed so we return almost same flags in DD->GBL->dwFlags left todo is the DDRAWI_DRIVERINFO2
svn path=/trunk/; revision=25036
2006-12-03 17:54:25 +00:00
Magnus Olsen
bdd9cf7f66 fixed a refer counter that was zero out, but it should be have set to 1
svn path=/trunk/; revision=25035
2006-12-03 15:42:12 +00:00
Magnus Olsen
3d923733e6 Fixed the initate process so it do not call to StartDirectDrawHel when GUID DDCREATE_HARDWAREONLY
Fixed the initate process so it do not call to StartDirectDrawHal when GUID DDCREATE_EMLATIONONLY

svn path=/trunk/; revision=25034
2006-12-03 15:23:44 +00:00
Aleksey Bragin
087400a522 NCI interface auditing, sysfuncs.lst.
- Fixed NtCompressKey() and NtQuerySystemEnvironmentValueEx() prototypes (they were incorrectly declared/defined, but had a correct number of params in sysfuncs.lst)
- Fixed incorrect number of parameters specified in sysfuncs.lst for NtLoadKeyEx(), NtQueryOpenSubKeysEx(), NtTranslateFilePath()

sysfuncs.lst now perfectly matches all functions definitions.

svn path=/trunk/; revision=25029
2006-12-03 11:13:05 +00:00
Magnus Olsen
3c9294fcf4 Fixed so we can optain the HAL again.
Do not trust on ddraw value yo get blindy. it will rest the value you need to optian the HAL and you can not spy on it so easy then.

svn path=/trunk/; revision=25027
2006-12-03 09:12:35 +00:00
Alex Ionescu
58fad00c6d - Clear capacity data buffer before reading it to avoid 0xCCCCCCCC values and manually set failure code if nobody filled it in (a hack, but I don't understand our pre-Nixon-era storage stack to "properly" fix it, so this is good enough and kills off the 0xCCCCCCCC byte non-paged pool allocations.
svn path=/trunk/; revision=25026
2006-12-03 08:08:08 +00:00
Alex Ionescu
cd31c14fe5 - Enable V86/DR save in HAL Clock Interrupt (and fix build).
- Add debug message to fs_rec driver to analyse why it's trying to allocate 4GB of non paged memory.

svn path=/trunk/; revision=25025
2006-12-03 07:34:03 +00:00
Magnus Olsen
aae91f0242 fixed a werid crash do not initate the member dwObsolete1 in LPDDRAWI_DIRECTDRAW_LCL
svn path=/trunk/; revision=25022
2006-12-03 00:17:56 +00:00
Magnus Olsen
073d96842d bug fixed some more info getting same as ms ddraw when you execute DirectDrawCreateEx
fixed some comment in main.c, Comment why memory does not being fill to zero in lest windows 2000 after you play with directdraw. 

svn path=/trunk/; revision=25021
2006-12-02 23:04:11 +00:00
Alex Ionescu
8b4c009bfb - Implement V86 trap fixup during traps and interrupts.
- Implement DR register save/restore during traps, interrupts and system calls.
- Remove respective entry from krnlfun.c.

svn path=/trunk/; revision=25020
2006-12-02 20:49:56 +00:00
Magnus Olsen
aa6252fc13 fixed so only NULL and DDCREATE_HARDWAREONLY are accpect when you linking two directdraw interface.
svn path=/trunk/; revision=25019
2006-12-02 19:26:55 +00:00
Magnus Olsen
a9e3149429 fixed follow bugs
1. Fixed memory crash bug for linking two directdraw interface
2. Fixed meoory alloc does not being overwrite when it being linked

svn path=/trunk/; revision=25018
2006-12-02 18:59:05 +00:00
Magnus Olsen
ca9afb4298 Fixed follow bug Create_DirectDraw
1. did not set the DDRAWILCL_DIRECTDRAW7 to This->lpLcl->dwLocalFlags
2. did not initate the This->lpLcl->dwLocalRefCnt to 0 and Main_DDrawSurface_AddRef did wrong count then 

svn path=/trunk/; revision=25017
2006-12-02 16:57:21 +00:00
Magnus Olsen
a709c01ca8 fixed partly linking with other directdraw interface, but we still overwrite some member and crash it, when we doing a link.
svn path=/trunk/; revision=25016
2006-12-02 13:37:55 +00:00
Magnus Olsen
1c4a115ec0 adding check if it is IID_IDirectDraw7 on right place and learn it is lpDD->QueryInterface that optain the d3d interface.
svn path=/trunk/; revision=25015
2006-12-02 10:27:56 +00:00
Magnus Olsen
1c7d9c3cb9 remove trunk stuff. for it was wine idea, if you reading msdn and test ms ddraw you can not use other interface that IID_IDirectDraw7
but wine allown you use older IID interface. But It will be hell to support DirectX 1-6 IID_IDirectDraw, IID_IDirectDraw2, IID_IDirectDraw4 so we doing like microsoft kill it. and this check can be use to detect if it wine ddraw or not. like test if other that IID_IDirectDraw7 are vaild. 

svn path=/trunk/; revision=25014
2006-12-02 10:20:33 +00:00
Magnus Olsen
17e88e019f Adding two new debuger macro and debocument each debug macro I am using in windows and why you should use one of them
with time the debug macro will be compelete remove. 

svn path=/trunk/; revision=25013
2006-12-02 08:30:16 +00:00
Magnus Olsen
817dba67ef Colin Finck (mail at colinfinck dot de)
patch to sysdm (id=1161)
fixing truncate of string and making allot better layout of the system info. 


See issue #1858 for more details.

svn path=/trunk/; revision=25012
2006-12-01 17:36:07 +00:00
Alex Ionescu
d67835f9dc - Kill some debug prints.
- Remove debug-test infinite loop from DbgkForwardException
- Fix missing "break" statement in DbgkFreeDebugEvent, causing a handle leak, and in DbgkpOpenHandles, causing user-mode to get a kernel-mode handle for DLL images instead of the correct duplicated one.
- Currently struggling with the fact that ArbitraryUserPointer seems to be reset to zero before it's read for the debug event, so DLL names don't come through.

svn path=/trunk/; revision=25011
2006-12-01 08:20:37 +00:00
Alex Ionescu
94912681e1 - Write DLL Being mapped into NtTib->ArbitraryUserPointer so that the debugger can pick it up.
- Fix bugs in DbgkWakeTarget, DbgkCreateThread, DbgkMapViewOfSection and call from NtMapViewOfSection.

svn path=/trunk/; revision=25010
2006-12-01 07:36:49 +00:00
Magnus Olsen
898809f6cb fixed crash in stub of createsurface
svn path=/trunk/; revision=25009
2006-11-30 22:58:48 +00:00
Magnus Olsen
04210101de stubed Main_DirectDraw_SetCooperativeLevel
it need be rewrite

svn path=/trunk/; revision=25008
2006-11-30 21:43:07 +00:00
Magnus Olsen
c2e48f423c fixing stub of drvsetcolorkey
svn path=/trunk/; revision=25007
2006-11-30 21:04:09 +00:00
Johannes Anderwald
c906b40fe9 - bye bye fixdef
svn path=/trunk/; revision=25006
2006-11-30 20:57:52 +00:00
Alex Ionescu
b41e5c3b6c - Fix a bug in DbgkCreateThread which wasn't saving the initial thread information in the right place. The process create event is now fully supported and properly returns the entrypoint of the application.
svn path=/trunk/; revision=25005
2006-11-30 20:46:48 +00:00
Alex Ionescu
3851db2429 - Implement support for DEBUG_PROCESS in CreateProcess so that processes can be started with a debugger (works and tested with a new test app).
- We still seem to be suffering from a bug during certain debug event waits.

svn path=/trunk/; revision=25004
2006-11-30 20:37:21 +00:00
Alex Ionescu
7909b7a822 - Properly set and check the image notification flag for the process in DbgkCreateThread. Patch by hto.
See issue #1879 for more details.

svn path=/trunk/; revision=25003
2006-11-30 19:52:49 +00:00
Alex Ionescu
9ab9cf7351 - Fix various Dbgk bugs in the DbgUI and Win32 Debug wrapper APIs.
- Win32 Debug test application now works as well as Native one.
- The Dbgk framework still crashes on exceptions, I think.

svn path=/trunk/; revision=25002
2006-11-30 19:38:04 +00:00
Ged Murphy
fb9895a402 allow the Americans their incorrect spellings and add a correct UK resource file ;)
svn path=/trunk/; revision=25001
2006-11-30 19:23:19 +00:00
Alex Ionescu
3087c4530c - Remove Dbgk entries from KrnlFun.c, the subsystem is now implemented, save a few small bugs.
- Congratulations ROS on your 25000th commit!

svn path=/trunk/; revision=25000
2006-11-30 19:04:17 +00:00
Alex Ionescu
6a8ff3fea2 - Update Dbgk test application to test Win32 as well (definable by a compile-time #define).
svn path=/trunk/; revision=24999
2006-11-30 19:02:22 +00:00
Ged Murphy
d7ac88ec6f - implement 'blur' and 'sharpness'
- implement 'contrast' allowing for separate adjustment of RGB colours
- Decorate the contrast / blur function names to make GCC happy. These functions will be merged at a later stage
- implement fading in and out of the floating windows. To activate, hover your cursor over one of the windows, then away again. Only works in Windows, ROS has missing translucency functionality at the moment.

svn path=/trunk/; revision=24998
2006-11-30 19:02:14 +00:00
Alex Ionescu
ad0227d2bf - Fix a bug in DbgkOpenHandles which was causing file handles to get lost.
- Process create, thread create and DLL load events are now working perfectly. See http://www.tinykrnl.org/dbgworking.png

svn path=/trunk/; revision=24997
2006-11-30 18:30:05 +00:00
Alex Ionescu
5d44e00704 - Fix critical I/O bugs in IopParseFile which were causing the file object's device object pointer to be associated to the FSD (File System Device) instead of the Disk Driver, as well as the dereference of the FSD after the Disk Driver had been referenced (causing too many derefs for one, and to many refs for the other). Also fix a bug in IopQueryDeviceInformation which was querying the Disk Driver instead of the FSD.
- This also fixes IopQueryNameFile to properly return the entire name of the file now, instead of only the FSD part (probably fixes a dozen regressions).

svn path=/trunk/; revision=24996
2006-11-30 18:04:22 +00:00
Johannes Anderwald
a76f1549b6 - various msvc compability fixes
- 2 errors remaining:
conio.c(2104) : error C2065: 'CONSOLE_INPUT_MODE_VALID' : undeclared identifier
conio.c(2108) : error C2065: 'CONSOLE_OUTPUT_MODE_VALID' : undeclared identifier

those two constants should be moved into the NDK(declared in wincon.h)...

svn path=/trunk/; revision=24993
2006-11-30 16:48:13 +00:00
Christoph von Wittich
6714832496 check for compiler version
svn path=/trunk/; revision=24992
2006-11-30 15:11:26 +00:00
Johannes Anderwald
55e6bb5471 - fix msvc_clean target
- implement cleaning up def files which are generated by fixdef

svn path=/trunk/; revision=24991
2006-11-30 12:20:40 +00:00
Johannes Anderwald
5d44e0c10f - silence debug prints
- create new generated file with _msvc postfix

svn path=/trunk/; revision=24990
2006-11-30 11:24:46 +00:00
Aleksey Bragin
d59a0757d9 Fix HALMP build
svn path=/trunk/; revision=24989
2006-11-30 11:24:03 +00:00
Alex Ionescu
58809635ad - Raw test app for DbgUi+Dbgk Debugging Subsystem (skeletal, and doesn't test Win32 APIs).
svn path=/trunk/; revision=24988
2006-11-30 09:54:31 +00:00
Alex Ionescu
3b4c74ae10 - Client IDs were OK, I incorrectly assumed they weren't due to the concidence they were equal to the thead/process handles. Actual bug was NtDebugContinue not accepting a valid status value. This is fixed now.
svn path=/trunk/; revision=24987
2006-11-30 09:30:07 +00:00
Alex Ionescu
cca4a71164 - Fix some bugs in NtWaitForDebugEvent which caused debug events to be sent in the wrong order and also more then one event to be sent at the same time (and thus some events skipped).
- Test app now properly receives the "create process" event along with valid process/thread handles and the image base. No file handle sent yet because of the I/O Manager File Object bug.
- There's still a bug in NtContinueDebugEvent due to wrong Client IDs being sent.

svn path=/trunk/; revision=24986
2006-11-30 09:22:07 +00:00
Alex Ionescu
ef1120e56b - Fix DbgkSectionHandleToFileHandle.
- Implement MmGetFileNameForSection.
- There is a bug in ObQueryNameString for file objects, so the full name isn't returned...

svn path=/trunk/; revision=24985
2006-11-30 05:22:20 +00:00
Alex Ionescu
d4cf4b1b58 - Fix a bug in NtWaitForDebugEvent.
- Dbgk kindaaaa works now, as a proof-of-concept more then anything else since some helper Mm routines are missing. Still have some bugs to fix, but connecting, attaching and waiting on events seems not to crash anymore (And returns partially valid data).

svn path=/trunk/; revision=24984
2006-11-30 04:52:22 +00:00
Alex Ionescu
e6463c5a34 - Implement an unhandled case in DbgkSetProcessDebugPort. The event queue is now properly parsed during connect and the event is signaled to start flushing the queue.
- Still got some bugs, but attach works...

svn path=/trunk/; revision=24983
2006-11-30 04:45:01 +00:00
Magnus Olsen
d1e6b52baa forgot this file
svn path=/trunk/; revision=24982
2006-11-30 04:35:10 +00:00
Alex Ionescu
d83fcae7d1 - Forgot to actually initialize Dbgk during system initialization, so any API would crash.
- Fix some stupid bugs in NtCreateDebugObject.
- Add tracing framework and add tracing to all of debug.c.
- Dbgk *almost* works: http://www.tinykrnl.org/dbgworking.png. Here I attach to services.exe and the kernel is sending notifications for all threads and DLLs loaded.

svn path=/trunk/; revision=24981
2006-11-30 04:16:35 +00:00
Alex Ionescu
2a4049fdfc - Implement DbgkPostFakeThreadMessages.
- Add Dbgk-calls to NtMap/UnmapViewOfSection to nodify debugging services of new DLL image load.
- Dbgk support is now skeletally complete, I will write a simple test app to test some functionality and start finding/fixing bugs.

svn path=/trunk/; revision=24980
2006-11-30 01:57:25 +00:00
Eric Kohl
9ceed92dda Move global variables into a struct that is attached to the property sheet page dialog.
svn path=/trunk/; revision=24979
2006-11-29 23:03:18 +00:00
Johannes Anderwald
bb39bd7162 - implement a basic scanning dection algorithm
- please review :P

svn path=/trunk/; revision=24978
2006-11-29 22:49:16 +00:00
Alex Ionescu
b906fae81e - Add profil.c and stub HalStartProfileInterrupt, HalStopProfileInterrupt and HalSetProfileInterval, and export these functions.
- KdComPortInUse is exported by HAL, not kdcom, so make the change.
- Register the KD support routines that kdcom on NT uses and implement most of them (except support for PCI Debug Cards).
- I can now get Windows to recognize the HAL but it freezes during loading (Due to broken IRQL implementation) and WinDBG won't connect to it.

svn path=/trunk/; revision=24977
2006-11-29 22:12:50 +00:00
Magnus Olsen
893be43835 1. adding surface callbacks stub, and activate them.
2. Finish the mix betwin HAL and HEL that we can do for now. 
3. Finish the switch betwin HAL and HEL that we can do for now. 
4. mange activate a DDCALLBACKS stub that was not posible before with wine ddraw.h header. after I wrote a new ddraw.f header for ReactOS, it works to actiavte FlipToGDISurface  HEL callbacks. But it is stub for moment. 

svn path=/trunk/; revision=24976
2006-11-29 22:09:52 +00:00
Johannes Anderwald
93c26f0ab5 - beginning of a def conversion utility
svn path=/trunk/; revision=24975
2006-11-29 21:08:15 +00:00
Alex Ionescu
358a8ed849 - Don't freeze on spurious interrupt.
svn path=/trunk/; revision=24974
2006-11-29 19:23:06 +00:00
Alex Ionescu
37d156c4c8 - Swap the IDT where we should, in KiSystemStartup instead of the freeldr.c hackfile. This, coupled with the previous patch, should make NTLDR-booting even more succesful since interrupts won't crash/be ignored.
svn path=/trunk/; revision=24973
2006-11-29 19:20:17 +00:00
Alex Ionescu
96d593c9ba - Finally figured out a way to make the old HAL IRQ implementation work with the new Ke Interrupt implementation without requiring my new HAL IRQ code (which doesn't work).
- Remove the "deprecated" directory from ntoskrnl since it now truly is.
- Remove KeInitInterrupts hack.
- Remove KiDispatchInterrupt2 export hack from kernel and stop using it from the HAL.
- HAL can now be built/tested with Windows/TinyKRNL since the export hack is gone and interrupts are sent properly through the IDT.
- Remove a bunch of completed krnlfun entries.
- Fix progressbar during bootcd bug.

svn path=/trunk/; revision=24972
2006-11-29 19:13:12 +00:00
Magnus Olsen
495e62c516 fixing more of dections of DDCREATE_HARDWAREONLY and DDCREATE_EMULATIONONLY,
we are now swicting betwin mix HEL and HAL, only HAL, or only HEL. But this is not complete yet

svn path=/trunk/; revision=24971
2006-11-29 19:12:06 +00:00
Magnus Olsen
1d4d4056b4 fixing some of the mix betwin hel and hal. (still not complete)
fixing some of dections of DDCREATE_HARDWAREONLY and DDCREATE_EMULATIONONLY,
we are now swicting betwin mix HEL and HAL, only HAL, or only HEL. But this is not complete yet
adding more comment so i do not forget in startuphal

svn path=/trunk/; revision=24970
2006-11-29 18:51:04 +00:00
Alex Ionescu
9f841739ff - Fix again
svn path=/trunk/; revision=24969
2006-11-29 17:57:56 +00:00
Alex Ionescu
f675588849 - Properly fix boot/build.
svn path=/trunk/; revision=24968
2006-11-29 17:35:15 +00:00
Christoph von Wittich
09f6f9fded skip binutils detection when no build date is returned (fix linux build)
svn path=/trunk/; revision=24967
2006-11-29 15:55:17 +00:00
Johannes Anderwald
b74888ef0d - fix build (commenting out calls)
svn path=/trunk/; revision=24966
2006-11-29 12:36:33 +00:00
Johannes Anderwald
76a4c9efc1 - fix build (commenting out calls)
svn path=/trunk/; revision=24965
2006-11-29 10:19:00 +00:00
Alex Ionescu
d466efb4fb - Fixup all the file headers with proper paths and authors.
- Move sysbus.c contents (a 4 line function) into bus.c.
- Unify initialization code.
- Delete and disable stall execution calibration (currently using the default). Will implement later in a more precise manner (this routine was bizarly setting the MHz of the CPU in the PRCB in some cases...).

svn path=/trunk/; revision=24964
2006-11-29 08:28:20 +00:00
Alex Ionescu
f09a042483 - Implement a working version of KeQueryPerformanceCounter based on the C implementation (without the strange MHZed-based code) and also support updating the performance timer during a clock interrupt, otherwise the value might become stale during the query.
- Update clock interrupt handler to update the performance counter, and also detect if someone changed the clock rate (but don't yet support this).
- Test app from previous revision now works beautifully.

svn path=/trunk/; revision=24963
2006-11-29 08:01:58 +00:00
Alex Ionescu
7cd2e3f498 - There's no such thing as Phase 2 HAL init.
- Only map the 0x0 physical address in HalpReboot when enabling warm-reboot, there's no need to map it during init and keep it allocated during the whole time.

svn path=/trunk/; revision=24962
2006-11-29 07:32:27 +00:00
Alex Ionescu
9b7daac048 - Test for High-Precision Timer (QueryPeformanceCounter). Verifies everything from the Win32 implementation to system call speed to HAL timer accuracy and functionality. Currently fails.
svn path=/trunk/; revision=24961
2006-11-29 07:31:25 +00:00
Johannes Anderwald
20dd3542a2 new / update french translations
See issue #1889 for more details.

svn path=/trunk/; revision=24960
2006-11-29 06:50:14 +00:00
Johannes Anderwald
89ba98d32c new / update french translations
See issue #1889 for more details.

svn path=/trunk/; revision=24959
2006-11-29 06:46:16 +00:00
Christoph von Wittich
4b21ce3c1f Renamed remotely
svn path=/trunk/; revision=24958
2006-11-29 00:38:07 +00:00
Christoph von Wittich
c5cd59c583 fix compilation of RC files
svn path=/trunk/; revision=24957
2006-11-28 23:46:26 +00:00
Magnus Olsen
94ef0f9c47 tempary fix : adding HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session
Manager\Environment\PROCESSOR_ARCHITECTURE =x86 fixing some installer like WinPcap, this should freeldr setup up
not be hardcode here. 

svn path=/trunk/; revision=24956
2006-11-28 22:56:08 +00:00
Johannes Anderwald
1a9cad6cd0 revert commit
svn path=/trunk/; revision=24955
2006-11-28 22:04:31 +00:00
Johannes Anderwald
3e8791008e oops i did it again
svn path=/trunk/; revision=24954
2006-11-28 21:46:54 +00:00
Magnus Olsen
ba66be6c8d start fixing dections of DDCREATE_HARDWAREONLY and DDCREATE_EMULATIONONLY,
we are now swicting betwin mix HEL and HAL, only HAL, or only HEL. But this is not complete yet

svn path=/trunk/; revision=24953
2006-11-28 21:45:51 +00:00
Johannes Anderwald
5acd4a4cc2 - shuffle resource files a bit
- a priori:
- mea culpa 
- hominem est erratum

svn path=/trunk/; revision=24952
2006-11-28 21:44:53 +00:00
Johannes Anderwald
8b802cd4a8 - mea culpa
- hominem est erratum

svn path=/trunk/; revision=24951
2006-11-28 21:30:54 +00:00
Magnus Olsen
b3bfeea3b4 fixing some of the mix betwin hel and hal. (still not complete)
svn path=/trunk/; revision=24950
2006-11-28 21:28:12 +00:00
Johannes Anderwald
2eded5bfd7 - shuffle resource files a bit
svn path=/trunk/; revision=24949
2006-11-28 21:20:25 +00:00
Magnus Olsen
4ce5377130 prepare work for StartDirectDrawHel Now I need write stub for each HEL that we do not have. I slather all this HEL even partly working once, when I did redesign ReactOS ddraw.
svn path=/trunk/; revision=24948
2006-11-28 21:14:30 +00:00
Johannes Anderwald
efd9b25185 - shuffle resource files a bit
svn path=/trunk/; revision=24947
2006-11-28 21:07:03 +00:00
Johannes Anderwald
289358813b - shuffle resource files a bit
svn path=/trunk/; revision=24946
2006-11-28 20:55:29 +00:00
Magnus Olsen
6448d0948e fixing a bug in Create_DirectDraw, did call on Main_DirectDraw_Initialize, but that function have been rewriten, and did not working as the old one.
svn path=/trunk/; revision=24945
2006-11-28 20:52:22 +00:00
Johannes Anderwald
40c598fe5b - shuffle resource files a bit
svn path=/trunk/; revision=24944
2006-11-28 20:48:52 +00:00
Johannes Anderwald
adebc4d2f4 - shuffle resource files a bit
svn path=/trunk/; revision=24943
2006-11-28 20:39:07 +00:00
Johannes Anderwald
50d5129634 - shuffle resource files a bit
svn path=/trunk/; revision=24942
2006-11-28 20:26:23 +00:00
Magnus Olsen
eefba2cf76 fixing some of the mix betwin hel and hal. (still not complete)
svn path=/trunk/; revision=24941
2006-11-28 20:22:02 +00:00
Johannes Anderwald
1d46571e84 - shuffle resource files a bit
svn path=/trunk/; revision=24940
2006-11-28 20:19:18 +00:00
Johannes Anderwald
79d3164089 - move resource files
svn path=/trunk/; revision=24939
2006-11-28 20:06:41 +00:00
Johannes Anderwald
a4b85228ed - add uk translation
- move resource files
See issue #1723 for more details.

svn path=/trunk/; revision=24938
2006-11-28 19:47:40 +00:00
Thomas Bluemel
2f38d6fab0 Fix wrong locale names...
svn path=/trunk/; revision=24937
2006-11-28 19:46:40 +00:00
Thomas Bluemel
9d871f4c4c Fix wrong locale names...
svn path=/trunk/; revision=24936
2006-11-28 19:44:41 +00:00
Thomas Bluemel
e7c19466ec Fix wrong locale names...
svn path=/trunk/; revision=24935
2006-11-28 19:42:15 +00:00
Thomas Bluemel
9a0505b7fa Fix wrong locale names...
svn path=/trunk/; revision=24934
2006-11-28 19:40:40 +00:00
Christoph von Wittich
48de8c59f9 -fix some linking issues
-generate import libraries

svn path=/trunk/; revision=24933
2006-11-28 19:40:03 +00:00
Thomas Bluemel
203483385f Fix wrong locale names...
svn path=/trunk/; revision=24932
2006-11-28 19:39:31 +00:00
Johannes Anderwald
7ad0b4b92d - add uk translation
- move resource files
See issue #1723 for more details.

svn path=/trunk/; revision=24931
2006-11-28 19:35:42 +00:00
Johannes Anderwald
e1878ebc5b - add uk translation
See issue #1723 for more details.

svn path=/trunk/; revision=24930
2006-11-28 19:21:26 +00:00
Johannes Anderwald
532d616363 - add uk translation
- move resource files
See issue #1723 for more details.

svn path=/trunk/; revision=24929
2006-11-28 19:17:12 +00:00
Johannes Anderwald
240e63b0ef -add uk translation
- move resource files
See issue #1723 for more details.

svn path=/trunk/; revision=24928
2006-11-28 19:07:27 +00:00
Johannes Anderwald
410d018382 - add italian translation
See issue #1786 for more details.

svn path=/trunk/; revision=24927
2006-11-28 18:46:31 +00:00
Johannes Anderwald
fde384536e - add italian translation
- add missing include for german translation
See issue #1791 for more details.

svn path=/trunk/; revision=24926
2006-11-28 18:40:06 +00:00
Johannes Anderwald
c4541ac0fa - move resource files
- add italian translation by  Gabriel Ilardi
See issue #1787 for more details.

svn path=/trunk/; revision=24925
2006-11-28 18:26:23 +00:00
Johannes Anderwald
e152530080 - move resource files
- add italian translation by  Gabriel Ilardi
See issue #1788 for more details.

svn path=/trunk/; revision=24924
2006-11-28 18:14:07 +00:00
Johannes Anderwald
5ff05c3a47 - italian translation by gabrielilardi
See issue #1789 for more details.

svn path=/trunk/; revision=24923
2006-11-28 17:41:41 +00:00
Johannes Anderwald
f852d57f69 - add italian translation
- by gabrielilardi
See issue #1793 for more details.

svn path=/trunk/; revision=24922
2006-11-28 17:34:58 +00:00
Johannes Anderwald
5f20736785 -fix multiline issue in the patch
See issue #1794 for more details.

svn path=/trunk/; revision=24921
2006-11-28 17:30:35 +00:00
Johannes Anderwald
475edbefd9 - "Corrected some grammar issues, translated de license part, and corrected
the menu letter shortcuts to make them match those used in windows."
- patch by  gabrielilardi
See issue #1794 for more details.

svn path=/trunk/; revision=24920
2006-11-28 17:25:38 +00:00
Johannes Anderwald
d3d87084ce - set correct svn properties
svn path=/trunk/; revision=24919
2006-11-28 17:15:44 +00:00
Johannes Anderwald
38a6892741 - add french translation
- rename resource files

See issue #1813 for more details.

svn path=/trunk/; revision=24918
2006-11-28 17:09:02 +00:00
Johannes Anderwald
f065b96907 - devmgmt German translation
See issue #1846 for more details.

svn path=/trunk/; revision=24917
2006-11-28 16:58:10 +00:00
Johannes Anderwald
e7cf9c20e5 - greek translation by Apal
- rename language files

See issue #1853 for more details.

svn path=/trunk/; revision=24916
2006-11-28 16:38:14 +00:00
Johannes Anderwald
8254c46300 - greek translation by Apal
See issue #1853 for more details.

svn path=/trunk/; revision=24915
2006-11-28 16:26:29 +00:00
Johannes Anderwald
b45fddc1f3 - greek translation by Apal
See issue #1853 for more details.

svn path=/trunk/; revision=24914
2006-11-28 16:22:43 +00:00
Johannes Anderwald
be4a027434 - insert resource file alphabetically
svn path=/trunk/; revision=24913
2006-11-28 16:20:30 +00:00
Johannes Anderwald
f8b22377a7 - czech translation for msconfig
- translation by preston
See issue #1887 for more details.

svn path=/trunk/; revision=24912
2006-11-28 16:14:29 +00:00
Johannes Anderwald
9342740f27 - fixed encoding in czech lang rc file for notepad
- patch by preston
See issue #1886 for more details.

svn path=/trunk/; revision=24911
2006-11-28 16:09:22 +00:00
Alex Ionescu
84348d0f29 - Cleanup more code in the deprecated IRQ implementation and use the newer implementations oF KeInitializeInterrupt and KeDisconnectInterrupt. Will allow easier debugging oF the HAL IRQ regression with the new, unused implementation.
svn path=/trunk/; revision=24910
2006-11-28 15:52:54 +00:00
Aleksey Bragin
54306c43a2 Wine sync of msi.dll
Warning: msi_ros.diff needs to be updated with new sql.tab.c and sql.tab.h before performing any future autosyncs!

Log:
22 hours ago Mike McCormack msi: Use MSI_QueryGetRecord in ACTION_AppSearchReg.
22 hours ago Mike McCormack msi: Use MSI_QueryGetRecord in ACTION_AppSearchComponents.
22 hours ago Mike McCormack msi: Use MSI_QueryGetRecord in ACTION_AppSearchGetSigna ...
22 hours ago Mike McCormack msi: Use MSI_IterateRecords when cloning properties.
22 hours ago Francois Gouget msi: Add a Portuguese translation (contributed by Ameri ... 
4 days ago Francois Gouget Replace SUBLANG_DEFAULT with the specific SUBLANG_XXX ... 
6 days ago Mike McCormack msi: Treat the SourceDir folder the same as TargetDir. 
6 days ago Mike McCormack msi: Load all folders in one query, rather one per ... 
6 days ago Mike McCormack msi: Only wait for custom actions that don't have msidb ... 
6 days ago Mike McCormack msi: Split process_action_return_value into two differe ... 
6 days ago Mike McCormack msi: Remove an unused parameter. tree | commitdiff 
6 days ago Mike McCormack msi: Fix use of integer fields in MsiFormatRecord. 
6 days ago Mike McCormack msi: Test MsiRecordGetString on an integer record field ... 
6 days ago Mike McCormack msi: Add a test for formatting records with strings. 
6 days ago Mike McCormack msi: Don't access the list of controls after the dialog ... 
6 days ago Mike McCormack msi: Create a function to free control data. 
7 days ago Mike McCormack msi: Fix an access after freeing memory. 
8 days ago Mike McCormack msi: Split msi_set_sourcedir_props into a separate ... 
8 days ago Mike McCormack msi: Spelling fixes. 
8 days ago Mike McCormack msi: Add another test for the SourceDir property. 
8 days ago Mike McCormack msi: Clean up parameters of msi_media_get_disk_info(). 
8 days ago Mike McCormack msi: Fix some memory leaks.
8 days ago Mike McCormack msi: Don't leak row handles.
11 days ago Mike McCormack msi: Fix a memory leak in load_folder().
11 days ago Mike McCormack msi: Remove unnecessary includes.
11 days ago Mike McCormack msi: Remove a level of indent in resolve_folder().
11 days ago Mike McCormack msi: Add a test showing the _Properties table is a ...
11 days ago Mike McCormack msi: Add a test showing which tables are special.
11 days ago Mike McCormack msi: Remove some redundant else statements.
2006-11-14 Mike McCormack msi: Split MSI_CreatePackage into two functions.
2006-11-14 Mike McCormack msi: Delete the tempfile created by GetTempFileName.
2006-11-14 Mike McCormack msi: Defer package deletion until after the database ... 
2006-11-14 Mike McCormack msi: Remove track_tempfile()'s unused 2nd parameter.
2006-11-14 Mike McCormack msi: Always delete temp files after creating them.
2006-11-14 Mike McCormack msi: Print a message if we fail to delete a file.
2006-11-14 James Hawkins msi: Notify the external UI handler when changing media.
2006-11-13 Mike McCormack msi: Only free a string in one place.
2006-11-13 Mike McCormack msi: Fix error handling.
2006-11-13 Mike McCormack msi: Track temp files as soon as they are created.
2006-11-13 Mike McCormack msi: Fail if we can't write out a temporary file.
2006-11-13 Mike McCormack msi: Fix an uninitialized variable in the test cases.
2006-11-13 Mike McCormack msi: Clean upstore_binary_to_temp.
2006-11-13 Francois Gouget Assorted spelling fixes.
2006-11-13 Francois Gouget msi: assert.h is not a local header (spotted by winapi ...
2006-11-13 Paul Vriens msi: Fix typo's (Coverity).
2006-11-13 James Hawkins msi: Fix a heap corruption bug by resizing the src ...
2006-11-10 Mike McCormack msi: Only log the Action, as it's the same as ActionReq ...
2006-11-10 Mike McCormack msi: Check whether the component is enabled first.
2006-11-10 Mike McCormack msi: Component attributes are bitmasks.
2006-11-09 Eric Pouech msi: Fixed bogus A -> W conversion. 
2006-11-09 Eric Pouech msi: Don't call PropVariantClear on uninitialized variants. 
2006-11-09 James Hawkins msi: Add support for continuous cabinets. 
2006-11-09 James Hawkins msi: Extract cabinets in ACTION_InstallFiles. ready ...
2006-11-09 James Hawkins msi: Move the file sequence check out of ready_media ... 
2006-11-09 James Hawkins msi: Factor out load_media_info from ready_media_for ...
2006-11-09 James Hawkins msi: Use disk_prompt from the media_info structure ... 
2006-11-09 James Hawkins msi: Only add text to the scroll control if text is ... 
2006-11-08 Stefan Leichter msi: Added stub for MsiGetFeatureValidStatesA/W. 
2006-11-08 James Hawkins msi: Factor out download_remote_cabinet and reuse extra ... 
2006-11-08 James Hawkins msi: Store the base URL of the MSI package if it is ... 
2006-11-08 James Hawkins msi: Factor copy_install_file out of ACTION_InstallFiles. 
2006-11-08 James Hawkins msi: Factor schedule_install_files out of ACTION_Instal ... 
2006-11-08 James Hawkins msi: Model the media_info structure members after the ... 
2006-11-08 James Hawkins msi: Use msi_alloc_zero instead of a helper function ... 
2006-11-08 James Hawkins msi: Use the file's component instead of passing an ... 
2006-11-08 James Hawkins msi: Use the media_info structure instead of passing ... 
2006-11-08 James Hawkins msi: Add more tests for installing from cabinets. 
2006-11-08 Mike McCormack msi: Fix a memory leak.
2006-11-07 Francois Gouget Assorted spelling fixes. 
2006-11-07 Mike McCormack msi: By default, install components locally.
2006-11-07 Mike McCormack msi: Fix WHERE IS (NOT) NULL queries. 
2006-11-07 Mike McCormack msi: Fix regression tests failing on Windows. 
2006-11-07 Mike McCormack msi: Split ACTION_CostFinalize into two functions. 
2006-11-06 Alexandre Julliard msi: Fixed definition of the MSIITERHANDLE type. 
2006-11-02 Mike McCormack msi: Avoid a memory leak by freeing actions scripts ... 
2006-11-02 Mike McCormack msi: Fix a memory leak. 
2006-11-02 Mike McCormack msi: Fix a handle leak in the tests. 
2006-11-01 Mike McCormack msi: Fix a typo. 
2006-11-01 Mike McCormack msi: Don't print traces for addref and release. 
2006-11-01 Mike McCormack msi: Search the patch package for source cabinet files. 
2006-10-31 Mike McCormack msi: Add a test showing a join doesn't need a WHERE ... 
2006-10-31 Mike McCormack msi: Use a simpler algorithm for joins. 
2006-10-31 Mike McCormack msi: Test the data returned by join queries in one ... 
2006-10-31 Mike McCormack msi: Remove tokens that aren't valid for MSI SQL. 
2006-10-31 Mike McCormack msi: Fix a trace. 
2006-10-31 Mike McCormack msi: Fix the ALTER and FREE keywords in the tokenizer. 
2006-10-31 Mike McCormack msi: Mark components with missing or outdated files ... 
2006-10-30 Mike McCormack msi: Split ACTION_UpdateInstallStates into two separate ... 
2006-10-27 James Hawkins msi: Extract cabinets based on DiskId, not LastSequence. 
2006-10-27 James Hawkins msi: Test the order in which cab files are handled ... 
2006-10-27 James Hawkins msi: Implement handling for the ErrorDialog and use ... 
2006-10-27 Mike McCormack msi: Avoid crashing if writeout_cabinet_stream fails.  
2006-10-27 Mike McCormack msi: Remove redundant null checks before MSI_EvaluateCo ... 
2006-10-26 Mike McCormack msi: Fix the join algorithm. 
2006-10-26 Mike McCormack msi: Allow UPDATE queries without a condition. 
2006-10-26 Mike McCormack msi: Update tables using records, not integer by integer. 
2006-10-26 Mike McCormack msi: Remove some unused functions. 
2006-10-26 Mike McCormack msi: Fixed the UPDATE query to work with explicit values. 
2006-10-26 Mike McCormack msi: Use msi_feature_set_state and msi_component_set ... 
2006-10-26 Mike McCormack msi: Create macro functions to set feature and componen ... 
2006-10-26 James Hawkins msi: Add tests for the UPDATE sql command. 
2006-10-25 Alexandre Julliard msi: Properly handle negative coordinates for mouse ...
2006-10-24 Mikołaj Zalewski resources: Change Dutch sublanguage code to SUBLANG ...
2006-10-24 Mikołaj Zalewski resources: Change German sublanguage code to SUBLANG ...
2006-10-24 Mike McCormack msi: Split code to get a file's verion into a separate ...
2006-10-24 James Hawkins msi: Add tests for installing from continuous cabinets. 
2006-10-24 James Hawkins msi: Allow more customization of install test files.
2006-10-24 James Hawkins msi: Remove unused function pointer and definitions.
2006-10-24 James Hawkins msi: Remove two unnecessary install tables. tree | commitdiff 
2006-10-24 James Hawkins msi: Add support for localizable strings in MsiDatabase ... 

svn path=/trunk/; revision=24909
2006-11-28 11:21:39 +00:00
Alex Ionescu
088b3cd98e - Fix prototype/definition of HalCalibratePerformanceCounter and properly implement it.
- Implement KeStallExecutionProcessor in its own assembly file isntead of using inlined GCC assembly, and align the loop to 16 bytes for more streamlined execution speed.
- Mask out clock interrupt during Phase 0 and Initialize clock interrupt on HAL Phase 1. This enables the HAL clock interrupt which was already written.
- Make the clock interrupt use HalpCurrentTimeIncrement instead of hardcoding a value.
- Re-implement HalpInitializeClock to allow for dynamic increments from 1ms to 15ms with appropriate rollovers and to call KeSetTimeIncrement to update timer values with the kernel.
- Implement HalSetTimeIncrement to allow changing the clock ms increment (but this isn't yet respected).
- Remove system/runtime update routines from the deprecated IRQ implementation and use the newer assembly ones already written, since we're now using the HAL clock interrupt. Remove other unused code.
- Fix more bugs in new hal IRQ implementation (that still isn't used yet due to regressions) and implement HalClearSoftwareInterrupt.

svn path=/trunk/; revision=24908
2006-11-28 08:11:14 +00:00
James Tabor
7df718a150 Add Wine defines for disk and memory meta files.
svn path=/trunk/; revision=24907
2006-11-28 07:47:07 +00:00
James Tabor
c468138553 Fixup example code and add the new helper function.
svn path=/trunk/; revision=24906
2006-11-27 22:04:17 +00:00
James Tabor
00b0562f90 Add a help function for gdi32.
svn path=/trunk/; revision=24905
2006-11-27 21:58:46 +00:00
Thomas Bluemel
cd70afcfd9 Forgot to commit a file
svn path=/trunk/; revision=24904
2006-11-27 21:43:53 +00:00
Thomas Bluemel
f6481b3da6 Rename resource files to match the locale names
svn path=/trunk/; revision=24903
2006-11-27 21:42:05 +00:00
Thomas Bluemel
2feb77e790 Rename resource files to match the locale names
svn path=/trunk/; revision=24902
2006-11-27 21:41:08 +00:00
Thomas Bluemel
e26a32ec7a Rename resource files to match the locale names
svn path=/trunk/; revision=24901
2006-11-27 21:39:30 +00:00
Thomas Bluemel
4fd1b81a3b Rename resource files to match the locale names
svn path=/trunk/; revision=24900
2006-11-27 21:38:23 +00:00
Thomas Bluemel
295c893759 Rename resource files to match the locale names
svn path=/trunk/; revision=24899
2006-11-27 21:37:22 +00:00
Thomas Bluemel
0d5d499f89 Rename resource files to match the locale names
svn path=/trunk/; revision=24898
2006-11-27 21:36:36 +00:00
Thomas Bluemel
eac3b60726 Rename resource files to match the locale names
svn path=/trunk/; revision=24897
2006-11-27 21:34:53 +00:00
Thomas Bluemel
c427824f3c Rename resource files to match the locale names
svn path=/trunk/; revision=24896
2006-11-27 21:33:31 +00:00
Thomas Bluemel
8d2259c84e Rename resource files to match the locale names
svn path=/trunk/; revision=24895
2006-11-27 21:30:49 +00:00
Thomas Bluemel
6dc2318fab Rename resource files to match the locale names
svn path=/trunk/; revision=24894
2006-11-27 21:29:29 +00:00
Thomas Bluemel
4f4ea68c99 Rename resource files to match the locale names
svn path=/trunk/; revision=24893
2006-11-27 21:27:34 +00:00
Thomas Bluemel
491641031d Rename resource files to match the locale names
svn path=/trunk/; revision=24892
2006-11-27 21:26:32 +00:00
Thomas Bluemel
42acbb95ed Rename resource files to match the locale names
svn path=/trunk/; revision=24891
2006-11-27 21:23:28 +00:00
Thomas Bluemel
376e78e608 Rename resource files to match the locale names
svn path=/trunk/; revision=24890
2006-11-27 21:21:47 +00:00
Thomas Bluemel
d845de7264 Rename resource files to match the locale names
svn path=/trunk/; revision=24889
2006-11-27 21:20:32 +00:00
Thomas Bluemel
72b75ef12d Rename resource files to match the locale names
svn path=/trunk/; revision=24888
2006-11-27 21:19:22 +00:00
Thomas Bluemel
867a0841ea Rename resource files to match the locale names
svn path=/trunk/; revision=24887
2006-11-27 21:15:38 +00:00
Thomas Bluemel
c4f03d4578 Rename resource files to match the locale names
svn path=/trunk/; revision=24886
2006-11-27 21:12:39 +00:00
Thomas Bluemel
9b839341b4 Rename resource files to match the locale names
svn path=/trunk/; revision=24885
2006-11-27 21:05:23 +00:00
Thomas Bluemel
200fbf762c Rename resource files to match the locale names
svn path=/trunk/; revision=24884
2006-11-27 20:37:42 +00:00
Thomas Bluemel
48dcba37a6 Rename resource files to match the locale names
svn path=/trunk/; revision=24883
2006-11-27 20:36:29 +00:00
Thomas Bluemel
7fd803c5ec Rename resource files to match the locale names
svn path=/trunk/; revision=24882
2006-11-27 20:35:10 +00:00
Thomas Bluemel
4476ee8796 Rename resource files to match the locale names
svn path=/trunk/; revision=24881
2006-11-27 20:34:01 +00:00
Thomas Bluemel
c4fa90de45 Rename resource files to match the locale names
svn path=/trunk/; revision=24880
2006-11-27 20:20:24 +00:00
Thomas Bluemel
b4d2f5f827 Rename resource files to match the locale names
svn path=/trunk/; revision=24879
2006-11-27 20:16:28 +00:00
Thomas Bluemel
cd76482b2b Rename resource files to match the locale names
svn path=/trunk/; revision=24878
2006-11-27 20:11:02 +00:00
Thomas Bluemel
781f5d2012 Rename resource files to match the locale names
svn path=/trunk/; revision=24877
2006-11-27 20:08:27 +00:00
Thomas Bluemel
e0cd86ea82 Rename resource files to match the locale names
svn path=/trunk/; revision=24876
2006-11-27 20:06:07 +00:00
Thomas Bluemel
fd68af87b0 Rename resource files to match the locale names
svn path=/trunk/; revision=24875
2006-11-27 19:55:14 +00:00
Thomas Bluemel
7ab2735513 Rename resource files to match the locale name
svn path=/trunk/; revision=24874
2006-11-27 19:35:37 +00:00
Magnus Olsen
d94aae38eb fixing a old bug in ibrowers I got irrate so long time now,
when u pressing on letter S it goes to full screen, but if I looked at the rc file
it is intend go to fullscreen when u press on Ctrl+S, fixed so it goes to fullscreen when u pressing Ctrl+S

svn path=/trunk/; revision=24873
2006-11-27 19:34:31 +00:00
Alex Ionescu
139ff99f50 - Cleanup HAL initialization code:
- Initailize the clock increment separately from the calibration of stall execution.
  - Raise IRQL to the current IRQL (basically a no-op) to force a standard PIC state. Will be needed for the new IRQ implementation when it'll work.
  - Scan commandline for PCILOCK and BREAK parameters during hal initalization. The former is not supported, only saved, while the latter causes a breakpoint just like the windows implemetnation.
  - Get the bus type (ISA, EISA, MCA) on startup to support bootup from NTLDR.
  - Validate HAL to match the kernel (checked kernel and UP kernel). Also make the kernel set the proper PRCB flags for this.
  - Initialize the CMOS lock.
  - Setup HAL Dispatch table and enable call to HalQuerySystemInformation in the kernel since it now works.
- Rewrite bus functions to get rid of the idea of "Bus handlers". This is a deprecated NT4 concept that ReactOS copied and only slows down performance.
  - Support custom private dispatch table PCI functions.
  - Provide default PCI functions.
  - Rewrite PCI functions using clean structures and code instead of magic macros and undocumented magic values. Use simple macros to generate PCI bus operations for write/read uchar, ushort and ulong.
  - Simplify function definitions for CMOS access.
  - Unify some dupli/tripi-cated code.
- Fix definition of HaliSetSystemInformation.
- Fix definitions of Bus Handler functions (add NTAPI).
- Add official BUS_HANDLER definition to NDK.
- Fix definition of HAL_PRIVATE_DISPATCH.
- Remove some derecated code (isa.c and mca.c).

svn path=/trunk/; revision=24872
2006-11-27 19:26:31 +00:00
Christoph von Wittich
5de49d3922 -create import libraries
-change target value to match the new C::B one (C::B r3286 SVN)
-simplify cpl debugging command

svn path=/trunk/; revision=24871
2006-11-27 19:24:10 +00:00
Alex Ionescu
3c8201f006 - Fix some bugs in the newer IRQL implementation for the HAL (that's still not used because it caused regressions).
svn path=/trunk/; revision=24870
2006-11-27 19:16:24 +00:00
Magnus Olsen
029d10b72a Patch from mail at colinfinck dot de (Colin Finck) for freeldr
See issue #1856 for more details.

svn path=/trunk/; revision=24859
2006-11-27 19:06:22 +00:00
Magnus Olsen
c2c4ceff11 Patch from hto@mail dot cnt dot ru for sysdm
See issue #1856 for more details.

svn path=/trunk/; revision=24857
2006-11-27 19:04:25 +00:00
Magnus Olsen
5d08bbb40d forget adding the french .rc file in early commit thx hpussin
svn path=/trunk/; revision=24856
2006-11-27 18:59:08 +00:00
Thomas Bluemel
1ae072c165 Fix typos (this is en-US)
svn path=/trunk/; revision=24855
2006-11-27 18:55:37 +00:00
Magnus Olsen
d85b9807fb patch from Simon Hanae mail : ja731j at ja731j dot homeip dot net, part 2 of 2
See issue #1876 for more details.

svn path=/trunk/; revision=24854
2006-11-27 17:05:59 +00:00
Magnus Olsen
fc374e1953 patch from Simon Hanae mail : ja731j at ja731j dot homeip dot net, part 1 of 2
See issue #1876 for more details.

svn path=/trunk/; revision=24853
2006-11-27 17:04:57 +00:00
Magnus Olsen
0460202c9a french translate by Heis Spiter heis_spiter at hotmail dot com
See issue #1883 for more details.

svn path=/trunk/; revision=24852
2006-11-27 16:53:24 +00:00
Magnus Olsen
74cca509ff french translate by Heis Spiter heis_spiter at hotmail dot com
See issue #1884 for more details.

svn path=/trunk/; revision=24851
2006-11-27 16:49:24 +00:00
Magnus Olsen
9e2ffe9e12 fixing a small bug : LTEXT, GROUPBOX, DEFPUSHBUTTON, PUSHBUTTON, ICON, EDITTEXT, LISTBOX, COMBOBOX (function DialogCMDBuild1) adding a emty style tag to thuse xml syntax.
fixing a small bug : Rename MENUSEPARATOR to MENUITEMSEPERATOR
Thanks frik85 

svn path=/trunk/; revision=24850
2006-11-27 15:45:23 +00:00
Thomas Bluemel
4e4647e514 Fix using a pointer to a temporary variable outside it's scope in RtlCreateUserProcess
svn path=/trunk/; revision=24849
2006-11-27 14:26:48 +00:00
Aleksey Bragin
f8446ca7cb i386BootDrive and i386BootPartition are ULONGs, and before saving a byte value they must be zeroed.
Thanks to Magnus for identifying the problem.

svn path=/trunk/; revision=24848
2006-11-26 21:46:45 +00:00
Thomas Bluemel
dbf2ea6e40 Fix GCC4 warnings
svn path=/trunk/; revision=24847
2006-11-26 21:44:57 +00:00
The Wine Synchronizer
6e7d40997d Autosyncing with Wine HEAD
svn path=/trunk/; revision=24846
2006-11-26 21:36:50 +00:00
Christoph von Wittich
6434224fea handle IFable data
svn path=/trunk/; revision=24845
2006-11-26 21:36:40 +00:00
The Wine Synchronizer
a4e979ee9c Autosyncing with Wine HEAD
svn path=/trunk/; revision=24844
2006-11-26 21:19:02 +00:00
The Wine Synchronizer
a3a5c88936 Autosyncing with Wine HEAD
svn path=/trunk/; revision=24843
2006-11-26 21:05:00 +00:00
The Wine Synchronizer
aa9927ced4 Autosyncing with Wine HEAD
svn path=/trunk/; revision=24842
2006-11-26 21:04:10 +00:00
Johannes Anderwald
b0a023a88a -only include files where if Property == value || If not Property != value
- example win32k.rbuild:
<ifnot property="ARCH" value="i386">                      
                      <file>dib24bppc.c</file>
                      <file>dib32bppc.c</file>
</ifnot> 

svn path=/trunk/; revision=24841
2006-11-26 20:05:42 +00:00
Christoph von Wittich
547b4bb0d2 compile asm files
svn path=/trunk/; revision=24840
2006-11-26 18:27:21 +00:00
Christoph von Wittich
4790fb5a3c use correct path for import libs
svn path=/trunk/; revision=24839
2006-11-26 16:57:25 +00:00
Christoph von Wittich
205512d48a -properly handle dependencies
-compile startup libs with -Wno-main

svn path=/trunk/; revision=24838
2006-11-26 14:20:55 +00:00
Aleksey Bragin
7a692fb597 Dmitry G. Gorbachev: Fix possible buffer overflow in FreeLdr
See issue #1881 for more details.

svn path=/trunk/; revision=24837
2006-11-26 13:37:50 +00:00
Eric Kohl
62d7a61d53 - Move global variables into a struct that is attached to the property sheet page dialog.
- Remove trailing whitespace and tabs.
- Clean up the source code.

svn path=/trunk/; revision=24836
2006-11-26 12:47:56 +00:00
Magnus Olsen
756f987da0 Patch from hto@mail dot cnt dot ru was commited in r24834 for the mouse.c changes.
I incress the counter to 500 so I manger getting his patch working even on my old p3
I got the mouse back on my p3 now. 


See issue #1837 for more details.

svn path=/trunk/; revision=24835
2006-11-26 10:56:02 +00:00
Magnus Olsen
aeea883a59 1. revers 24831 to 24833 userenv.h does not exists in ms psdk and shall move to folder include/ndk or include/reactos
2. do not create new private header, we already have one, but it is in wrong folder. 
3. This header should have been move long time ago. 
4. do not doing #include "userenv-priv.h" it will not found the header in syssetup/install
 

svn path=/trunk/; revision=24834
2006-11-26 10:39:50 +00:00
Johannes Anderwald
14d9f47180 - finally clean up userenv.h header
svn path=/trunk/; revision=24833
2006-11-26 10:10:29 +00:00
Johannes Anderwald
d725d33ed4 - include userenv base in order to use private userenv functions
svn path=/trunk/; revision=24832
2006-11-26 10:09:14 +00:00
Johannes Anderwald
a2e0d65ded - move ReactOS userenv only functions to userenv-priv.h
- set _USERENV_ when building

svn path=/trunk/; revision=24831
2006-11-26 10:08:11 +00:00
Magnus Olsen
eeaa0bd981 [AUDIT]
No suspicious code detected in mouse.c, the code is quite understandable and have comments
compare it also with ms ddk and no code was taken from it. 

svn path=/trunk/; revision=24830
2006-11-26 08:55:05 +00:00
James Tabor
313154b380 Fixed iType for non and file meta dc.
svn path=/trunk/; revision=24829
2006-11-26 00:53:07 +00:00
James Tabor
ad91a665c4 Add the Enhmetafile and Metafiledc structs.
svn path=/trunk/; revision=24828
2006-11-26 00:37:40 +00:00
James Tabor
e09513a12e Add the pDc_Attr to the main DC object. It will become a internal structure to Win32k.
svn path=/trunk/; revision=24827
2006-11-26 00:24:56 +00:00
Johannes Anderwald
0b25c86f26 -fix a critical bug in SamGetUserSid
"I wonder how this all has worked with this..." :o)

svn path=/trunk/; revision=24826
2006-11-25 22:46:03 +00:00
James Tabor
8076cb9096 Example coding for Enhance Meta File and Meta DC implementation.
- Add printing.c
- Add a new CreateEnhMetaFileW

svn path=/trunk/; revision=24825
2006-11-25 20:21:22 +00:00
Magnus Olsen
2607f10229 get rid of some of vs warings when we are using our own objidl, it did forget #undef some interface
svn path=/trunk/; revision=24824
2006-11-25 14:43:29 +00:00
Magnus Olsen
d3d8e81607 update the def file
svn path=/trunk/; revision=24823
2006-11-25 13:45:36 +00:00
Magnus Olsen
b8583857a7 Update dejavu font from 2.10 to 2.12, see the change log for dejavu for more info
Charter changes                                          Sans               Serif              Sans Mono          
old    : U+0180 Latin Extended-B                         100% (208/208)      89% (187/208)      57% (119/208)
update : U+0180 Latin Extended-B                         100% (208/208)      90% (188/208)      57% (119/208) 

old    : U+0400 Cyrillic                                  97% (249/255)      73% (188/255)      66% (170/255)
update : U+0400 Cyrillic                                  98% (251/255)      74% (190/255)      66% (170/255)    

old    : U+0500 Cyrillic Supplement                       90% (18/20)            (0/20)             (0/20)       
update : U+0500 Cyrillic Supplement                      100% (20/20)            (0/20)             (0/20)

old    : U+1400 Unified Canadian Aboriginal Syllabics         (0/630)            (0/630)            (0/630)      
update : U+1400 Unified Canadian Aboriginal Syllabics     23% (150/630)          (0/630)            (0/630)    

old    : U+2000 General Punctuation                       82% (87/106)       44% (47/106)       37% (40/106)     
update : U+2000 General Punctuation                       82% (87/106)       45% (48/106)       38% (41/106)     

old    : U+2100 Letterlike Symbols                        56% (45/79)         7% (6/79)          7% (6/79)       
update : U+2100 Letterlike Symbols                        59% (47/79)         7% (6/79)          7% (6/79) 

old    : U+2600 Miscellaneous Symbols                     99% (175/176)      17% (30/176)       84% (149/176)        
update : U+2600 Miscellaneous Symbols                    100% (176/176)      17% (30/176)       84% (149/176)   

svn path=/trunk/; revision=24822
2006-11-25 08:36:45 +00:00
Christoph von Wittich
95433bb0e5 add mingw, mingw-common and msvcrt libs where needed
svn path=/trunk/; revision=24821
2006-11-24 13:57:20 +00:00
Christoph von Wittich
5b88a78c5b -added cpl applet debugging support
-added naive target support (custom C::B version needed atm)
-handle linker options like baseaddress, entrypoint, stdlib and alignment
-use def files when linking dlls

svn path=/trunk/; revision=24820
2006-11-24 10:46:14 +00:00
James Tabor
6499dbb80f Add Enhanced Meta File header pointer to local DC structure.
svn path=/trunk/; revision=24819
2006-11-24 08:53:59 +00:00
Martin Fuchs
5ef0f18fee update TODO lisi
svn path=/trunk/; revision=24818
2006-11-24 07:21:29 +00:00
Magnus Olsen
97c3a7658a adding new ddraw.h header. we are delete wine ddraw.h header and using my header I wrote instead.
svn path=/trunk/; revision=24817
2006-11-23 21:49:29 +00:00
Magnus Olsen
4c93f74b77 adding some new ddk header, the info are base/got from windows xp ddk kit version 3790.1830
svn path=/trunk/; revision=24816
2006-11-23 20:19:54 +00:00
Magnus Olsen
5a943e65b8 adding two new ddk header, the info are base/got from windows xp ddk kit version 3790.1830
svn path=/trunk/; revision=24815
2006-11-23 20:13:17 +00:00
Magnus Olsen
708c9d5c71 adding one new ddk header, the info are base/got from windows xp ddk kit version 3790.1830
svn path=/trunk/; revision=24814
2006-11-23 20:09:07 +00:00
Magnus Olsen
2700e7a12c adding two new ddk header, the info are base/got from windows xp ddk kit version 3790.1830
svn path=/trunk/; revision=24813
2006-11-23 20:06:14 +00:00
Magnus Olsen
2d36c9b726 update : ddk header, the info are base/got from windows xp ddk kit version 3790.1830
svn path=/trunk/; revision=24812
2006-11-23 19:48:12 +00:00
Magnus Olsen
3ffeae3d50 update : ddk header, the info are base/got from windows xp ddk kit version 3790.1830
svn path=/trunk/; revision=24811
2006-11-23 18:49:17 +00:00
Magnus Olsen
5995f74c17 adding three new ddk header, the info are base/got from windows xp ddk kit version 3790.1830
svn path=/trunk/; revision=24810
2006-11-23 18:41:41 +00:00
Magnus Olsen
cc4a3eac21 1. adding two new ddk header, the info are base/got from windows xp ddk kit version 3790.1830
2. change bit of layout in usbkern

svn path=/trunk/; revision=24809
2006-11-23 18:38:19 +00:00
Magnus Olsen
dfeb2d6b14 adding two new ddk header, the info are base/got from windows xp ddk kit version 3790.1830
svn path=/trunk/; revision=24808
2006-11-23 18:35:38 +00:00
Aleksey Bragin
46e065bf4e Partial shell32 wine-sync
svn path=/trunk/; revision=24807
2006-11-23 16:57:58 +00:00
Aleksey Bragin
b1d908abe5 comctl32 auto-winesync
svn path=/trunk/; revision=24806
2006-11-23 15:49:53 +00:00
Christoph von Wittich
2de78f3052 -always keep the correct file extension (fixes building of control panel applets)
-escape defines (fixes loading of some project files)

svn path=/trunk/; revision=24805
2006-11-23 11:38:49 +00:00
Christoph von Wittich
6fd65c6155 better subsystem handling
svn path=/trunk/; revision=24804
2006-11-22 21:37:56 +00:00
Magnus Olsen
7635779c5e written header usbkern.h
svn path=/trunk/; revision=24803
2006-11-22 20:38:40 +00:00
Christoph von Wittich
4959cbb837 use the correct compiler for .c/.cpp files
svn path=/trunk/; revision=24802
2006-11-22 20:35:11 +00:00
Christoph von Wittich
d26cca517a fixed a function declaration
some minor formatting changes

svn path=/trunk/; revision=24801
2006-11-22 20:19:12 +00:00
Christoph von Wittich
f0e69a1925 -fix line endings
-set eol-style:native

svn path=/trunk/; revision=24800
2006-11-22 15:23:17 +00:00
Christoph von Wittich
754c08251f Code::Blocks backend
svn path=/trunk/; revision=24799
2006-11-22 15:18:51 +00:00
Aleksey Bragin
48953bfa71 The code expects synchronous behaviour here, so until a better solution exists, IoSynchronousInvalidateDeviceRelations() is going to be used.
This fixes the "Loading ndis.sys" problems.

Thanks to Dmitry Gorbachev, confirmed by Herve Poussineau.
See issue #1875 for more details.

svn path=/trunk/; revision=24798
2006-11-22 10:15:51 +00:00
Alex Ionescu
0b5c955898 - Update kernel fun.
svn path=/trunk/; revision=24797
2006-11-22 07:45:30 +00:00
Alex Ionescu
9bd055bf1e - Fix boot CD with 10 lines of code. That's right Fireball, go shame yourself!
svn path=/trunk/; revision=24796
2006-11-22 07:01:32 +00:00
Aleksey Bragin
732eec1ad8 Fix warning when compiled with DBG=0
svn path=/trunk/; revision=24795
2006-11-20 13:07:57 +00:00
Ged Murphy
0ecf7d35d0 tab -> space
svn path=/trunk/; revision=24794
2006-11-19 22:36:37 +00:00
Magnus Olsen
1cae12f9ba fixing a small bug, do not known why, with this change I getting 19 of 20 booting working for me. I have not update to lates svn yet.
old change I did get 11 of 12 booting working

svn path=/trunk/; revision=24793
2006-11-19 21:17:52 +00:00
Eric Kohl
3f3741f6eb Remove the obsolete STDCALL decorations from .def files.
svn path=/trunk/; revision=24792
2006-11-19 21:17:42 +00:00
Thomas Bluemel
eb04d1528e - Correct definition of DbgPrompt
- Add definitions for the CSTRING structure

svn path=/trunk/; revision=24791
2006-11-19 21:14:49 +00:00
Eric Kohl
8a2cb65283 Use '-enable-stdcall-fixup' linker option for all mingw builds.
svn path=/trunk/; revision=24790
2006-11-19 21:10:56 +00:00
Eric Kohl
b49d1db6bf - Remove some global variables.
- Clean up the source code.
- Display the names of the screen savers.
- Sort the screen saver list by the screen saver names.
- Disable setting controls when 'None' screen saver is selected.

svn path=/trunk/; revision=24789
2006-11-19 21:06:30 +00:00
Magnus Olsen
a919bba10c adding a wcsstrlen to make msg "Unable to start , error" when no screensaver have been set.
I hope it is all check we need. hpousin if u dislike this check u are wellcome to remove it. 
 

svn path=/trunk/; revision=24788
2006-11-19 20:35:11 +00:00
Aleksey Bragin
59f8fd9675 Add PsInitialSystemProcess declaration into winddk.h (fixes win32k compilation)
svn path=/trunk/; revision=24787
2006-11-19 20:24:46 +00:00
Magnus Olsen
07f3fc4c5d remove the start of reactos vbe directdraw support until it is ready. allot problem with current code. so I discde to remove it from reactos, untill it is stable.
svn path=/trunk/; revision=24786
2006-11-19 20:24:15 +00:00
Aleksey Bragin
0cd52c45f5 Add a typecast to remove a warning
svn path=/trunk/; revision=24785
2006-11-19 20:06:44 +00:00
Ged Murphy
fc73d244e4 - merge the latest code from my minibranch:
- use a static image to refer to when choosing your image brightness so returning to normal (100) displays the original colours
- allow  individual colours (RGB) to be adjusted as well as adjusting them all simultaneously
- apply the chosen brightness from the dialog to the main image
- implement greyscale, so an image can be displayed in black and white
- implement inverting of colours so an image can be displayed as a negative.



svn path=/trunk/; revision=24784
2006-11-19 19:49:45 +00:00
Johannes Anderwald
54b8308c2b - fix prototype
svn path=/trunk/; revision=24783
2006-11-19 19:43:54 +00:00
Magnus Olsen
67e5e2ef0a the new desgin of ddraw are in place some files need be rename.
1. this version does not working and contain allot of bugs
2. HAL are not setup right yet
3. HEL are not setup right yet
4. crashing VS when u try debug it from vs if it compile with gcc. 
5. implement HEL in user mode. 
6. remove some code that was working for it is not longer compatible with new desgin

svn path=/trunk/; revision=24782
2006-11-19 19:13:35 +00:00
Johannes Anderwald
d926e80e5c fix typo
svn path=/trunk/; revision=24781
2006-11-19 19:08:42 +00:00
Alex Ionescu
62f904960f - Change kdcom.sys to kdcom.dll.
- Remove all kdcom exports and files from HAL and link with kdcom.dll instead.
- Add support in freeldr for loading kdcom.dll (and theoretically any other import, such as the Code Integrity DLL for kernel-mode signing, but for now I've only tested this one).
- Refactor some of the HAL loading code to make it generic for any image.
- Load HAL manually when loading kernel, before processing imports, to make sure that HAL is index 1 in the loader modules and loads before KDCOM.
- Fix some build problems.

svn path=/trunk/; revision=24780
2006-11-19 19:00:03 +00:00
Alex Ionescu
4c45bdc2ea - Fix last-minute compiler bug.
svn path=/trunk/; revision=24779
2006-11-19 18:12:27 +00:00
Alex Ionescu
312f07d0e5 - Major changes to HAL/kernel loading and freeldr hacks:
- Add PE routines for traversing the import table and fixing up the imports.
  - Add routine for getting the LOADER_MODULE for a freeldr module by name.
  - Add the ability to load a not-yet-loaded-driver that's in an import entry (ie: dependencies). Only used for HAL now.
  - Map HAL in the same was as the kernel, instead of relocating it as a hack from within the kernel.
  - Refactor some routines to better share code. Don't read freed memory anymore.
  - Use LdrRelocateImageWithBias instead of quintuplicating relocation code.
  - Parse kernel and HAL imports while PE-loading from within freeldr.
  - Remove dozens of freeldr.c hacks from the kernel. Remove slow code which was making two copies of the parameter block and wasting over 30KB in static strings that were immediately copied to other strings...
  - Don't use HalModuleObject and NtoskrnlModuleObject anymore. Remove LdrSafePEProcessModule and other similar boot-time hacks. Reimplement MmGetSystemRoutineAddress.
- NDK/DDK fixes.
- Add KDCOM to bootcd/installation.

svn path=/trunk/; revision=24778
2006-11-19 17:53:31 +00:00
Aleksey Bragin
c157acf875 - Add a null-check to the IopLoadServiceModule.
- Add a DPRINT1 saying about the possible memory-overwrite bug. This is a hack to get a bootable tree, but still have a note when The Bug happens (look for 'weird' in the debug log).

svn path=/trunk/; revision=24777
2006-11-19 17:22:18 +00:00
Magnus Olsen
a24ea27b47 - Change movw $0x0000,%ax to xorw %ax,%ax (because of probable bug in binutils, which compiles the first instruction into something weird)
- Add segment registers save+restore in Int386() in FreeLdr (thanks to tamlin too)

svn path=/trunk/; revision=24776
2006-11-19 17:01:23 +00:00
Alex Ionescu
e59260f8cb - Add kdcom driver. It contains the exact same functions as in HAL/kdbg.c (not yet used).
- Fix halxbox compile.

svn path=/trunk/; revision=24775
2006-11-17 06:14:31 +00:00
Alex Ionescu
1a3b63b4c4 - Fix some more MSVC problems.
- Get rid of HAL's own intrisics and use intrin_i.h and/or MSVC intrinsics from intrin.h
- If anyone knows how to make a .DEF file that is not only understood by both compilers, but also creates a proper import library, please let me know.

svn path=/trunk/; revision=24774
2006-11-17 04:18:41 +00:00
Alex Ionescu
5ec8f2dc40 - MSVC VCPROJ Maker:
* Don't insert NDEBUG as a define, files define this manually already.
  * Don't add _CRT flags, since the RTM WDK defines them properly.
  * Force warning.h to be included just like the WDK does.
  * Disable WPO and LTCG for now.
  * Disable 64-bit warnings for now.
  * Fix assembly custom steps. NASMW for .asm, and GAS for .S.
- Please remember that you NEED the WDK 6000 RTM installed to use MSVC for building ReactOS. Don't change global build settings just because you were too lazy to download it and think that because your Win32 app doesn't need it, it's ok to break other people's native/system/kernel/hal builds. Change it locally if you're lazy, but don't revert these changes again.

svn path=/trunk/; revision=24773
2006-11-17 02:44:37 +00:00
Hervé Poussineau
deefef4098 Fix HAL compilation
svn path=/trunk/; revision=24772
2006-11-16 20:52:13 +00:00
Ged Murphy
265fc33b63 - Add test code for adjusting the brightness of an image. It's a bit of a hack at the moment, but adjusting the trackbar in the brightness dialog will alter the brightness of the small image.
- save pointer to the bitmap header and bitmap bits in the image struct.

svn path=/trunk/; revision=24771
2006-11-16 18:49:58 +00:00
Alex Ionescu
596c3bee62 - Reorganize HAL exports and export KeTRyToAcquireQueuedSpinlock and KeTryToAcquireQueuedSpinLockRaisetoSynch.
- Add stub for HalSetTimeIncrement.
- Cleanup CMOS-related routines (Get/Set environment value and get/set RTC). Fixup some prototypes as well. Inline HalpReadCmos/HalpWriteCmos instead of having a separate function.
- Fixup wrong protypes for various Queued Spinlock functions.
- Use __rdtsc intrinsic instead of Ke386RdTsc.
- Other MSVC compilation fixes.

svn path=/trunk/; revision=24770
2006-11-16 17:30:52 +00:00
Aleksey Bragin
4a33b4c040 Use Uint32x32To64() function instead of ULONG * ULONG. Fixes partition length truncation.
See issue #1871 for more details.

svn path=/trunk/; revision=24769
2006-11-16 17:26:31 +00:00
Magnus Olsen
cb8322a4e3 remove two compiling warnings thx frik85 to notice it.
svn path=/trunk/; revision=24768
2006-11-16 15:56:10 +00:00
Alex Ionescu
0cb9e0fd78 - Purposefully add 6 debug prints to RtlpGetRegistryHandle, which, while ndis.sys is initializing, should BSOD the system. I have seen this "RtlpGetRegistryHandle" BSOD randomly during boot (But always with the same stack trace), and a local HAL patch managed to cause it 100% of the time. I know that the problem had nothing to do with the HAL or registry paths, because it came up before too when I added debug prints to fstub. These 6 prints 100% reproduce the problem on my machine with GCC 3.4.5. It is my hope it will do the same for everyone. This is a nasty bug, either stack related or some critical structure is being damaged. I am breaking trunk because it's been here for a long time, but now I found a way to repro it so that we can work together to try finding it. In a way, trunk was always broken, but this patch should force a freeze. Please help.
svn path=/trunk/; revision=24767
2006-11-16 07:09:37 +00:00
Alex Ionescu
8c3485a307 - Remove internal HAL function from ntifs
- Make sure obfuncs.h includes obtypes.h if it's ever included separately.
- Add ARC_STATUS and ARC Error Codes.

svn path=/trunk/; revision=24766
2006-11-16 06:55:59 +00:00
Thomas Bluemel
a1e3bd38a5 Fix some compilation errors
svn path=/trunk/; revision=24765
2006-11-15 20:24:55 +00:00
Aleksey Bragin
8b93146888 Properly use the second param.
svn path=/trunk/; revision=24764
2006-11-15 16:57:15 +00:00
Aleksey Bragin
44eba681e0 Fix build by:
- Matching HAL MP HalStartNextProcessor() and commenting out a call to HaliStartApplicationProcessor() (because it needs ProcessorContext). Proper fix should be done.
 - Removing HalReportResourceUsage from MP version, and marking what it did differently as FIXME in the generic version.

svn path=/trunk/; revision=24763
2006-11-15 10:42:46 +00:00
Alex Ionescu
b649dd5293 - Export ExiTryToAcquireFastMutex from ntoskrnl, I had forgotten to export this ages ago when adding the other Exi*FastMutex* stuff.
- Remove fmutex.c and fastmutex functions from HAL. The whole point of having the Exi ones in the kernel was that HAL calls them through forward exports now (so any old driver can still link with HAL). Now we don't duplicate the implementation anymore.
- Remove DriverEntry, it's useless. Also move HalReportResourceUsage to halinit because it's a call-once-on-boot function much akin a HalInitPhase2 function, so delete resource.c
- Keep track of interrupt affinity and active processor mask each time a new CPU initializes.

svn path=/trunk/; revision=24762
2006-11-15 00:08:51 +00:00
Ged Murphy
6e572dc57a - split the main header file into seperate files as it was becoming annoying to maintain
- split the open / new file code
- Add a dialog for adjusting the brightness. The code for adjusting the brightness will follow soon, as will many other image adjusting dialogs.
- change the menus to show the image adjustment tools which will be present
- remove the horrible image property dialog code. I'll rewrite it at a later stage
- Set Arial as the default font
- fix a few API's to be 64-bit compatable
- reduce msvc warnings

svn path=/trunk/; revision=24761
2006-11-14 23:15:02 +00:00
Alex Ionescu
3047ba1df7 - Build fixes.
svn path=/trunk/; revision=24760
2006-11-14 22:42:59 +00:00
Alex Ionescu
7b4b9aec8f - Delete HAL cruft files.
- Implement (or cleanup + mark as implemented, these are 4 line functions) HalDisplayString, HalAcquireDisplayOwnership, HalSetDisplayParameters, HalQueryDisplayParameters, HalInitailizeProcessor, HalAllProcessorsStarted, HalStartNextProcessor, HalProcessorIdle, HalRequestIpi.
- Fix some prototype definitions and cleanup some formatting.

svn path=/trunk/; revision=24759
2006-11-14 20:59:48 +00:00
Hervé Poussineau
f651c1f8b6 Don't force screensaver file names to have at least 4 chars
Terminate the string just after the last read character.

svn path=/trunk/; revision=24758
2006-11-14 18:35:29 +00:00
Alex Ionescu
5a7f46becc - Implement HalSystemVectorDispatchEntry, KeFlushWriteBuffer, HalFlushCommonBuffer, HalAllocateCrashDumpRegisters.
- Add lots of missing PCI definitions to the DDK, and to the internal file pci.h
- Make HAL compilable with the WDK thanks to a nice hack/trick I found.

svn path=/trunk/; revision=24757
2006-11-14 18:17:33 +00:00
Johannes Anderwald
66920d049e - print debug logs on stdout
- sysreg is now ready for deployment

svn path=/trunk/; revision=24756
2006-11-14 17:10:26 +00:00
Johannes Anderwald
a6ae267b13 - dump reached checkpoints when an BSOD is detected
- dump rest of log file when a BSOD is detected
- write debugging data to ROSBOOT_DEBUG_FILE when reading from a pipe 
- update configuration files
- silence debug print in sym_file.cpp

svn path=/trunk/; revision=24755
2006-11-14 16:58:42 +00:00
Johannes Anderwald
b768b7fc2f - update testboot script
svn path=/trunk/; revision=24754
2006-11-14 16:51:32 +00:00
Magnus Olsen
bd41c3c6dc fixing Usurp bug repot in irc channel, if a screensaver does not exists it try execute a no exiting screensaver it make reactos freze on real hw and in qemu, acoring Usurp. With this change it does not longer freze and does not either try execute a no existing screensaver. Thx Usurp for testing it.
svn path=/trunk/; revision=24753
2006-11-14 16:50:47 +00:00
Johannes Anderwald
4db3b4d934 - ignore failure if dir already exists
svn path=/trunk/; revision=24752
2006-11-14 16:26:15 +00:00
Johannes Anderwald
dd14ad52ea - update svn properties
- improve error checking
- return -2 when the test fails
- add a few test configs (required for sysregtest target)

svn path=/trunk/; revision=24751
2006-11-14 12:58:52 +00:00
Johannes Anderwald
8269b5eebd - implement target sysregtest which compiles all required modules and generates an unattended bootcdregtest which is feed to sysregtest and executes the required tests
- fix regtest target

svn path=/trunk/; revision=24750
2006-11-14 12:47:42 +00:00
The Wine Synchronizer
2822449d9a Autosyncing with Wine HEAD
svn path=/trunk/; revision=24747
2006-11-13 15:20:30 +00:00
The Wine Synchronizer
d953e5a54b Autosyncing with Wine HEAD
svn path=/trunk/; revision=24746
2006-11-13 14:51:39 +00:00
Aleksey Bragin
23c4a96e42 Dmitry G. Gorbachev: After kbd controller init, the System Flag should be set to 1.
Fixes rebooting on real hardware (famous "Flushing cache" hang).
See issue #1842 for more details.

svn path=/trunk/; revision=24744
2006-11-13 12:40:02 +00:00
Aleksey Bragin
e884800c6c Delete unneeded files
svn path=/trunk/; revision=24743
2006-11-13 10:14:08 +00:00
Alex Ionescu
abe724dba9 - Make HalMakeBeep a bit nicer by making the PUCHAR typedef part of the TIMER constants.
svn path=/trunk/; revision=24742
2006-11-13 04:34:57 +00:00
Alex Ionescu
30c16d9652 - Add some more descriptive comments to HalpReboot (and rename it from HalReboot) since some of the operations lacked comments.
- Stall the CPU after each I/O command to simulate I/O delay.
- Flush write buffers before rebooting.
- Refactor sending the reset command since it's not always a matter of using the keyboard port.
- HalReturnToFirmware does a HalpReboot no matter what parameter is sent.

svn path=/trunk/; revision=24741
2006-11-13 04:33:45 +00:00
Alex Ionescu
0e8c70ba22 - Re-implement messy portio.c by using MSVC-compatible intrinsics instead. 20 lines of code become 1, yay!
svn path=/trunk/; revision=24740
2006-11-13 04:31:39 +00:00
Alex Ionescu
6652f94900 - Fix a typo in DbgkCreateThread which caused a boot-time crash/regression.
svn path=/trunk/; revision=24739
2006-11-13 01:47:10 +00:00
Alex Ionescu
afb3f6c5c3 - Fix build error.
svn path=/trunk/; revision=24738
2006-11-12 23:32:11 +00:00
Alex Ionescu
4d578c637e - FSTUB Patch for Mount Manager Support, Part 1:
- Create new /fstub directory in the kernel tree and move iomgr's xhal functions there.
  - Delete disk.c entirely from iomgr.c and spread it across fstub.
  - Entirely reimplement from scratch IoWritePartitionTable, IoReadPartitionTable, IoSetPartitionInformation, HalExamineMbr. Lots of bug fixes in terms of wrong assumptions and compatibility with weird partition tables.
  - Fix prototype of IoAssignDriveLetters, but for now, keep the old code (xHalIoAssignDriveLetters) because this has not been rewritten yet.
  - Move some functions to fstubex.c for future implementation, and some to volume.c. Move the HAL table to halstub.c
  - Make use of the hal.h file commited earlier.
  - Move IoAssignDriveLetters from halfuncs to iofuncs.h
  - Implement missing functions in HAL (IoRead/Write/Set PartitionInfo) and make them call into the ntoskrnl exports.

svn path=/trunk/; revision=24737
2006-11-12 22:51:06 +00:00
Alex Ionescu
03d84cb508 - Move out SEH-support routines from ntoskrnl/rtl to lib/rtl
- Re-implement the routines in intel syntax and also cleanup the formatting.
- Also re-implement the way the routines work, by following Matt Pietrek's c code that he wrote in one of his articles after looking at the disassembly.
- Also used a patch for mingw found on Google which contained some implementations in C.
- New changes mostly add protection during unwinding, faster speed, and add implementations for __except_handler2 and _abnormal_termination which were not previously present.

svn path=/trunk/; revision=24736
2006-11-12 22:43:43 +00:00
Alex Ionescu
b66b8bdcea - Implement IoSetCompletionRoutineEx, which is a safe way to set completion routines that almost all newer drivers will be using (XP+).
svn path=/trunk/; revision=24735
2006-11-12 22:39:09 +00:00
Alex Ionescu
1c3d0f91a1 - Argh, another forgotten file. Too many local changes :(
svn path=/trunk/; revision=24734
2006-11-12 22:37:52 +00:00
Alex Ionescu
9bb38bc012 - Apologies, forgot these two files for the Dbgk patch.
- Adds PsNtDllPathName constant string since we use it in two place (PsLocateSystemDll and DbgkpCreateThread).
- Adds PsImageNotifyEnabled boolean flag and sets it to true (although it should only be when a routine is installed, but ROS doesn't do this yet.

svn path=/trunk/; revision=24733
2006-11-12 22:36:21 +00:00
Alex Ionescu
29a0679654 - Implement MmAddVerifierThunks, MmIsDriverVerifying, MmIsVerifierEnabled.
- Not used by anything, these are for 3rd-party drivers and Driver Verifier.

svn path=/trunk/; revision=24732
2006-11-12 22:34:28 +00:00
Alex Ionescu
00418f00bf - Fix flags in DbgkpSectionToFileHandle
- Implement DbgkpCreateThread.
- Implement DbgkpSetProcessDebugObject.

svn path=/trunk/; revision=24731
2006-11-12 22:33:04 +00:00
Alex Ionescu
5415ad9497 - Cleanup fastio.c
- Implement FsRtlMdlReadDev (this function is not called, no risk of regressions).
- Move FsRtlAcquireFileExclusive and FsRtlReleaseFileExclusive from filelock.c to fastio.c.
- Bugfix these functions to actually call FsRtlEnter/ExitFileSystem.
- Huge cleanusp of filelock.c, but no code changes, except the usage of some simpler macros provided by NTIFS.H (with equivalent code).

svn path=/trunk/; revision=24730
2006-11-12 22:31:45 +00:00
Alex Ionescu
49c35d197f - Add CcFastMdlReadWait extern to ntifs.h
- Add FsRtlCompleteRequest macro to ntifs.h
- Add LDRP_DRIVER_VERIFYING flag to ldrtypes.h
- Add MM_DRIVER_VERIFIER_DATA and DRIVER_SPECIFIED_DRIVER_THUNKS to mmtypes.h
- Add MAXLONGLONG to ntdef.h.

svn path=/trunk/; revision=24729
2006-11-12 22:27:10 +00:00
Ged Murphy
c77ef10192 - fix a bug freeing memory for floating windows.
- ShowHideWindow needs no more than a Window handle

svn path=/trunk/; revision=24728
2006-11-12 20:13:39 +00:00
Johannes Anderwald
48e98be889 - add dbgprint tool as optional tool
svn path=/trunk/; revision=24727
2006-11-12 13:37:02 +00:00
Art Yerkes
4f1dd7e361 Broaden a lock to prevent a race for completion of the receive IRP. Fixes
some crashes while receiving from a fast remote host under load.

svn path=/trunk/; revision=24726
2006-11-12 10:01:56 +00:00
Eric Kohl
250bddf673 Fix a typo in the library name. kbdv.dll -> kbddv.dll
svn path=/trunk/; revision=24725
2006-11-11 21:29:10 +00:00
Johannes Anderwald
dff9cbd270 - fix typo, identation, grammar in multiple german resource files
- patch by maku
See issue #1847 for more details.

svn path=/trunk/; revision=24724
2006-11-11 21:13:38 +00:00
Johannes Anderwald
b32dec065a - fix text box alignment
- spotted by Coviti
- patch by Coviti

See issue #1860 for more details.

svn path=/trunk/; revision=24723
2006-11-11 20:53:52 +00:00
Eric Kohl
ff30ee9de7 KbdLayerDescriptor is a STDCALL function.
svn path=/trunk/; revision=24722
2006-11-11 20:33:06 +00:00
Johannes Anderwald
89655cd6a2 - use dbgprint tool to output debug messages
svn path=/trunk/; revision=24721
2006-11-11 16:41:52 +00:00
Johannes Anderwald
ee8ad2c335 - add a primitive tool to output text via DbgPrint
svn path=/trunk/; revision=24720
2006-11-11 16:07:35 +00:00
Aleksey Bragin
d112ca4391 Make SystemConfigurationDataQueryRoutine() store information about as many drives as needed (previous version of the code did the same).
Fixes "no partitions list" bug in usetup introduced in 24718.

svn path=/trunk/; revision=24719
2006-11-11 13:17:58 +00:00
Hervé Poussineau
eb77bd4e85 - Set correct flags when calling Nt* functions during file copy
- Fix reading of disks parameter in registry
- Keep FS name in unicode instead of char
- Don't hardcode more than once ReactOS directory on bootcd ('\reactos')
- Get screen dimensions only once (at startup)
- General cleanup (warnings...)
- Do some actions only if __REACTOS__ if defined. (I'm currently using them to debug usetup)

svn path=/trunk/; revision=24718
2006-11-10 21:00:24 +00:00
Hervé Poussineau
7885d994ff Move some files to subdirectories. No code change.
svn path=/trunk/; revision=24717
2006-11-10 18:20:00 +00:00
Johannes Anderwald
59ec217f00 - add a sample bootchecking script (running after 3rd boot)
- to enable 
1. copy testboot.bat.sample to testboot.bat
2. uncomment GuiRunOnce section in unattend.inf
3. add "cmd.exe /C %SystemRoot%\bin\testboot.bat"

svn path=/trunk/; revision=24714
2006-11-10 13:03:30 +00:00
James Tabor
065806e5f1 Sync up PATH_Arc and PATH_Ellipse with Wine.
svn path=/trunk/; revision=24713
2006-11-10 12:50:34 +00:00
Johannes Anderwald
445e9e71b5 - add documentation for GuiRunOnce
svn path=/trunk/; revision=24712
2006-11-10 11:17:17 +00:00
Johannes Anderwald
037bd166bc - implement a GuiRunOnce section for unatttended setup
- with this we launch programs after 3rd boot (programs / scripts)
- another a little step for sysreg :)

svn path=/trunk/; revision=24711
2006-11-10 11:16:38 +00:00
Ged Murphy
d22e48600b The one that got away...
...add file with the code for writing the font data

svn path=/trunk/; revision=24710
2006-11-09 20:45:52 +00:00
Ged Murphy
f5fe947177 - add some font data to the combo boxes
svn path=/trunk/; revision=24709
2006-11-09 20:28:29 +00:00
Ged Murphy
f56d1e28ca don't force usage of warning.h as it breaks building on msvc unless the WDK is installed.
svn path=/trunk/; revision=24708
2006-11-09 18:47:05 +00:00
Saveliy Tretiakov
0b70008f89 For windows with WS_EX_DLGMODALFRAME sysmenu can be opened only by right mouse click ( new fix, no movable buttons in calculator)
svn path=/trunk/; revision=24707
2006-11-09 18:34:36 +00:00
Hervé Poussineau
9f9c29b952 Correctly clear DO_DEVICE_INITIALIZING flag
See issue #1862 for more details.

svn path=/trunk/; revision=24706
2006-11-09 12:38:40 +00:00
Johannes Anderwald
534b73b00f - revert part of 24701 as requested on ml
"It's plain wrong to set eol-style:native for files of type .dsp, *.dsw, *.vcproj, *.sln and some other files like chinese resource scripts"

svn path=/trunk/; revision=24705
2006-11-09 06:58:56 +00:00
James Tabor
8110686c9c Incremental changes, adding new Create and Delete DC functions and support structures.
svn path=/trunk/; revision=24704
2006-11-09 01:45:42 +00:00
Ged Murphy
73ce7bc885 - create a pretty combobox custom control which resembles the one in MS Office as the standard Windows/ReactOS combo box is ugly
- change ShowHideWindow to make it more reliable
- fix the second combobox positioning within the text toolbar
- hide all windows except the toolbar at startup (these will eventually be read from the registry)

svn path=/trunk/; revision=24703
2006-11-08 19:27:57 +00:00
Ged Murphy
329371d730 - fix drawing on the memory device to be the same as the screen, not that it really matters as it's just test code, but it's always nice to have correct test code ;)
- change typo for compilation unit name

svn path=/trunk/; revision=24702
2006-11-08 17:37:30 +00:00
Johannes Anderwald
9b71253be1 set most of trunk svn property eol-style:native
svn path=/trunk/; revision=24701
2006-11-08 11:47:44 +00:00
Alex Ionescu
6ba0dad7f1 - Remove WRITE/READ_REG_XXX functions written in C and write them in optimized assembly (no stack usage).
- Also flush posted write buffers during WRITE_XXX operations.

svn path=/trunk/; revision=24699
2006-11-07 14:44:32 +00:00
Johannes Anderwald
7fa7aee0e8 - this should go to the debug port but not to the screen
svn path=/trunk/; revision=24698
2006-11-07 00:12:24 +00:00
Johannes Anderwald
4a941a0b25 - improve namedpipe_reader parsing of lines code
- it should now be able handle partial / full lines

svn path=/trunk/; revision=24697
2006-11-06 23:50:03 +00:00
Johannes Anderwald
19c938e607 - fix a devasting bug (introduced by me)
Sorry JaixBly...

svn path=/trunk/; revision=24694
2006-11-06 11:03:57 +00:00
Aleksey Bragin
cf213c0fc9 Revert 24074 by Saveliy Tretiakov until correct fix available. Fixes bug with moveable calculator buttons.
svn path=/trunk/; revision=24693
2006-11-06 10:20:40 +00:00
Christoph von Wittich
24fa497955 added missing copyright information
svn path=/trunk/; revision=24692
2006-11-05 22:55:11 +00:00
Christoph von Wittich
076aef2fb0 implemented timeout settings on startup and recovery page
svn path=/trunk/; revision=24691
2006-11-05 22:53:48 +00:00
Magnus Olsen
5b6863ed96 1. Fixed some vc warings and fault
2. Implement AcquireDDThreadLock, ReleaseDDThreadLock (does not working as it should yet)
3. Start making ddraw thread safe
4. Fixed some mirors bugs

svn path=/trunk/; revision=24690
2006-11-05 21:19:53 +00:00
Peter Ward
556dd785d7 - Added missing variable for the SMP build, noticed by Usurp.
- Trimmed trailing white-space.

svn path=/trunk/; revision=24689
2006-11-05 21:00:42 +00:00
Johannes Anderwald
69722e926c - read lines into a vector of string lines
- move os specific functions into an own file 
- fix a bug in command line options parsing
- add function for converting ansi2Unicode

svn path=/trunk/; revision=24688
2006-11-05 20:51:02 +00:00
Alex Ionescu
8be06d0e3b - Add hal.h from TinyKRNL containing internal definitions for fstub (MBR, Partiton Table, Partition Table Entry, Layout structures) and helper macros. Some structures come from disk.sys sample in the DDK.
svn path=/trunk/; revision=24687
2006-11-05 20:44:38 +00:00
Alex Ionescu
3065170214 - disk.sys: Don't fail IOCTL_GET_PARTITION_INFO for Partition 0. This is perfectly valid (and needed for some code I'll add later).
- IopGetDiskInformation: Treat the partition buffer as a simple PULONG array.
- KeUpdateSystemTime: Fix memory addressing to silence GAS compile-time warning.

svn path=/trunk/; revision=24686
2006-11-05 20:43:07 +00:00
Alex Ionescu
6e282d4611 - Simplify LPC Message allocation with an LpcpAllocateFromPortZone macro.
- Move LPC Macros/inlines to lpc_x.h
- Implement LpcRequestPort.
- Fix a bug in CsrTerminateProcess which was setting up incorrect sizes for the LPC message.
- Add some debug output to csrss.
- NTLPC works perfectly now, except for a bug on shutdown which doesn't properly close LPC processes.

svn path=/trunk/; revision=24685
2006-11-05 20:31:35 +00:00
Alex Ionescu
fb3a3c8a7f - Fix boot.
- Fix GUI boot (bootvid).
- Fix cmlib bug.

svn path=/trunk/; revision=24684
2006-11-05 20:28:59 +00:00
James Tabor
a57cbd2aa5 Part of the Win32k User32 Compatibility Project.
- Create IntLoadKeyboardLayout
- Code assimilated from win32k ntuser keyboard.c and Wine.
- Process and load a new keyboard layout.
- Creates the HKL for processing in NtUserLoadKeyboardLayoutEx.
- Load and computes module offset so NtUserLoadKeyboardLayoutEx can process it (read it in), load (EngLoadImage) and set the table entry point. This data is saved in a new structure connected to a list of keyboard layouts that was created during win32k init.


svn path=/trunk/; revision=24683
2006-10-30 19:38:37 +00:00
Alex Ionescu
f176b46108 - In my fear of accidentally comitting NTLPC = 1, I forgot to make the initial NTLPC = 0 commit, so LPC was never getting compiled at all. This fixes it.
svn path=/trunk/; revision=24682
2006-10-30 19:20:08 +00:00
Alex Ionescu
5134659f32 - Properly initialize the Port Message header in NTDLL's Csr Routines and Win32k's as well.
- It is now possible to boot into GUI and use the Command Line/Console (heavy LPC user) in NTLPC mode.
- NTLPC is still disabled in trunk however, because there are still bugs and missing functionality.

svn path=/trunk/; revision=24681
2006-10-30 19:12:17 +00:00
Alex Ionescu
f886617372 - Use Emanuelle's design for SMSS's LPC Code in CSRSS as well so that it can be portable between ROS LPC and NT LPC.
svn path=/trunk/; revision=24680
2006-10-30 18:45:22 +00:00
Alex Ionescu
6dc99e73a2 - Fix incorrect parameter shuffle in NtAcceptConnectPort. CSRSS now initializes properly and kernel32 gets loaded, but fails when connecting.
svn path=/trunk/; revision=24679
2006-10-30 17:04:49 +00:00
Alex Ionescu
be2a6c6ee3 - Add support for mapping the client section in NtAcceptConnectPort.
svn path=/trunk/; revision=24678
2006-10-30 16:54:45 +00:00
Alex Ionescu
bf01f1f77c - Fix parameter checks in NtAcceptConnectPort.
- Make CSRSS properly fill out the ServerView structure's length so that it can be validated by the kernel.

svn path=/trunk/; revision=24677
2006-10-30 16:50:20 +00:00
Alex Ionescu
a5aaf04a27 - Add support for secure LPC. However, we always return success atm because SeQueryInformationToken is not implemented. (Someone needs to refactor NtQueryInformationToken).
svn path=/trunk/; revision=24676
2006-10-30 16:45:54 +00:00
Alex Ionescu
91c97b2944 - Add support for Client/RemoteView in NtSecureConnectPort. Still lacking support for SID (needed for Csr)
svn path=/trunk/; revision=24675
2006-10-30 16:39:19 +00:00
Alex Ionescu
560282ce30 - Add correct calls to NtAcceptConnectPort if NTLPC is used. Now we freeze because CSRSS uses client/server views so I have to implement that.
svn path=/trunk/; revision=24674
2006-10-30 16:21:21 +00:00
Alex Ionescu
9eeadde533 - Implement NtRequestWaitReplyPort. This is a simple implementation that doesn't support Callback LPC Messages yet (Since we don't make use of them). SMSS can now send API messages on the Sb Port.
- With these APIs we now have a skeleton NTLPC that is fully NT-compatible. Thanks to ea's (Emanuele)'s smss work which he strived to make portable, building with NTLPC = 1 will also build a compatible smss that now works.
- CSRSS requires some changes since it was not written to be NTLPC portable.

svn path=/trunk/; revision=24673
2006-10-30 14:50:31 +00:00
Alex Ionescu
7000c5a210 - Implement NtSecureConnectPort so that clients can connect to SMSS. Does not yet support actual secure connections (with a SID) and will fail those requests. Also doesn't support memory-mapped LPC yet.
svn path=/trunk/; revision=24672
2006-10-30 14:46:56 +00:00
Alex Ionescu
b14168c73c - Implement NtCompleteConnectPort. SMSS can now completely accept new incoming connections.
svn path=/trunk/; revision=24671
2006-10-30 14:45:07 +00:00
Alex Ionescu
ed9d7c1816 - Implement NtAcceptConnectPort. This is a naive implementation that doesn't support memory-mapped LPC yet (since it's not used by SMSS). Such LPC messages will hit an ASSERT for now (when they do, I'll implement the missing functionalitY).
svn path=/trunk/; revision=24670
2006-10-30 14:44:05 +00:00
Alex Ionescu
2624bc881d - Implement NtReplyWaitReceivePortEx (And LpcpSave/FreeDataInfoMessage and LpcpMoveMessage). SMSS can now respond to connection attempts.
svn path=/trunk/; revision=24669
2006-10-30 14:42:07 +00:00
Alex Ionescu
fa1547f01d - Implement NtListenPort as a wrapper around NtReplyWaitReceivePort that only listens for connection requests. SMSS can now do this.
svn path=/trunk/; revision=24668
2006-10-30 14:32:18 +00:00
Alex Ionescu
850c098196 - Implement LpcpCreatePort (And LpcpInitializePortQueue). SMSS can now create the Sb API Port.
svn path=/trunk/; revision=24667
2006-10-30 14:30:20 +00:00
Alex Ionescu
86a52afde3 - Add lpc\ntlpc directory when NTLPC = 1.
- Add function stubs in appropriate files.
- Implement NtConnectPort (stub to NtSecureConnectPort). Implement NtReplyWaitReceivePort (stub to NtReplyWaitReceivePortEx). Everything else is unimplemented.
- Implement LpcpInitSystem and object callbacks LpcpDeletePort and LpcpClosePort.
- Add internal lpc.h header.

svn path=/trunk/; revision=24666
2006-10-30 14:28:50 +00:00
Alex Ionescu
8d1e84dfd6 - Implement the rest of Hard Error support.
- Kernel support is complete (except temporary LPC hack), and CSRSS properly receives the event and sends it off to win32csr's hard error handler (much like on NT). However, the handler doesn't call NtUserHardErrorControl nor do much of the complex sequence of events that NT does, instead, we only display a hello-world style message box. Anyone up for implementing the rest is welcome.

svn path=/trunk/; revision=24665
2006-10-30 14:20:45 +00:00
Alex Ionescu
1a98439492 - SMSS: Send QOS structure when creating new ports, it's not optional on NT LPC. Send maximum port length when creating new ports, it's not optional on NT LPC. Create 2 listening threads on NTLPC, instead of just one. [AUDIT: Unlock smlib, it's fully internal and specific to ROS without any relationship to NT. The author used clean-room tests and documentation].
- Fix various LPC structures in the NDK. Fix some prototypes too.
- Don't export PEPORT or PLPCP_PORT_OBJECT outside of /lpc and use PVOID isntead.
- Add a new RBUILD setting called NTLPC, which enables NTLPC when turned on.

svn path=/trunk/; revision=24664
2006-10-30 14:17:37 +00:00
Johannes Anderwald
48ffe89726 - zero complete buffer
- increase buffer when reading more data than current capacity

svn path=/trunk/; revision=24663
2006-10-30 12:58:35 +00:00
Christoph von Wittich
a1de6893f7 -force include of warning.h from WDK
-removed CRT_SECURE_NO_DEPRECATE because it is declared in warning.h
-set warning level to /W3
-set calling convention to stdcall
-use nasmw for asm files

svn path=/trunk/; revision=24662
2006-10-30 12:53:25 +00:00
Johannes Anderwald
963c6260b1 - use ReactOS_Debug as a default os when DBG && unattended setup mode is defined
- set timeout to zero in unattended mode && DBG defined

svn path=/trunk/; revision=24661
2006-10-30 12:41:17 +00:00
Thomas Bluemel
bcf2a300f2 Implement GetTickCount64
svn path=/trunk/; revision=24660
2006-10-30 11:56:28 +00:00
Christoph von Wittich
e343b07d1f now it is possible to build bootcd and bootcdregtest with the same tree (without changing any files)
svn path=/trunk/; revision=24659
2006-10-26 08:45:16 +00:00
Alex Ionescu
ef31ab5c96 - Make CSRSS register the default hard error port on startup.
- Stubplement the System Hard Error handler (it simply bugchecks)
- Fully implement ExRaiseHardError when called from user-mode so that the strings and parameters are properly captured into user-mode memory.
- Almost completely implement ExpRaiseHardError which is responsible for actually doing the error. However, ROS LPC is screwed up so sending the LPC Message crashes since the port isn't in a listening state or something.
- Would appreciate some advice on how to get the LPC message to CSRSS.
- Fix Get/SetErrorMode. The Native API uses an inverted value of SEM_FAILCRITICALERRORS, so this must be handled in win32.
- Cleanup formatting of RaiseException, and only normalize the paramter count if we're actualy going to use it.
- Implement LpcRequestWaitReplyPort as a big hack, but it should work.

svn path=/trunk/; revision=24658
2006-10-26 04:55:34 +00:00
Alex Ionescu
6d56cb39a6 - Fix dozens of missing typecast errors.
- Other MSVC/WDK compatibility fixes.

svn path=/trunk/; revision=24657
2006-10-26 01:49:51 +00:00
Martin Fuchs
3dbb7d20de add build script
svn path=/trunk/; revision=24656
2006-10-25 21:10:38 +00:00
Martin Fuchs
52ca28450e added GCC compatible chinese resource file translation of Larry Li <larryli@qq.com>
svn path=/trunk/; revision=24655
2006-10-25 20:58:04 +00:00
Martin Fuchs
cc6d35abef rename explorer-cn.rc to explorer-cn-msvc.rc (MSVC specific resource file encoding)
svn path=/trunk/; revision=24654
2006-10-25 20:54:46 +00:00
Christoph von Wittich
a94c4a796e fix some issues when reading from a named pipe
fix a typo
terminate qemu at exit (when using named pipes)

svn path=/trunk/; revision=24653
2006-10-25 20:02:01 +00:00
Alex Ionescu
6497d295c3 - Add some missing/internal definitions to proper headers.
- Get rid of FLUSH_TLB macros and use KeFlushCurrentTb and the MSVC_compatible instrinsic __invlpg;
- Fix some prototypes.
- Fixed unsigned/signed mismatches.
- Fix SEH usage in ExAllocatePoolWithQuotaTag.

svn path=/trunk/; revision=24652
2006-10-25 18:23:45 +00:00
Alex Ionescu
a900757d83 - Implement more of the Ke386 ASM macros for MSVC.
- Remove custom Set/Get Cr macros and use MSVC-compatible __read/__writecrX
- Remove custom WbInvd macro and use MSVC-compatible __wbinvd.

svn path=/trunk/; revision=24651
2006-10-25 17:15:11 +00:00
Alex Ionescu
b5e25167e2 - Move all ASM internal intrinsics to intrin_i.h. Request for KJK::Hyperion/hackbunny to look at the GCC ones and optimize/fix them up.
- Add MSVC versions for some of them (not yet complete).
- Fix the fact that KeGetLocalDescriptorTable was setting the LDT instead of retrieving it.
- Fix bug in LIST_FOR_EACH and LIST_FOR_EACH_SAFE which was setting the flink to NULL instead of checking if the flink is NULL. One more reason these damned macros should've never been used.
- Use MSVC-intrinsics when applicable (_disable/_enable, etc).
- Fix JOB_SET_ARRAY problems.
- Fix buffer overflow in SystemProcessInformation QSI_DEF.
- Fix some broken compares/arithmetic to due to lack of parens.
- Add some ASSERTS to some unknown functions that make pointer assumptions.

svn path=/trunk/; revision=24650
2006-10-25 16:37:46 +00:00
Christoph von Wittich
6f17cc84f7 -debug info can now be read from a pipe
-fixed a typo
-terminate the qemu process on linux

svn path=/trunk/; revision=24649
2006-10-25 16:02:47 +00:00
Christoph von Wittich
2aceefe1a5 use TCHAR instead of WCHAR
svn path=/trunk/; revision=24648
2006-10-25 12:49:35 +00:00
Christoph von Wittich
94663d29ba fix SYSREG_CHECKPOINT:USETUP_COMPLETE
svn path=/trunk/; revision=24647
2006-10-25 12:29:47 +00:00
James Tabor
e4ee4f1bab Commit tmp patch by dralnix, fixes Rev 24626 Breaks Linux Build, and windows build.
svn path=/trunk/; revision=24646
2006-10-25 01:30:19 +00:00
Johannes Anderwald
9529d06636 - add an checkpoint for the system regression tool
svn path=/trunk/; revision=24645
2006-10-24 20:21:30 +00:00
Christoph von Wittich
2da90d7544 -added -l parameter to list all available tests
-when no config file is specified use sysreg.cfg as default
-updated help text

svn path=/trunk/; revision=24644
2006-10-24 19:59:27 +00:00
Johannes Anderwald
8c625a375a - fix string define mess
svn path=/trunk/; revision=24643
2006-10-24 11:45:21 +00:00
Johannes Anderwald
5e8e6f57b6 - set svn:eol-style properties
- update makefile
- fix warning

svn path=/trunk/; revision=24642
2006-10-24 11:27:23 +00:00
Johannes Anderwald
985cb41a59 - fix typo in config file
- implement ROSBOOT_CRITICAL_APP
- implement a class which is responsible for file reading
- 

svn path=/trunk/; revision=24641
2006-10-24 11:21:17 +00:00
Alex Ionescu
bca3708172 - Optimize PsGetCurrentProcess as well.
svn path=/trunk/; revision=24640
2006-10-23 22:07:45 +00:00
Alex Ionescu
edaa6996f4 - Properly implement inline versions of KeGetCurrentThread and KeGetPreviousMode/ExGetPreviousMode, as well as KeGetPcr. This should significantly increase performance. (KeGetPreviousMode is reduced to 2 lines of code instead of 15 lines with 2 expensive jumps).
svn path=/trunk/; revision=24639
2006-10-23 22:01:25 +00:00
Alex Ionescu
2dae9ef970 - Fix/add some remaining prototypes.
- Add all the Nt functions to sysfuncs.lst and fixup some entries which were out-of-order. Unless I skipped anything (might've skipped 1 or 2 APIs), we should now have the same system call table as Windows 2003 SP1 (useful for my testing of ntdll.dll inside Windows).

svn path=/trunk/; revision=24638
2006-10-23 21:28:17 +00:00
Alex Ionescu
2e1f5d46f3 - Add some missing definitions to our NTIFS.h.
svn path=/trunk/; revision=24637
2006-10-23 21:24:16 +00:00
Alex Ionescu
57a9accaa9 - Add NtApphelpCacheControl, NtFilterToken (WARNING: PATENTED. TAKE CARE WHEN IMPLEMENTING).
- Add all the recently added functions to their proper place in the NDK.

svn path=/trunk/; revision=24636
2006-10-23 21:19:15 +00:00
Alex Ionescu
4ccf5bf0a4 - Implement NtSetEventBoostPriority, NtGetCurrentProcessorNumber, NtQueryPortInformationProcess, NtWaitForMultipleObjects32.
svn path=/trunk/; revision=24635
2006-10-23 20:49:52 +00:00
Alex Ionescu
20cab2c593 - Should fix the build.
svn path=/trunk/; revision=24634
2006-10-23 20:21:08 +00:00
Alex Ionescu
0df736c010 - Add NtGetWriteWatch, NtResetWriteWatch.
- Add NtCreateJobSet and define JOB_SET_ARRAY.

svn path=/trunk/; revision=24633
2006-10-23 18:35:13 +00:00
Alex Ionescu
0b311bdf68 - Add NtCreateKeyedEvent, NtOpenKeyedEvent, NtReleaseKeyedEvent, NtWaitForKeyedEvent.
svn path=/trunk/; revision=24632
2006-10-23 18:25:23 +00:00
Alex Ionescu
1bf94f2a3a - Add NtEnumerateSystemEnvironmentValuesEx, NtQuerySystemEnvironmentValueex, NtSetSystemEnvironmentValueEx.
- Fix some build brtakage.

svn path=/trunk/; revision=24631
2006-10-23 18:21:31 +00:00
Alex Ionescu
03aeec584e - Add NtGetDevicePowerState, NtIsSystemResumeAutomatic, NtRequestWakeupLAtency, NtSetThreadExecutionState.
svn path=/trunk/; revision=24630
2006-10-23 18:16:24 +00:00
Alex Ionescu
e46732dfc8 - Add NtAllocateUserPhysicalPages, NtMapUserPhysicalPAges, NtMapUserPhysicalPagesScatter, NtFreeUserPhysicalPages.
- Add NtAreMappedFilesTheSame.

svn path=/trunk/; revision=24629
2006-10-23 18:12:12 +00:00
Alex Ionescu
d99f845de8 - Add NtCompactKeys, NtcompressKey, NtLoadKeyEx, NtLockProductActivationKeys, NtLockRegistryKey, NtNotifyChangeMultipleKeys, NtQueryOpenSubKeys, NtQueryOpenSubKeysEx, NtSaveMergedKeys, NtUnloadKey2, NtUnloadKeyEx.
svn path=/trunk/; revision=24628
2006-10-23 18:05:06 +00:00
Alex Ionescu
909334f45c - Define EFI_DRIVER_ENTRY.
- Add NtAddDriverEntry, NtDeleteDriverEntry, NtEnumerateDriverEntries, NtModifyBootEntry, NtModifyDriverEntry, NtQueryDriverEntryOrder, NtSetDriverEntryOrder.
- These are for EFI (or pseudo-EFI if we ever emulate Vista).

svn path=/trunk/; revision=24627
2006-10-23 17:53:25 +00:00
Alex Ionescu
4fda8d1bb7 - Add NtAccessCheckAndAuditAlarm, NtAccessCheckByType, NtAccessCheckByTypeAndAuditAlarm, NtAccessCheckByTypeResultList, NtAccessCheckByTypeResultListAndAuditAlarm, NtAccessCheckByTypeResultListAndAuditAlarmByHandle, NtAccessCheckByTypeResultListAndAuditAlarmByHandleByGodHowMuchLongerCanTheseAPINamesGet.
- Last one is a joke.

svn path=/trunk/; revision=24626
2006-10-23 17:47:40 +00:00
Magnus Olsen
f11bf40b80 rewrite D3DParseUnknownCommand to use switch case instead
it looks better. Add a summer of msdn documentions how the first input parameter works. So u do not need read the whole doc for it. Add some more comment in the code

svn path=/trunk/; revision=24625
2006-10-23 17:37:51 +00:00
Johannes Anderwald
d9e412fef7 - revert 24623
svn path=/trunk/; revision=24624
2006-10-23 09:06:27 +00:00
Johannes Anderwald
7014cc1752 - really fix build
svn path=/trunk/; revision=24623
2006-10-23 08:54:19 +00:00
Johannes Anderwald
93d8160abd - fix build
svn path=/trunk/; revision=24622
2006-10-23 08:42:27 +00:00
Alex Ionescu
6979adfdc2 - Fix another build break... sorry for the SVN Server is fucked due to the CIA post-commit hook and is being unusable.
svn path=/trunk/; revision=24621
2006-10-23 05:55:06 +00:00
Alex Ionescu
4ed86823da - Fix some EFI prototypes and exports.
- Add BOOT_ENTRY definition.
- Fix build breakage from earlier commit.

svn path=/trunk/; revision=24620
2006-10-23 05:49:07 +00:00
Alex Ionescu
fbe74e44f9 - Implement DbgUiConvertStateChangeStructure. Win32/Native Debugging should be fully implemented now (and waiting on the kernel to support it.)
svn path=/trunk/; revision=24619
2006-10-23 05:08:19 +00:00
Alex Ionescu
1c38e47592 - Implement WaitForDebugEvent. Calls out to DbgUiConvertWaitStateStructure which is still unimplemented.
svn path=/trunk/; revision=24618
2006-10-22 23:47:12 +00:00
Alex Ionescu
aced9b0023 - Define DBGSS_THREAD_DATA and DbgSsGet/SetThreadData. This is what is located in DbgSsReserved[0] (an internal high-level structure that subsystem debuggers can use for whatever purposes they need). DbgSsReserved[1] is the actual native debug object used only by DbgUi in ntdll.
- Implement SaveThreadHandle, SaveProcesHandle, MarkThreadHandle, MarkProcessHandle, RemoveHandles and CloseAllProcessHandles to deal with this structure.
- Call these functions when required, except for WaitForDebugEvent which will set them up once implemented.

svn path=/trunk/; revision=24617
2006-10-22 23:28:33 +00:00
Hervé Poussineau
7ed56310ad Fix compilation in release mode
svn path=/trunk/; revision=24616
2006-10-22 21:22:46 +00:00
Alex Ionescu
8008f9d427 - Stub DbgUiConvertStateChangeStructure (this isn't done in kernel32 anymore) and export it.
- Implement and export DbgUiSetThreadDebugObject.
- Fix DbgUi* APIs to use DbgSsReserved[1], and not [0]. Still trying to figure out what [0] is for.

svn path=/trunk/; revision=24615
2006-10-22 21:19:34 +00:00
Alex Ionescu
756da82c2f - Implement helper routine DbgkpSectionToFileHandle and stub MmGetFileNameForSection (easy ObQueryNameString-based implementation to do later).
- Implement helpers DbgkpSuspendProcess and DbgkpResumeProcess based on KeFreeze/ThawAllThreads.
- Implement DbgkExitProcess, DbgkExitThread, DbgkMapViewOfSection, DbgkUnmapViewOfSection. Apart from DbgkCreateThread, these are the main notification APIs that Dbgk uses for user-mode debug events. (Mm code needs to be changed to call the map/unmap notifications. Ps already calls the exit/create ones).

svn path=/trunk/; revision=24614
2006-10-22 20:56:24 +00:00
Alex Ionescu
024e1d9725 - Implement KeThawAllThreads based on KeFreezeAllThreads.
- Fix a bug in KeFreezeAllThreads which was causing us never to actually parse the next flink.
- Fix a bug in KeFreezeAllThreads which was causing us never to leave the critical region we entered at the beginning.

svn path=/trunk/; revision=24613
2006-10-22 20:52:13 +00:00
Ged Murphy
6943ab32d9 update comctl32 to Wine 0.9.23
svn path=/trunk/; revision=24612
2006-10-22 20:49:59 +00:00
Alex Ionescu
2ce482998f - Fix KeFreezeAllThreads prototype and define it in the internal headers.
- Fix two bugs in KeSetBasePriorityThread and KeSetPriorityThread which were using an undefined value for "Lock Released" if the priority wasn't changing, potentially causing a missing spinlock release when none was required (and thus eventually freezing the scheduler)

svn path=/trunk/; revision=24611
2006-10-22 20:39:08 +00:00
The Wine Synchronizer
f332d881af Autosyncing with Wine HEAD
svn path=/trunk/; revision=24610
2006-10-22 20:23:59 +00:00
Alex Ionescu
d8762edcd7 - Implement DbgkPostFakeModuleMessages.
- Stub MmGetFileNameForAddress but write documentation on how to implement it (thanks to Filip Navara). For now it always returns ntdll.dll as a testhack.

svn path=/trunk/; revision=24609
2006-10-22 19:53:10 +00:00
Alex Ionescu
6d08ee060e - Add one of the basic OBJECT_ATTRIBUTES flags and don't fail any 3rd-party driver or application that might've been using it.
- Add missing member to DBGKM_LOAD_DLL.

svn path=/trunk/; revision=24608
2006-10-22 19:48:43 +00:00
Johannes Anderwald
5d119e76fa - set breakpoint before FreeConsole to have a bigger chance of output :)
svn path=/trunk/; revision=24607
2006-10-22 19:11:24 +00:00
Johannes Anderwald
913d10566a - add an checkpoint for the system regression tool
svn path=/trunk/; revision=24606
2006-10-22 18:52:01 +00:00
Johannes Anderwald
f17eb0c2a1 - implement FormatPartition settings
- fix a few bugs in the unattend setup code

svn path=/trunk/; revision=24605
2006-10-22 18:40:37 +00:00
Johannes Anderwald
2e2bcf5447 - add auto-format partition setting to unattend setup
svn path=/trunk/; revision=24604
2006-10-22 18:28:51 +00:00
Hervé Poussineau
b4c3d08f83 Remove multiple definition warning
Add a few missing error codes (taken from http://www.derkeiler.com/Newsgroups/microsoft.public.platformsdk.security/2004-02/0201.html)

svn path=/trunk/; revision=24603
2006-10-22 17:19:49 +00:00
Johannes Anderwald
d966387fc7 - implemented ROSBOOT_CHECKPOINT
- implemented ROSBOOT_DELAY_READ
- dump reached checkpoint in case of bsod / um-exceptions
- add error handling
- remove hardcoded constants

svn path=/trunk/; revision=24602
2006-10-22 11:27:45 +00:00
Magnus Olsen
98ae58da2b should have read msdn one more time for D3DParseUnknownCommand vaild command return sizeof of the struct * number of struct + 4 bytes, so it point to the end of the buffer.
svn path=/trunk/; revision=24601
2006-10-22 10:43:36 +00:00
Magnus Olsen
b780943388 full implement of D3DParseUnknownCommand + 1 undocument command that have been review by D3DParseUnknownCommand_show in rosapps/tests
svn path=/trunk/; revision=24600
2006-10-22 10:01:46 +00:00
Thomas Bluemel
39500f9853 - Change RtlMoveMemory to RtlCopyMemory where memory regions are never overlapping
- Re-Secure a few Nt stubs by adding SEH/Probing where neccessary

svn path=/trunk/; revision=24599
2006-10-22 09:06:58 +00:00
Magnus Olsen
68b1244df5 correct D3DHAL_DP2OPERATION struct
this include file should be rewriten 

svn path=/trunk/; revision=24598
2006-10-22 08:23:13 +00:00
Magnus Olsen
2c691e6c16 return code scanner for D3DParseUnknownCommand to figout what it support.
svn path=/trunk/; revision=24596
2006-10-22 07:15:06 +00:00
Alex Ionescu
5143e2364f - Implement DbgkpQueueMessage. This is the main bi-directional communication routine for the newer non-LPC Debug Object.
- Implement DbgkPostFakeProcessCreateMessages (and stub DbgkpPostFakeThreadMessages and DbgkpPostFakeModuleMessages). These are required when attaching to a process after threads have been created and modules loaded, so that the debugger can have a valid state.
- Still missing the two functions to Set/Clear the Debug Object, will do these next.

svn path=/trunk/; revision=24595
2006-10-21 19:26:54 +00:00
Johannes Anderwald
af697b174a - quit sysreg when checkpoint USETUP_COMPLETED is reached
svn path=/trunk/; revision=24594
2006-10-21 17:59:15 +00:00
Johannes Anderwald
c58fc3041a - add an option to store emulators pidfile in txt
- destroy emulator process when sysreg exits (windows only currently)
- the tool now works in windows

svn path=/trunk/; revision=24593
2006-10-21 16:12:42 +00:00
Thomas Bluemel
c4f8255e95 Remove the no longer used kjs library
svn path=/trunk/; revision=24592
2006-10-21 16:00:44 +00:00
Johannes Anderwald
c59a6328c4 - set svn-eol:style property
svn path=/trunk/; revision=24591
2006-10-21 08:56:23 +00:00
Johannes Anderwald
4d2dee8fd5 - provide a sample configuration file
- allow other address line resolver than addr2line

svn path=/trunk/; revision=24590
2006-10-21 08:55:34 +00:00
Johannes Anderwald
95126f2a4a - give sysreg a makefile
- allow compilation with gcc 4.1.1
- temporary disable execution of emulator command
- lets start testing :)

svn path=/trunk/; revision=24589
2006-10-21 08:34:00 +00:00
Johannes Anderwald
b75f825406 - implement a basic boot detection algorithm
- sysreg can now recognize some user mode detection and blue screen of deaths
- a few timing issues have to be sorted out in order make deployment ready

svn path=/trunk/; revision=24588
2006-10-21 00:13:52 +00:00
Johannes Anderwald
ee5b1449f9 - use timeout to define maximum runtime of emulator
svn path=/trunk/; revision=24587
2006-10-20 21:14:08 +00:00
Johannes Anderwald
74847bd6f5 - avoid using _tprintf
- use EnvironmentVariable as a singleton

svn path=/trunk/; revision=24586
2006-10-20 20:09:29 +00:00
Johannes Anderwald
98aa4d7f47 - fix compilation
- implement scanning of symbol directories

svn path=/trunk/; revision=24585
2006-10-20 19:40:33 +00:00
Johannes Anderwald
4ba2129226 * beginning of a system regression tools
svn path=/trunk/; revision=24584
2006-10-20 15:49:46 +00:00
Thomas Bluemel
66e157c5eb Minor simplification
svn path=/trunk/; revision=24583
2006-10-20 14:26:41 +00:00
Thomas Bluemel
b330be87df Prefer inline probing macros for base types
svn path=/trunk/; revision=24582
2006-10-20 14:20:27 +00:00
Thomas Bluemel
5d6a6fd0b8 Fix integer overflow vulnerability in NtPrivilegeCheck
svn path=/trunk/; revision=24581
2006-10-20 14:10:53 +00:00
Thomas Bluemel
de34ab04c1 Fix returning the context of the current thread in NtGetContextThread
svn path=/trunk/; revision=24580
2006-10-20 13:45:52 +00:00
Thomas Bluemel
cf98132b2f Use inline probing macro for handle variables
svn path=/trunk/; revision=24579
2006-10-20 13:33:24 +00:00
Thomas Bluemel
ccd9ed0a4e - Some minor Nt stub fixes
- Fix compilation with GCC4

svn path=/trunk/; revision=24578
2006-10-20 13:19:13 +00:00
Alex Ionescu
d9b18cdbb2 - Implement DbgkpConvertKernelToUserStateChange. I just remembered that there's actually 3 debug subsystems in NT: Win32, Native and Kernel, so this structure will still need to be heavily parsed at the Win32 level (in kernel32) before user-mode debuggers can work (so I'll have to write a small native-mode debugger test app to test this implementation first).
- Implement DbgkpMarkProcessPeb.

svn path=/trunk/; revision=24577
2006-10-20 06:12:54 +00:00
Alex Ionescu
2a37845ce0 - Fix kernel symbol loading.
svn path=/trunk/; revision=24576
2006-10-20 05:41:01 +00:00
Alex Ionescu
9c4178c05b - Define DBGKM_APINUMBER
- Implement DbgkpSendApiMessageLpc, DbgkpSendApiMessage, DbgkCopyProcessDebugPort, DbgkForwardException, DbgkFreeDebugEvent, DbgpWakeTarget.
- Close original handle in DbgkOpenHandles.

svn path=/trunk/; revision=24575
2006-10-20 05:16:04 +00:00
Alex Ionescu
0d09a4e5f9 - Fixup DEBUG_OBJECT definition.
- Implement DbgkpCloseObject.
- Implement DbgkpOpenHandles.
- Fix various bugs in the code and flag usage.
- Enable calling DbgkClearProcessDebugObject when terminating a process.

svn path=/trunk/; revision=24574
2006-10-19 20:08:52 +00:00
Ged Murphy
41ba900587 - test app to display both the system and device image lists.
- this app confirms the overlay icons in the device image list are part of the list.

svn path=/trunk/; revision=24573
2006-10-19 16:55:11 +00:00
Alex Ionescu
aef24e2a4a - Implement the entire kernel-mode native interface of Debug Objects, minus a few missing operations in NtWaitForDebugEvent:
- NtCreateDebugObject, NtDebugContinue, NtDebugActiveProcess, NtRemoveProcessDebug, NtSetInformationDebugObject, NtWaitForDebugEvent.
- Of course, the entire backend is stubbed out.
- Implement Debug object initialization (not called yet) and close(not done) and delete (done) callbacks.

svn path=/trunk/; revision=24572
2006-10-19 07:04:21 +00:00
James Tabor
42d7cdbd64 Add four more members to the Gdi user data (DC_ATTR) structure. Sort the list later.
svn path=/trunk/; revision=24571
2006-10-19 04:48:51 +00:00
Alex Ionescu
ad5eb998a6 - Fix SD charges to 2048 bytes instead of 2000.
- Fix a memory leak in ObOpenObjectByName. Object Create Information is now freed.

svn path=/trunk/; revision=24570
2006-10-19 03:09:19 +00:00
Alex Ionescu
fb85f19b88 - Implement Object Type Resource Lock, since object types are shared across all objects and thread-safety is critical. Used it everywhere where I think it's needed. Thomas, can you check if I missed anything please?
- Use interlocked increase/decrease for accounting variables inside the Object Type instead of acquiring a full lock or not being thread safe.
- Clear the creator type list of an object if it lost all its handles.
- Fix a bug in NtduplicateObject which was potentially derefernecing a garbage pointer (thanks Prefast!).

svn path=/trunk/; revision=24569
2006-10-19 02:54:48 +00:00
Alex Ionescu
51a79c26bd - Set OBJ_OPENLINK invalid for core object types.
- Initialize symbolic link in-line with other core object types.
- Use the SePublicDefaultUnrestrictedSd directly instead of building another SD.
- Create core directory objects with Nt* functions instead of Ob*, to insure full accounting and error-handling.
- Create core objects with OBJ_CASE_INSENSITIVE.
- Fix the huge ObInit hack which was manually inserting Directory and Type object types in the type directory, and now loop the type list. Now we don't skip the Process, Token, Thread, Job, Section types anymore.
- Support Quota Information during object allocation and deallocation isntead of ignoring it.
- Use interlocked decrement when touching the object type (since it's a shared structure. We don't use the lock yet, but we won't for this anyways, since it's a simple lockable operation).
- Use the right object key when freeing the object.
- Modify the allocation function for a more optimized way of allocating objects instead of having to keep track of two sets of variables. 
- Add various accounting variables.
- Make sure to properly handle allocations without object create info (ie, for object types). Now they get creator info and name info (which allowed us to cleanp the hack in ObInit).
- Add checks to see if Quota informatio is needed.
- Clear CreatorBackTraceIndex during allocation.
- Remove CreatorUniqueProcess hack from back when the idle thread was NULL.
- Do not zero out the header during allocation anymore, since this slows down the routine (instead, simply zero out the 2 fields that are NULL).
- Locate and clearly display that the fact we zero objects on creation is a HACK that needs to be fixed. (The Token code makes this assumption).
- Update HighWaterNumberOfObjects when needed.
- If caller didn't give pool charges, use the one from the object type.
- Clear the Total/HighWater* values for newly created object types instead of using random values.
- Properly typecast the WCHAR tag as CHAR.
- Insert each new object type in the ObTypeObjectType Type List.
- Set the Index member of each new object type and insert each new object type in the ObpObjectTypes array. This is crucial for object type enumeration when implemented.
- Fixup the way we insert new object types into the tree. Allow failure and don't return a type if we couldn't insert it, and only reference the type directory object if it actually exists.
- Move DOS Devices\"??" initialization in its own routine and fix it:
  - Use Nt APIs for all operations instead of raw I/O.
  - Create GLOBALROOT link to \
  - Create \??\Global link to \??

svn path=/trunk/; revision=24568
2006-10-19 02:20:32 +00:00
Hervé Poussineau
c4a6f8d938 Fix calling convention for class callbacks
svn path=/trunk/; revision=24567
2006-10-18 22:40:39 +00:00
Thomas Bluemel
cc6eeaab94 Fix gcc4 warning (thx to Herve)
svn path=/trunk/; revision=24566
2006-10-18 21:35:18 +00:00
Thomas Bluemel
c9ba938610 fix gcc4 warning
svn path=/trunk/; revision=24565
2006-10-18 21:18:02 +00:00
Alex Ionescu
7716bdddbb - A much simpler and featured RawFs driver that I had been working on while learning how to write simple FS drivers. Still missing some advanced functionality (Lite Stream File Objects and FS Notifications) because the Kernel doesn't fully support them yet. This one actually creates the \\Device names so that user-mode can even talk to it.
svn path=/trunk/; revision=24564
2006-10-18 18:00:42 +00:00
Alex Ionescu
1b96a22c6c - Combine PnpInit1/2 since they were called one after the other.
- Load RAW driver while loading boot drivers.
- Cleanup IoInitSystem a bit more.

svn path=/trunk/; revision=24563
2006-10-18 17:46:55 +00:00
Ged Murphy
fd5116b50c To stop the app hanging when enumerating, use a separate thread for enumerating exclusively
svn path=/trunk/; revision=24562
2006-10-18 15:50:05 +00:00
Alex Ionescu
9b785911ed - Some stuff I promised James. This is DC_ATTR from Win2K, IIRC (you called it GDI_USER_DATA). It changed a bit in XP, but now you have a working model. Also added some more flags/enums that I knew about and some font structures.
svn path=/trunk/; revision=24561
2006-10-18 06:00:31 +00:00
James Tabor
31280506e9 Set GDI_BatchLimit from TEB.
svn path=/trunk/; revision=24560
2006-10-18 03:55:28 +00:00
James Tabor
f7420ccbad Add more DCDWord constants and two more members in GdiUserData structure.
svn path=/trunk/; revision=24559
2006-10-18 03:54:35 +00:00
Ged Murphy
37741f841f fix a couple of warnings msvc highlighted
svn path=/trunk/; revision=24558
2006-10-17 23:11:02 +00:00
Ged Murphy
400f62c0f2 - enumerate devices in a separate thread so it doesn't stall opening of the main window
- check for problems with devices, e.g. disabled devices (currently missing code to display overlay icons)
- enable / disable the properties command dependant on what item is selected
- fix a few potential bugs

svn path=/trunk/; revision=24557
2006-10-17 15:56:41 +00:00
Magnus Olsen
fead15e683 adding windows 28592 (iso-2859-2) latin2 to ansi to utf -8 converter in roswebparser
svn path=/trunk/; revision=24556
2006-10-17 15:16:06 +00:00
Aleksey Bragin
95d350f6fe Having two cats with the same name in one repository is too much
svn path=/trunk/; revision=24555
2006-10-17 15:02:51 +00:00
James Tabor
7b814c1069 Add another member to GdiUserData structure.
svn path=/trunk/; revision=24554
2006-10-17 05:52:35 +00:00
James Tabor
7b6642d8a0 Implement Get & Set batch limit.
svn path=/trunk/; revision=24553
2006-10-17 05:30:54 +00:00
Alex Ionescu
07b9937721 - Merge some parts of IoInitSystem in the same main function instead of calling out to 10 external modules.
- Re-factor some code into smaller functions.
- Don't create some Object Directories twice, since now ExpCreateSystemRootLink does some of them.
- Add some failure paths to I/O Init.
- Implement a function to mark the boot partition DO_SYSTEM_BOOT_PARTITION in order to better catch some bugchecks.

svn path=/trunk/; revision=24552
2006-10-17 05:14:57 +00:00
James Tabor
6dc593f684 Win32k GDI Compatibility Project:
- Add new Gdi user data structure
- Fixed Meta constants
- Add new GetDCWord constant

svn path=/trunk/; revision=24551
2006-10-17 04:32:18 +00:00
Alex Ionescu
7c42b991f3 - One school day and two midterms later, I'm still the only one with enough time to fix a header. Can't wait to see who will be up for trying to fix booting...
svn path=/trunk/; revision=24550
2006-10-17 04:20:48 +00:00
Thomas Bluemel
9d10081480 Fixed usage of uninitialized variable warning
svn path=/trunk/; revision=24549
2006-10-16 15:55:33 +00:00
Alex Ionescu
3b6c356260 - Fix user-mode compilation.
svn path=/trunk/; revision=24548
2006-10-16 15:27:12 +00:00
Thomas Bluemel
503b41d90b Fix a typo. Thanks to Dmitry Timoshkov
svn path=/trunk/; revision=24547
2006-10-16 11:26:24 +00:00
Alex Ionescu
f9a7faa6e5 - Implement RtlGetElementGenericTable using ordered node/element.
- The splay tree generic table package is now complete. (The AVL package was done by Art earlier).

svn path=/trunk/; revision=24546
2006-10-16 04:08:09 +00:00
Alex Ionescu
a18f3458b2 - Fix GCC compile bug.
svn path=/trunk/; revision=24545
2006-10-16 03:53:48 +00:00
Alex Ionescu
d403bc14c4 - Create "AVL FUNCTIONS" section tag.
- Implement RtlENumerateGEnericTableWithoutSplaying.

svn path=/trunk/; revision=24544
2006-10-16 03:51:49 +00:00
Alex Ionescu
cac3dc3812 - Implement RtlLookupElementGenericTableFull.
- Implement RtlEnumerateGenericTable.

svn path=/trunk/; revision=24543
2006-10-16 03:47:47 +00:00
Alex Ionescu
cef2ebcee2 - Implement RtlIsGenericTableEmpty, RtlNumberGenericTableElements.
- Implement RtlLookupElementGenericTable.
- Implement RtlDeleteElementGenericTable

svn path=/trunk/; revision=24542
2006-10-16 03:39:49 +00:00
Alex Ionescu
dbb8a15d7c - Added some generic table routines to rtlfuncs.h so that they can be used in user-mode.
- Implemented RtlInsertElementGenericTable and RtlInsertElementGenericTableFull (Splay-Tree versions). Also implemented a helper function RtlpFindGenericTableNodeOrParent when we're not given one and need to locate it manually.
- Defined structure for generic table entries so that we can properly return user data and do the right allocations.

svn path=/trunk/; revision=24541
2006-10-16 03:19:14 +00:00
Alex Ionescu
693525bd5a - Organize file by AVL/Splay routines.
- Add RtlLookupFirstMatchingElementGenericTableAvl stub.
- Fixup some formatting/tag spacing and prototype definitions.

svn path=/trunk/; revision=24540
2006-10-16 02:49:23 +00:00
Alex Ionescu
d280d7f5a7 - Fix a bug in FreeLdr key creation (patch by Filip Navara).
- Make cmlib use the StorageTypeCount value since my new Cm code needs it.

svn path=/trunk/; revision=24538
2006-10-16 02:04:09 +00:00
Hervé Poussineau
6ea6b76acd Add some missing exports
svn path=/trunk/; revision=24537
2006-10-16 02:02:51 +00:00
James Tabor
2834696d89 Add object type COLORSPACE mask.
svn path=/trunk/; revision=24536
2006-10-16 01:39:34 +00:00
James Tabor
8835a6c1cb First of the Win32k-Gdi compatibility changes.
svn path=/trunk/; revision=24535
2006-10-16 01:29:27 +00:00
James Tabor
7e06d0e8cf Fix text line.
svn path=/trunk/; revision=24534
2006-10-16 01:22:21 +00:00
Hervé Poussineau
48a7051b20 Correctly return FALSE in SeAccessCheck if access is not granted
Don't always check the first ace in the DACL

svn path=/trunk/; revision=24533
2006-10-15 23:31:16 +00:00
Hervé Poussineau
09da758c64 Don't force a security descriptor to have an owner
svn path=/trunk/; revision=24532
2006-10-15 21:24:21 +00:00
Hervé Poussineau
842f4cfb17 Include intrin.h only if compiler is GCC.
svn path=/trunk/; revision=24531
2006-10-15 20:09:04 +00:00
James Tabor
ad7f6254da Fixed definition for NtUserLoadKeyboardLayoutEx.
svn path=/trunk/; revision=24530
2006-10-15 20:07:45 +00:00
Thomas Bluemel
e5cb57f9f5 Implement the advapi32 part of ImpersonateAnonymousToken
svn path=/trunk/; revision=24529
2006-10-15 19:58:57 +00:00
Thomas Bluemel
6f2586bb50 Add a stub for NtCompareTokens
svn path=/trunk/; revision=24528
2006-10-15 19:12:41 +00:00
Magnus Olsen
7c6ad03034 adding ansi to utf-8 converting
support follow code pages
oem437, oem850, windows28591 ( iso-2859-1 Latin 1)

svn path=/trunk/; revision=24527
2006-10-15 19:07:19 +00:00
Thomas Bluemel
ef9ac412e7 Implemented AddMandatoryAce
svn path=/trunk/; revision=24526
2006-10-15 16:52:25 +00:00
Thomas Bluemel
0414f87d02 Make some strings const
svn path=/trunk/; revision=24524
2006-10-15 13:07:03 +00:00
Thomas Bluemel
f0203ef66d Fixed one more optimization bug
svn path=/trunk/; revision=24523
2006-10-15 13:03:54 +00:00
Thomas Bluemel
5a34618d8e Sorry, accidently committed a bug...
svn path=/trunk/; revision=24522
2006-10-15 12:50:30 +00:00
Thomas Bluemel
f682bf63e7 Fix buffer overflow in KiGetCpuVendor, thanks to Michael Fritscher for reporting this bug.
svn path=/trunk/; revision=24520
2006-10-15 12:41:48 +00:00
Thomas Bluemel
809d98521c Remove ASSERT(FALSE) statement
svn path=/trunk/; revision=24516
2006-10-15 12:23:15 +00:00
Thomas Bluemel
fa1f06919a Fix optimization bug
svn path=/trunk/; revision=24513
2006-10-15 10:53:53 +00:00
Art Yerkes
789a033291 Fixed avl tree completely.
- We can't use the builtin node as a sentinel in exactly the same way as used
in the austin lib, so we account for that by treating the builtin node like
nil a few places.

svn path=/trunk/; revision=24510
2006-10-14 17:29:41 +00:00
Aleksey Bragin
8e756fbebc - Use loader memory types in memory allocation bitmap instead of 0 for free memory and 1 for allocated
- Slightly change / add comments

svn path=/trunk/; revision=24509
2006-10-14 13:36:21 +00:00
Hervé Poussineau
201f1d750e Better stub for ScmrSetServiceObjectSecurity
svn path=/trunk/; revision=24508
2006-10-13 21:14:07 +00:00
Magnus Olsen
275c588825 include/GL folders files update to mingw w32s api version 3.6
svn path=/trunk/; revision=24506
2006-10-13 19:54:59 +00:00
Hervé Poussineau
633ffc6a05 Set file security information (if provided in .inf file)
svn path=/trunk/; revision=24505
2006-10-13 19:50:02 +00:00
Thomas Bluemel
ff377bd3d2 Don't accidentally free the object name path in case it wasn't altered when resolving paths to handles
svn path=/trunk/; revision=24504
2006-10-13 19:19:16 +00:00
Hervé Poussineau
e53f089662 Disable DbgBreakPoint() in release versions. This lets "copy nul com1:" fail instead of crashing.
Next task: fix cmd.exe to let the command succeed

svn path=/trunk/; revision=24503
2006-10-13 14:31:57 +00:00
Thomas Bluemel
25bc0553d1 Fix building with GCC4
svn path=/trunk/; revision=24502
2006-10-13 12:52:24 +00:00
Johannes Anderwald
728ea14e4f - add cat, load, unload, infinst, nts2w32err, objdir, partinfo to build system
- fix includes in those modules

svn path=/trunk/; revision=24501
2006-10-13 10:56:52 +00:00
Johannes Anderwald
7ee180373e - add binpatch to build system
- fix a gcc warning

svn path=/trunk/; revision=24500
2006-10-13 09:56:30 +00:00
Johannes Anderwald
d9692ef1cd - give stats an rbuild file
- compile stats as an unicode app

svn path=/trunk/; revision=24499
2006-10-13 09:41:59 +00:00
Johannes Anderwald
d3e4805f4d - give tickcount a rbuild file
svn path=/trunk/; revision=24498
2006-10-13 09:16:34 +00:00
Aleksey Bragin
d200d605f4 Move unmaintained stuff (cis, os2, rosky, vms, and msvc6) to a respective branch [02/02]
svn path=/trunk/; revision=24497
2006-10-13 09:03:51 +00:00
Art Yerkes
a8e91f11af Fixen. Delete is still broken.
We now use BalancedRoot->Parent as the nil element and distinguish it from
the embedded element.
Fix null and root macros, assert macro and some other stuff.

svn path=/trunk/; revision=24495
2006-10-13 07:02:04 +00:00
Aleksey Bragin
20d422c02d - Fix a mistake in low memory pages allocation algorithm (commit-reviewers, where are you? :))
svn path=/trunk/; revision=24494
2006-10-12 20:46:07 +00:00
Hervé Poussineau
3dce4b0486 Read object security descriptors from .inf file. Apply them for registry keys and services and display a message for files
svn path=/trunk/; revision=24493
2006-10-12 09:01:16 +00:00
Hervé Poussineau
32ac32df07 Better stubs for RpcImpersonateClient and RpcRevertToSelf (taken from Wine)
svn path=/trunk/; revision=24492
2006-10-12 08:57:21 +00:00
Hervé Poussineau
cc0716b65d Send right security descriptor to InitializeObjectAttributes, so ntoskrnl won't fail
The code was working because we never tried to call RegCreateKeyEx with a security descriptor...

svn path=/trunk/; revision=24491
2006-10-11 23:11:59 +00:00
Hervé Poussineau
47ef13cf4a Replace incomplete and broken implementations of ConvertStringSecurityDescriptorToSecurityDescriptorW and ConvertStringSidToSidW by new ones
svn path=/trunk/; revision=24490
2006-10-11 22:14:05 +00:00
Hervé Poussineau
dc1d41df49 Add some definitions
svn path=/trunk/; revision=24489
2006-10-11 21:57:22 +00:00
Hervé Poussineau
a29de84b89 Don't try to signal init event, as it has been removed in r24413/24414
svn path=/trunk/; revision=24488
2006-10-11 18:25:22 +00:00
Thomas Bluemel
5cb6da33e5 Fixed InterlockedExchangeAdd
svn path=/trunk/; revision=24487
2006-10-11 17:41:42 +00:00
KJK::Hyperion
11962157c1 How could so much be so wrong in so little code is something future generations will forever ponder in vain. Fixed constraints on inline asm outputs for compare-exchange intrinsics
svn path=/trunk/; revision=24486
2006-10-11 16:07:45 +00:00
Thomas Bluemel
c0c399894e Some header upgrades
svn path=/trunk/; revision=24485
2006-10-11 11:44:40 +00:00
Thomas Bluemel
d395d0ad39 Fix polling of ShutdownNotify
svn path=/trunk/; revision=24484
2006-10-11 10:34:36 +00:00
Aleksey Bragin
e81472d5d0 - Add global var for keeping size of NLS data in pages
- Restructure memory-map building loop to create special descriptor for NLS data
- Fix a bug in memory-map building loop which lead to not covering last XXX pages of memory

svn path=/trunk/; revision=24483
2006-10-10 15:20:03 +00:00
Art Yerkes
79e9d9d8aa Added 'austin' AVL implementation and provide a binding for the AVL functions
in generictable.

Not tested, (but nothing relies on it yet).

Austin is
 Copyright (C) 2000 Kaz Kylheku <kaz@ashi.footprints.net>
 Copyright (C) 2000 Carl van Tast <vanTast@netway.at>

Copying, reuse and modification are permitted on liberal terms.

svn path=/trunk/; revision=24482
2006-10-10 12:31:16 +00:00
Aleksey Bragin
a8e5dde037 Add a stub to peloader.c
svn path=/trunk/; revision=24481
2006-10-10 10:42:07 +00:00
Aleksey Bragin
3bef467687 - Implement WinLdrLoadBootDrivers() / WinLdrLoadDeviceDriver() - to be able to load boot-time drivers
- Perform hardware detection in the beginning (I had to insert RegInitializeRegistry() hack because MachHwDetect initializes certain stuff in registry)
- Convert info from hwdetect to suitable form in LPB (code by Alex Ionescu, just moved/adapted). Debug routine added to output its contents.
- Move allocation memory for NlsData into "phase 0" (AllocateAndInitLPB)
- Fixed SystemRoot to be of a correct form (later will be autogenerated of course, now just for reference)

svn path=/trunk/; revision=24480
2006-10-10 10:38:45 +00:00
Filip Navara
493f953a0c Fix setting of SystemBootDevice and SystemStartOptions in registry.
Fix detection of MiniNT systems.

svn path=/trunk/; revision=24479
2006-10-10 00:22:04 +00:00
Filip Navara
7bbb81a0d4 Sort the key indexes in CM.
svn path=/trunk/; revision=24478
2006-10-09 23:43:06 +00:00
Hervé Poussineau
ca6e7110f5 - Start NetLogon service (lsass.exe)
- Fix lots of problems in error handling
- Some general cleanup

svn path=/trunk/; revision=24477
2006-10-09 19:19:28 +00:00
Hervé Poussineau
e16a26e1f2 Formatting and add a call to StartServiceCtrlDispatcher
svn path=/trunk/; revision=24476
2006-10-09 19:16:47 +00:00
Magnus Olsen
f86ee0a05c make our msvcrt bit more windows nt4/2000 compatible
do not link _i64toa and _i64tow to ntdll they are missing in windows nt4/windows 2000 ntdll. 

svn path=/trunk/; revision=24475
2006-10-09 18:42:24 +00:00
Magnus Olsen
80c28a9405 fixed so our taskmgr works in windows 2000
svn path=/trunk/; revision=24474
2006-10-09 18:01:56 +00:00
Thomas Bluemel
ca392ef651 Make sure the compiler doesn't optimize away writes to video memory
svn path=/trunk/; revision=24473
2006-10-09 16:37:27 +00:00
Thomas Bluemel
8a80403d2a Some portability fixes that address possible alignment issues. Read R. Chen's blog 10/06/06 for more information.
svn path=/trunk/; revision=24472
2006-10-09 15:09:50 +00:00
Aleksey Bragin
182fc37942 Revert r24430 changes (by Magnus Olsen) since they are incorrect (additionally confirmed by Filip Navara)
svn path=/trunk/; revision=24471
2006-10-09 15:02:33 +00:00
Thomas Bluemel
b79edc3b52 Fix compilation with GCC4
svn path=/trunk/; revision=24470
2006-10-09 14:59:10 +00:00
Thomas Bluemel
2600e04b68 Strings should be const char *. Fixes compilation with GCC4
svn path=/trunk/; revision=24469
2006-10-09 14:54:40 +00:00
Thomas Bluemel
b8dd6657bc Strings should be const char *. Fixes compilation with GCC4
svn path=/trunk/; revision=24468
2006-10-09 14:43:16 +00:00
Mindflyer
c255fa82a3 Change copyright to 1996-2006, because
a) our earliest version records show 1996
b) we are now in 2006

svn path=/trunk/; revision=24467
2006-10-09 12:37:03 +00:00
Aleksey Bragin
b6df2387ba Fix mkhive compiling by adding _NTSYSTEM_ define. This is needed after Thomas' fixes to headers.
svn path=/trunk/; revision=24466
2006-10-09 08:07:19 +00:00
Alex Ionescu
4ffb9d2c3e - Some misc changes to fix some of the 250+ warnings in the MSVC build.
svn path=/trunk/; revision=24465
2006-10-09 05:59:18 +00:00
Alex Ionescu
6951a4887c - Bootvid rewrite by Filip Navara (with some fixes by myself)
- HAL DMA enhancements by Filip Navara.
- CSRSS Console enhancements by Filip Navara.
- Win32k Primitive Queue/Input/Painting/Focus enhancements by Filip Navara.
- Other misc win32k/CSR bug fixes by Filip Navara.
- The new bootvid code has some bugs, but try out a GUI Boot!

svn path=/trunk/; revision=24464
2006-10-09 04:00:34 +00:00
Alex Ionescu
3012ee8072 - Initialize the registry in one shot, and allow it to fail and do the associated CONFIG_INIT_FAILED bugcheck.
- Initialize Io in one shot, with IoInitSystem.
- Locate the system DLL a bit later, since on the boot CD this creates a small incompatibility due to the wrong path being in use.

svn path=/trunk/; revision=24463
2006-10-09 01:16:28 +00:00
Alex Ionescu
b772538a22 - Add RtlInitEmptyAnsiString to DDK.
- Fix a pretty bad stack/memory corruption bug related to IoReassignSystemRoot.
- Combine IoInit2 and IoInit3 into IoInitSystem, and make it return a BOOLEAN, and handle error with the appropriate IO1_INIT_FAILED bugcheck. Will combine IoInit1 soon.

svn path=/trunk/; revision=24462
2006-10-08 23:46:26 +00:00
Alex Ionescu
2b1ade4723 - Remove InitSharedUserDataPage since this entire function is not needed anymore due to the recent ARC improvements.
- Call IoAssignDriverLetters with the proper parameters, and give it a chance to update the SystemRoot path (although our version doesn't yet do this).

svn path=/trunk/; revision=24461
2006-10-08 22:50:26 +00:00
Alex Ionescu
d4b5fef3d6 - Finalize ARC Boot changes:
* Rename IoCreateArcNames to IopCreateArcNames and set it to NTAPI, as well as pass the loader block as a parameter.
  * Reduce buffers to 128 bytes, since ARC Paths don't get longer then that.
  * Optimize stack usage by using a single ANSI_STRING instead of 3 or 4.
  * Optimize stack usage by using a single ansi buffer, not 2 or more.

svn path=/trunk/; revision=24458
2006-10-08 21:38:45 +00:00
Alex Ionescu
b5f79593de - Optimize IopApplyRosCdromArcHack by not searching for the second copy of ntoskrnl if we already found the first.
- Also optimize stack usage by only using an ANSI buffer instead of having another Unicode buffer and unicode strings. Saves 530 bytes of stack.

svn path=/trunk/; revision=24457
2006-10-08 21:16:20 +00:00
Alex Ionescu
5e214ceaa0 - Part 2.5 of ARC Boot changes. Re-factor IoCreateArcNames not to use a list-entry of detected disk from pool that gets looped and de-referenced, but instead use a simple loop which calls a function that gets disk information one-by-one (IopGetDiskInformation), so that it's used on the spot instead of allocated, linked, and retrieved later.
- Inline IopAssignArcNamesToDisk to reduce some stack size abuse and too much parameter shuffling.
- Stack use is still very inefficient, will fix next.

svn path=/trunk/; revision=24456
2006-10-08 21:09:00 +00:00
Thomas Bluemel
73c2dc5053 Some header fixes
svn path=/trunk/; revision=24454
2006-10-08 20:28:03 +00:00
Alex Ionescu
1047de88bf - Greatly simplify and optimize IoCreateArcNames by using ARC data from FreeLDR/NTLDR (now nearly 100% compatible!) instead of querying registry data (which FreeLdr had already set up, so we cached those values like ntldr does).
- Last step is to stop using a list of drives and pool allocated entries, to optimize memory usage and re-factor the code.

svn path=/trunk/; revision=24453
2006-10-08 19:59:53 +00:00
Alex Ionescu
c537eb20f2 - Have FreeLDR fill out ARC_DISK_SIGNATURE information for each detected disk, as it's filling the registry.
- Add code to KiRosFrldrLpbToLpb to convert this array to the official ARC_DISK_INFORMATION structure that contains LIST_ENTRYies for each ARC_DISK_SIGNATURE, and initialize the ArcDiskSignatureListHead.
- The end result will be that in the next patch we can remove a bunch of registry-reading code in IoCreateArcNames.

svn path=/trunk/; revision=24452
2006-10-08 19:34:16 +00:00
Alex Ionescu
7a1b73cf84 - Part 2 of ARC boot changes: Major modifications done to the existing code, as well as re-formatting and cleanup. Floppy ARC names are not created anymore (they don't exist), and CD-ROM ARC name is only created 1) when there is a boot CD and 2) only for the boot CD. This mimics NT functionality.
- Optimize some code paths, mostly by not querying the whole GET_DRIVE_GEOMETRY IRP twice and reducing some buffer usage. Also re-factor some code better into smaller functions.
- Document and work around currently FreeLDR incompatibility (lack of ARC_DISK_INFORMATION) data in LoaderBlock.

svn path=/trunk/; revision=24451
2006-10-08 16:58:03 +00:00
Aleksey Bragin
b234cb305e - Add dumping boot drivers list, remove unneded comment
- Implement WinLdrScanRegistry() (based on freeldr's already existing implementation) which searches for boot-loading drivers
- Implement WinLdrAddDriverToList() - it correctly fills an entry in the BootDriversList in LoaderParameterBlock

svn path=/trunk/; revision=24444
2006-10-08 10:06:06 +00:00
Aleksey Bragin
3c3080f16b - Add simple support functions to be able to use more RTL in FreeLdr
svn path=/trunk/; revision=24442
2006-10-08 08:54:44 +00:00
Alex Ionescu
6d262bb755 - Whoops, don't call IopReassignSystemRoot twice.
svn path=/trunk/; revision=24441
2006-10-08 07:59:30 +00:00
Alex Ionescu
66f4128216 - Part 1 of ARC boot cleanups/changes: Create a valid \\SystemRoot symbolic link as the system is booting, which points to the ARC name, then, once drivers have loaded, re-assign it to the proper NT Device name. Added proper security descriptors and flags to symbolic links, as well as proper bugchecks when required.
- Kept and cleaned up the ROS hack for CD-ROM boot.

svn path=/trunk/; revision=24440
2006-10-08 07:53:37 +00:00
Alex Ionescu
9307f32ce3 - More re-shuffling of initialization calls, including enabling access to the blue screen much much earlier (no point in doing it so late, but this change is not that useful since soon we'll have bootvid).
- Split Po init in two, so the early Po init (which we'll need to do eventually) doesn't depent on the later Po init (which uses a PnP notification which depends on the Io system).
- Make I/O initialize quite a bit later.

svn path=/trunk/; revision=24439
2006-10-08 04:47:26 +00:00
Alex Ionescu
4b00ba5d4d - Inline and make some slight correctiions to KiInitailizeSystemClock, since it's based on the Ex subsystem, not Ke. Add code for boot-time timezone bias, but currently disabled because I need to implement a function to read configuration registry data at startup.
- Improve Init bugchecks to give the exact module that failed. Add Kd initilization in the same block as the other subsystems.
- Rename and re-arrange some initlization calls.

svn path=/trunk/; revision=24438
2006-10-08 04:05:27 +00:00
Alex Ionescu
9088db842e - Stub LdrVerifyMappedImageMatchesChecksum.
- Separate locating the system DLL from initializing it.
- Implement split-phase PsInitSystem for Phase 0 and 1, and make system dll initialization as part of phase 1.
- Add MmVerifyImageIsOkForMpUse and MmCheckSystemImage to validate the system DLL.
- Add a separate bugcheck for each failure in PsLocateSystemDll, matching with the NT bugchecks that would occur.

svn path=/trunk/; revision=24437
2006-10-08 02:10:34 +00:00
Alex Ionescu
ebd9a573ec - In NTLDR boot, try to get the first kernel physical address from the loader entries.
- Fixup HAL's image base in the loader parameter block, since we load it at a different place then freeldr tells us.
- We've reached a dead end in NTLDR compatibility. Out memory manager initialization code makes some assumptions which are totally incompatible with the page table state that NTLDR gives us.

svn path=/trunk/; revision=24436
2006-10-08 00:04:03 +00:00
Alex Ionescu
378f64d047 - FreeLDR: Create the loader entry for ntoskrnl now that FreeLDR PE-loads it since last year. This lets us remove a large hack in ntoskrnl which was manually creating the entry and filling it in.
- Rename some LastKrnl... addresses into MmFreeLdr to easily identify them, and remove the need to use MmFreeLdrMemLower and MmFreeLdrPageDirectoryStart.
- Remove the static KERNEL_BASE definition based on a GCC-specific external. Everything now uses the actual module entry's saved base address.
- Fix a Ps Initialization hack and properly set the boot PDE.
- Add a hack for NTLDR's lack of MmFreeLdrMemHigher and MmFreeLdrPageDirectoryEnd.

svn path=/trunk/; revision=24435
2006-10-07 22:23:35 +00:00
Ged Murphy
f8fa7d16f8 move the string parsing routine into it's own function so it can be used with DeviceProblemWizard_RunDLL when required.
svn path=/trunk/; revision=24434
2006-10-07 15:02:43 +00:00
Ged Murphy
71bc38ca20 testing ros-diffs
svn path=/trunk/; revision=24433
2006-10-07 14:35:22 +00:00
Aleksey Bragin
a40bc5ff5f - Add structure for describing boot-loaded drivers
svn path=/trunk/; revision=24432
2006-10-07 13:07:25 +00:00
Alex Ionescu
b53f179583 - Fix calls to HvInitializeHive
svn path=/trunk/; revision=24431
2006-10-06 23:11:49 +00:00
Magnus Olsen
2db2156bb3 Fixed control apps windows, Let me known if it create any regress.
svn path=/trunk/; revision=24430
2006-10-06 21:59:42 +00:00
Aleksey Bragin
41c8741041 - Load and initialize in-memory registry
- Query NLS file names from registry instead of hardcoding
- Move loading of NLS data to WinLdrLoadAndScanSystemHive()

svn path=/trunk/; revision=24429
2006-10-06 21:20:36 +00:00
Alex Ionescu
e2295b6e85 - Fix calls to HvInitializeHive due to my last patch. Proof that Fireball doesn't properly test his commits... I broke Freeldr building before his commit, yet he commited it anyway even though freeldr couldn't build ;). Just kidding.
svn path=/trunk/; revision=24428
2006-10-06 20:52:50 +00:00
Aleksey Bragin
0b9fa0e21a - Make arc-path passed to the kernel look a bit more correct (still a hack of course)
- Add KdCom.dll loading along with ntoskrnl.exe and hal.dll
- Move registry-related code to a new file wlregistry.c
- WinLdrLoadAndScanSystemHive() is going to combine loading, initializing and parsing registry. NLS / OEM font data loading is marked with FIXMEs now, since it needs going into that routine (because registry tells the file names, not hardcoding them)

svn path=/trunk/; revision=24427
2006-10-06 20:28:55 +00:00
Alex Ionescu
9bfa61479f - Add PROFILE_ACPI_DOCKING_STATE.
- Fix HvInitialize definition to match more closely NT's since I need some of the extra parameters for the cm rewrite.
- Implement ExInitializePushLock and ExConvertPushLockSharedToExclusive macros.

svn path=/trunk/; revision=24426
2006-10-06 19:29:25 +00:00
Ged Murphy
6318f42ad0 fix a TCHAR brain lapse...
svn path=/trunk/; revision=24425
2006-10-06 17:10:57 +00:00
Ged Murphy
2380e7bb33 implemented DeviceProperties_RunDLLW and DeviceProperties_RunDLLA
svn path=/trunk/; revision=24424
2006-10-06 16:08:54 +00:00
Alex Ionescu
a4c366b659 - Add internal EX_CALLBACK Object to NDK. (Callback blocks are a new NT 5.2 kernel mechanism much like RunOncs blocks in Vista user-mode). They're managed by rundown protection and fast-referencing through interlocked calls to push/pop/sychrnonize system callbacks.
- Add ObOpenObjectByName to NDK, since this API is not documented in official headers.

svn path=/trunk/; revision=24422
2006-10-06 06:36:35 +00:00
Alex Ionescu
45d84c9668 - Guard some current cmlib includes against new cm branch
- Remove NTSYSAPI from NtBuildNumber definition in NDK.

svn path=/trunk/; revision=24416
2006-10-05 23:01:38 +00:00
Alex Ionescu
8859463623 - Remove SMSS's code for signaling the "init" event.
- Make ExpInitNls responsible for NLS initialization in Phase 0 as well, to clean up the code in ExpInitailizeExecutive a bit.
- Initialize the system time/clock in Phase 1, not in Phase 0.
- Do HAL Phase1 initialization as the first step in Phase 1 initialization, then initialize the system clock (since the HAL's RTC is now configured).
- Do Ob Phase 1 init in Phase 1 initialization, not in phase 0.
- Do Ke Phase 1 init after HAL, Ob and Ex phase 1 inits.
- Initialize NLS for Phase 1 after Ke Phase 1, instead of much later.

svn path=/trunk/; revision=24414
2006-10-05 16:38:58 +00:00
Alex Ionescu
093d1a3aba - Get rid of the completely convoluted way that Phase 1 initialization was being ended, with umpteen events and waits and timeouts all synchronized from user-mode and do a simple 5-second wait to determine if smss started OK or not.
- Promote the Phase 1 initialization thread by jumping directly into the zero-page thread, and remove manual zero-page thread initialization code since we simply jump into its main routine.
- 100 less lines of code :)

svn path=/trunk/; revision=24413
2006-10-05 16:14:28 +00:00
Alex Ionescu
eb8c705ce9 - Put all Phase 1 Ex* Initialization in ExpInitSystemPhase1 and clean up associated deprecated calls.
- Call ExpInitializePushLocks since we weren't doing this before.

svn path=/trunk/; revision=24412
2006-10-05 15:13:59 +00:00
Alex Ionescu
3f66fcf605 - Rewrite ExpLoadInitialProcess by inlining and simplifying what the call to RtlCreateProcsesParameters should do, and also create our own custom environment with the same arguments that NT's smss gets.
- This optimizes booting as well as gets use the differnet SESSIONY_INITIALIZATION_FAILED, where Y is a number representing which step of the process parameter/envieonment creation failed.

svn path=/trunk/; revision=24411
2006-10-05 14:49:20 +00:00
Aleksey Bragin
3727f8fc7d - Add #ifdef DEBUG / #endif to fix compile. FreeLdr's debug macros needs some improvement in the future...
svn path=/trunk/; revision=24410
2006-10-05 09:15:44 +00:00
Alex Ionescu
5162751ab3 - Use KeLoaderBlock for registry hive loading.
- Get rid of the CACHED_MODULE array and associated structures and stop using them, get rid of ParseAndCacheLoadedModules. Stop using KeLoadedModules and KeLoadedModuleCount outside of freeldr.c.
- Except for MmInit1, the kernel should now be totally isolated from FreeLDR-specific data.

svn path=/trunk/; revision=24409
2006-10-05 02:02:27 +00:00
Alex Ionescu
0bfcd77883 - Implement ExpInitNls to initialize the NLS Section using the new semantics recently implemented. Works pretty much like the previous code in rtl/nls.c except it uses the new variable names as well as maps a view of the NLS Table into the system process.c
- Delete rtl/nls.c and all the associated deprecated code.
- Do MmInit1 and SharedUserData stuff *after* initializing the initial thread, to avoid an ASSERT during bootup.

svn path=/trunk/; revision=24408
2006-10-05 01:44:54 +00:00
Ged Murphy
52d60b023b add a few more icons to the device imagelist
svn path=/trunk/; revision=24407
2006-10-04 22:29:18 +00:00
Christoph von Wittich
a387e6f9f8 -removed unused var
svn path=/trunk/; revision=24406
2006-10-04 22:06:00 +00:00
Aleksey Bragin
b103aa1ece - Add most needed memory-manipulating functions. Some places are really crappy (like WinLdrSetProcessorContext's IDT filling), will be fixed soon.
- FIXME: Since FreeLdr doesn't really keep track of which memory is of which type, this code has a massive hack for guessing the memory type, which is incorrect for future usage

svn path=/trunk/; revision=24405
2006-10-04 21:58:36 +00:00
Christoph von Wittich
a361366988 -support debugging of control panel applets
svn path=/trunk/; revision=24404
2006-10-04 21:47:43 +00:00
Christoph von Wittich
245dca159a -don't use GetLastError with Reg* functions
-remove @16 from def file (msvc doesn't like it)

svn path=/trunk/; revision=24403
2006-10-04 21:47:08 +00:00
Aleksey Bragin
602923e572 - Fix warning in winldr.c
- Implement WinLdrAllocateDataTableEntry() used for allocating and initializing the DTE
- Implement WinLdrLoadImage(), which uses LdrRelocateImageWithBias() from RTL, calling it with loader name "FLx86" (RTL should treat it differently -- ROS/WinLdr-specific behavior)

svn path=/trunk/; revision=24402
2006-10-04 21:36:56 +00:00
Aleksey Bragin
76abbb4423 - Remove some crap from the LoadAndBootWindows()
- Change debugging checkpoint to online-asm (all this is temporary), since any code after while(1){}; seems to be just optimized away by gcc
- Uncomment NDEBUG for now

svn path=/trunk/; revision=24401
2006-10-04 21:11:16 +00:00
Thomas Bluemel
32dcc834ed Fix broken resources
svn path=/trunk/; revision=24400
2006-10-04 19:55:53 +00:00
Ged Murphy
a595b4c7da add some overlay icons needed for devmgmt
svn path=/trunk/; revision=24399
2006-10-04 19:04:16 +00:00
Thomas Bluemel
948a1f9045 Fix almost the same bug in LdrGetProcedureAddress as in r24397
svn path=/trunk/; revision=24398
2006-10-04 18:46:57 +00:00
Thomas Bluemel
80da4a434c - Fix binary search algorithm in LdrGetProcedureAddress
- Fix temporary ntdll export hack (r24395)

svn path=/trunk/; revision=24397
2006-10-04 16:51:51 +00:00
Ged Murphy
7e6d549b19 - Open the device propsheet for child items (not parents as there isn't much point)
- Tag the Device ID onto the treeview items and provide functionality to tear it down
- Remove/change some code which wasn't needed to speed up opening time3
- We now have a pretty functional device manager. However it's heavily reliant on devmgr.dll, therefore functionality per device will rely on how complete this lib is.

svn path=/trunk/; revision=24396
2006-10-04 16:39:45 +00:00
Alex Ionescu
d0cb64ce3d - Implement XPSP2+ syscall stub that uses indirect pointer instead of executable code inside KUSER_SHARED_DATA.
- Someone (FILIP!) please fix LdrGetProcedureAddress. It's broken and I had to rename an ntdll export to make it work (see comments).
- Make sure you REBUILD CLEAN. This commit changes NCITool!!!
- Setup some NPX-related CPU features in SharedUserData during KiInitializeKernel.
- Remove some now-deprecated initialization functions.

svn path=/trunk/; revision=24395
2006-10-04 16:00:36 +00:00
Thomas Bluemel
48236aa642 Don't compile with -Wconversion since we have function callbacks that have parameters with sizes different from int without forward declarations. Fixes superfluous warnings.
svn path=/trunk/; revision=24394
2006-10-04 15:19:23 +00:00
Aleksey Bragin
778bad347c - Format code of InstallFatBootcodeToPartition(), changing from tabs+spaces mix to tabs only (use "ignore whitespaces" settings to view other changes)
- Change installation logic when installing to a NTLDR's boot.ini: Firstly freeldr.ini is checked for existence, and either created or updated, then boot.ini is checked for having a proper entry, and if needed - entry is added. Fixes related bugs (having more and more ReactOS entries, no entry added if freeldr.ini already exists in the root folder)

svn path=/trunk/; revision=24392
2006-10-04 12:26:12 +00:00
Magnus Olsen
41dea75354 this file some have forget set eol-style native
fixed

svn path=/trunk/; revision=24391
2006-10-04 10:59:01 +00:00
Magnus Olsen
07725072f3 1. move all languages file to own folder
2. fixed sub languages on allot languages rc files
3. add LMH1 Norwegian translations.

See issue #1698 for more details.

svn path=/trunk/; revision=24389
2006-10-04 06:58:03 +00:00
Alex Ionescu
38a5188c8e - Fix boot crash due to last patch, forgot that SharedUserDAta wasn't available yet.
svn path=/trunk/; revision=24388
2006-10-04 05:59:56 +00:00
Alex Ionescu
a6056d1fa9 - Fix KUSER_SHARED_DATA in winddk.h
- Scanfor NOEXECUTE/EXECUTE/OPTIN/OPTOUT/ALWAYSON/ALWAYSOFF load strings and set the appropriate NX policy in KUSER_SHARED_DATA as well as kernel CPU Feature flags.

svn path=/trunk/; revision=24387
2006-10-04 05:48:46 +00:00
Alex Ionescu
1e4f141555 - Add KF_XMMI64 feature flag for SSE2 and detect it.
- Detect Hyper-Threading and set Local APIC ID (put back Thomas's code that he added in an old revision and that I had accidentally removed and forgotten to re-convert into the new KiGetFeatureBits function).
- Add code to set the kernel MX Csr Mask in the FX Save Area.
- Startup the sysenter handler on the DPC stack.
- Detect and notify users with broken Pentiums.
- Do some NPX checks to forcefully disable any FPU flags that might be set (SSE, MMX, 3DNOW) if the NPX is disabled.

svn path=/trunk/; revision=24386
2006-10-04 05:29:30 +00:00
Alex Ionescu
917979cceb - Make Kernel initialization (KeInit2) portable/more complete. KeInit2 becomes KeInitSystem, the portable part, with a call to KiInitMachineDependent, the arch-specific part.
- Do all CPU configuration through IPIs and synchronize with potential multiple CPUs.
- Add mtrr.c and patpge.c for future support of MTRR, AMD K6 MTRR, PGE and PAT support, with initilization calls in each of them (which only print out a "Sorry" message).
- Add some stubbed code for extra initizliation to do later once some detection things are fixed.

svn path=/trunk/; revision=24385
2006-10-04 03:37:11 +00:00
Ged Murphy
ad0184614e update comctl32 to Wine-0.9.22 to get the new imagelist code.
svn path=/trunk/; revision=24384
2006-10-03 22:46:26 +00:00
Ged Murphy
2ef79f3efe add LPCDLGTEMPLATE definition
svn path=/trunk/; revision=24383
2006-10-03 22:43:46 +00:00
Ged Murphy
f1775cc055 fix processor display
svn path=/trunk/; revision=24382
2006-10-03 20:51:35 +00:00
Thomas Bluemel
99379a7e2c Fix warning
svn path=/trunk/; revision=24381
2006-10-03 20:04:39 +00:00
Ged Murphy
a2d3c5fe33 - Implement the context menu (mouse only at the moment) makeing it accessable when the cursor over the item only
- open the propsheet when double clicking child items
- make 'properties' bold

svn path=/trunk/; revision=24380
2006-10-03 19:55:15 +00:00
Hervé Poussineau
21dd51fc8b Copy i8042prt driver from 0.3.1 branch to trunk. Try #2
svn path=/trunk/; revision=24379
2006-10-03 18:04:03 +00:00
Hervé Poussineau
90b4dc09c7 Of course, I've added one level in directory structure in 24377. Delete the whole i8042prt driver and retry
(Sorry, this revision won't build)

svn path=/trunk/; revision=24378
2006-10-03 18:03:28 +00:00
Hervé Poussineau
273908b19f Copy i8042prt driver from 0.3.1 branch to trunk
svn path=/trunk/; revision=24377
2006-10-03 18:00:04 +00:00
Hervé Poussineau
b207566c12 Add back registry entries from i8042prt/kbdclass/mouclass
svn path=/trunk/; revision=24376
2006-10-03 17:57:29 +00:00
Thomas Bluemel
fd990e9ada Fix displaying Win32 errors (the Reg* APIs don't set the last error code!)
svn path=/trunk/; revision=24375
2006-10-03 17:02:36 +00:00
Thomas Bluemel
7b5fcdd9fa Fix displaying the size of the RAM
svn path=/trunk/; revision=24374
2006-10-03 16:25:13 +00:00
Hervé Poussineau
30189808bf Fix a few warnings
svn path=/trunk/; revision=24373
2006-10-03 14:28:21 +00:00
Ged Murphy
640d89daad set processor information in the sysdm control panel applet
svn path=/trunk/; revision=24372
2006-10-02 23:35:43 +00:00
Andrew Munger
2167cc7a61 Patch from ShadowFlare, bug 1838.
"The current implementation continues to register or unregister additional DLLs
that were specified, even if one of the earlier ones failed.  The behavior on
the Microsoft version is different; if one fails, it stops there instead of
continuing.  Some installers may possibly depend on this behavior."

svn path=/trunk/; revision=24371
2006-10-02 22:21:37 +00:00
Aleksey Bragin
835bb80157 - Add registry entry for usbdriver.sys's legacy loading. Commented out by default.
- Add usbdriver.sys to bootcd

svn path=/trunk/; revision=24370
2006-10-02 21:28:01 +00:00
Aleksey Bragin
903c277247 - Change CONNECT_DATA to DEV_CONNECT_DATA
- Add the last bit to the usb mouse driver to make it functional - recognition by mouclass.sys, and sending input data to it
- Misc small changes

Now USB mouse works in 2nd stage (you need to add usbdriver.sys as a legacy driver to the registry certainly)

TODO, but not of the top priority:
- Make unloading correct

svn path=/trunk/; revision=24369
2006-10-02 21:23:41 +00:00
Hervé Poussineau
c99914fdac Disable keyboard and mouse before checking the i8042 controller.
Flush queue before enabling them

svn path=/trunk/; revision=24368
2006-10-02 21:14:40 +00:00
Hervé Poussineau
3674f2ef32 Fix 2 typos (spotted by Fireball)
svn path=/trunk/; revision=24367
2006-10-02 19:36:14 +00:00
Ged Murphy
3193a5d7e9 - display system RAM on the general page.
- fixes bug 1835

svn path=/trunk/; revision=24366
2006-10-02 18:51:31 +00:00
Hervé Poussineau
b2aeafcad4 Implement CMP_WaitNoPendingInstallEvents
Wait for Pnp manager to finish its job before displaying the 2nd stage setup
Thanks Filip for his precious help on the umpnpmgr.exe side (not thread-safe as Single linked list functions are not implemented in ntdll)

svn path=/trunk/; revision=24365
2006-10-02 18:46:39 +00:00
Ged Murphy
4cfbdb6f63 - Only call SetupDiGetClassDevs once for each class, this makes load time 3 times faster although I'm still not happy with it. We may have to enumerate the drivers in the background.
- use UINT for 1 bit flags, reduce the width a little and check the menu.

svn path=/trunk/; revision=24364
2006-10-02 18:14:58 +00:00
Alex Ionescu
04c5f92621 - Combine SeInit1 and SeInit2 into SeInit since both can be done together now.
- Call PsInitSystem instead of PspInitPhase0, since PsInitsystem is the "external" phase-choosing routine.
- Implement ExComputeTickCountMultiplier to create a 24-bit precision remainder + whole integer of the ms/clock tick used in SharedUserData.
- Set the OS version and Machine Type (i386/PPC (<3 Arty) in SharedUserData.
- Move some HAL calls in Phase 2 (actually Phase 1...), same for KeInit2.
- Break into KDBG a bit earlier.

svn path=/trunk/; revision=24363
2006-10-02 15:52:58 +00:00
Alex Ionescu
06142d4e0d - Setup memory limits in shared user data.
- Loop security descriptors to find NLS data and make a copy of it in kernel pool, because the NLS buffer from NTLDR will be freed on NT. Also discovered a bug in Freeldr where it doesn't allocate ths NLS files sequentially, leaving a hole of 0x1000 between them. Added a hack to compensate (won't break NTLDR booting, just will waste 8KB of memory).
- Allocate the system call count table on checked builds.
- Refactor Ob/Se booting to match more closely NT, and so that we can do Se initialization in one shot.

svn path=/trunk/; revision=24362
2006-10-02 15:05:03 +00:00
Thomas Bluemel
62ac7ad5c9 Fix some warnings
svn path=/trunk/; revision=24361
2006-10-02 13:29:55 +00:00
Alex Ionescu
afa1de7c81 - Implement Phase 0 Ex initialization (Resource, Lookaside initialization) and generic Ex initialization routine.
- Clear the crypto exponent on boot-up.
- Set default global flags for checked builds.
- Set NtSystemRoot (SharedUserData) to C:<NT BOOT PATH> on startup.
- Cleanup lookas.c file and implement routines to initialize the system lookaside list in phase 0.

svn path=/trunk/; revision=24360
2006-10-02 13:23:03 +00:00
Thomas Bluemel
526efd2ee7 Define NTOSAPI before including ntddk.h to avoid including function prototypes with dllimport
svn path=/trunk/; revision=24359
2006-10-02 12:22:17 +00:00
Alex Ionescu
7fcf928e38 - Continue implementation of KiRosFrldrLpbToNtLpb by parsing the FreeLDR command line and:
* Removing the ARC Boot path and splitting it into the ARC Boot Device Name, the ARC HAL Device Name, and the NT Boot and HAL Path Names, saved in their respective LoaderBlock pointers.
  * Converting every slash to a space. ("/DEBUGPORT" -> " DEBUGPORT")
  * Now we can fully parse and read NTLDR command lines.
- Update various code in the kernel to:
  * Use LoaderBlock->ArcDeviceNamePath & friends instead of the command line.
  * Stop depending on slashes, and instead use strstr for parameters.

svn path=/trunk/; revision=24358
2006-10-02 05:40:36 +00:00
Aleksey Bragin
5c112af711 - Add a check to the boot.ini-changing code, to prevent creation of a new ReactOS entry after each installation.
svn path=/trunk/; revision=24356
2006-10-01 21:48:05 +00:00
Andrew Munger
e6adaebbce Resource sync from trunk.
Merged 24269, 24281, 24285, 24292, 24294-24295,
24298-24299, and 24303.

svn path=/branches/ros-branch-0_3_1/; revision=24355
2006-10-01 21:32:47 +00:00
Aleksey Bragin
5cf4352021 - Implement loading of NLS data, SYSTEM hive data (just simple loading into memory, without any kind of parsing or even checking if that data is correct)
- Add a function for creating a stub of hardware config (config consisting of only one node - root)
- Implement two steps of LPB initialization (names Phase 0 and Phase 1 are used internally by me, and doesn't correspond to anything)
- Implement a WinLdrSetupForNt, which allocates and initializes some specific structures (PCR, TSS, GDT, IDT)
- Respectively enable calls to these functions from LoadAndBootWindows()

svn path=/trunk/; revision=24354
2006-10-01 21:15:15 +00:00
Aleksey Bragin
eb998b4eaf - Comment out xbox memory detection for now (until fully switched to NT-style LPB)
- Fix HalpInitializePhase0() prototype
- Add halxbox back to build

svn path=/trunk/; revision=24353
2006-10-01 21:07:25 +00:00
Alex Ionescu
0c1b724e79 - Un-optimize KeGetPcr and make it use fs:20h instead of hard-coding the 0xFF.... address, because someone decided that ROS should have a different KPCR address then NT.
- This gets NTLDR working with ReactOS and I can boot all the way to MmInit1 (which fails due to missing KeMemoryMap & freeldr data).
- Serial port output works with DPRINT1 as well ;-)

svn path=/trunk/; revision=24352
2006-10-01 20:27:36 +00:00
Alex Ionescu
2855e1f08f - Do MmInit1 in KiInitializeKernel so we can access SharedUserData from it (we'll need to setup the CPU Features there).
- Cleanup some external/prototype mess and put them nicely into headers.

svn path=/trunk/; revision=24351
2006-10-01 19:43:18 +00:00
Aleksey Bragin
3d9d36ccff - Add new type of debug print for windows loader
- Add address conversion routines for windows loader
- Add stubs for PE loading, memory operations
- Add some code to the LoadAndBootWindows()

Some notes:
- The windows loader is going to become some kind of a library in future, shared at least between freeldr and EFI loader.
- The code in windows loader is specific to i386 architecture for now, but I add it to the "freeldr_base". I better separate it a bit later, after discussion with arty (because I hardly want compatibility with loading windows on PPC).

svn path=/trunk/; revision=24350
2006-10-01 19:39:49 +00:00
Andrew Munger
b5dbaf9282 Merge the one line fix from 24273 v. 24276.
svn path=/branches/ros-branch-0_3_1/; revision=24349
2006-10-01 19:29:03 +00:00
Alex Ionescu
71e329a125 - Do MmInit1 much earlier in the boot phase (right at the beginning of ExpInitalizeExecutive). This gives us access to things like SharedUserData, which NT has since NTLDR. Will try moving it up even higher.
- Also move some ROS-specific/Freeldr hacks on top of the file so they'll be easier to remove later when needed.
- Fix a bug in ExInitPoolLookasidePointers which was making us overwrite low-memory.
- Initialize NLS tables during Phase 0, so that the associated APIs can work earlier.
- Bugcheck if HAL Phase 0 initialization failed, and force interrupts enabled after the HAL is ready.

svn path=/trunk/; revision=24348
2006-10-01 19:27:10 +00:00
Alex Ionescu
9f40202dfc - Add setupblk.h from TinyKRNL with all the definitions for NT's SETUPLDR structures (SETUP_LOADER_BLOCK and hardware configuration stuff). Update KiRosFrldrLpbToNtLpb to setup the Flags field of this block to "Text-Mode Setup Active" when we know that we're in ROS text mode.
- Update ExpInitializeExecutive to check for a valid setup block and detect text-mode and network installation modes. Use ExpInTextModeSetup instead of SetupMode variable, to make detection compatible with NTLDR.

svn path=/trunk/; revision=24347
2006-10-01 18:27:59 +00:00
Alex Ionescu
cbfbbdb7f1 - Implement ExpIsLoaderValid to validate the LOADER_PARAMETER_BLOCK's extension for the right size and version (we currently support 5.2 and over).
- Add code in KiRosFrldrLpbToNtLpb to setup a LOADER_PARAMETER_EXTENSION and set the right version and size.
- Initialize the per-CPU PRCB Paged/NPaged lookaslide pool lists.
- Add code to support application CPUs booting in ExpInitializeExecutive, and pass the loaderblock as a parameter.

svn path=/trunk/; revision=24346
2006-10-01 18:01:38 +00:00
Alex Ionescu
0adfdd1ace - Implement static compile-time assertions and use them for structure field checks. Thanks to Thomas and KJK.
svn path=/trunk/; revision=24345
2006-10-01 15:52:10 +00:00
Alex Ionescu
4f1804b0c0 - Use __readfsdword instead of de-referencing the Boot PCR, which is not queried for Application CPUs. (And put the Goto back where it was). Thanks to Thomas Weidenmueller for noticing.
svn path=/trunk/; revision=24344
2006-10-01 15:22:42 +00:00
KJK::Hyperion
41ecee90f7 Fixed:
- _InterlockedCompareExchange64 (more efficient handling of 64-bit operands)
 - __writecr0, __writecr3, __writecr4 (for real this time)

svn path=/trunk/; revision=24343
2006-10-01 14:49:07 +00:00
Thomas Bluemel
70da417c02 Fix usage of a uninitialized variable, unnecessary goto not replaced by a if(...) statement
svn path=/trunk/; revision=24342
2006-10-01 14:02:08 +00:00
Thomas Bluemel
d7978d0054 fix __writecr0, __writecr3 and __writecr4
svn path=/trunk/; revision=24341
2006-10-01 12:33:24 +00:00
Thomas Bluemel
408d13caaa Fix function name (fixes a redefinition error)
svn path=/trunk/; revision=24340
2006-10-01 12:19:36 +00:00
Hervé Poussineau
5895844509 Add ufatx.dll, to be able to create FATX (Xbox file system) partitions
svn path=/trunk/; revision=24339
2006-10-01 10:11:46 +00:00
Hervé Poussineau
72a9a3af12 Rewrite SetupDiGetClassImageListExW and SetupDiGetClassImageIndex which were completly wrong
Add stub for SetupDiDestroyClassImageList
Now, you can see some icons in device manager

svn path=/trunk/; revision=24338
2006-10-01 09:05:19 +00:00
Alex Ionescu
ebafbecc80 - Fix Ki386InitializeTss to use dynamic GDT calculated from KiGetMachineBootPointers instead of static internal address. Now NTLDR boots us all the way to HalInitializeProcessor.
svn path=/trunk/; revision=24337
2006-10-01 07:31:33 +00:00
Alex Ionescu
7c753a339a - Put IDT in RW .data section
- Fix Ki386InitializeTss to properly set Boot TSS descriptor data (set it to 32-bits). Also properly setup the DF/NMI Task Gates in the IDT.

svn path=/trunk/; revision=24336
2006-10-01 07:24:24 +00:00
Alex Ionescu
00564d63b7 - Clear KPCR->TEB during bootstrap as well.
- Use KPCR_PROCESSOR_NUMBER instead of 0x130.

svn path=/trunk/; revision=24335
2006-10-01 06:46:08 +00:00
Alex Ionescu
aebf830821 - Add two more lines in boot.S which detect boot-by-NTLDR and jump into KiSystemService (I thought FreeLdr didn't use the entrypoint, but it looks like it does, so this hack is needed). Detection is done by checking for the high bit in the PLOADER_PARAMETER_BLOCK pointer, which will be set on NT.
- Fix a double bug in KiSystemStartup. First, we were setting KPCR->Number instead of KPRCB->Number. Second, we were using KeGetPcr instead of __writefsdword. It worked on ROS because KeGetPcr is hard-coded to ROS's KPCR buffer.

svn path=/trunk/; revision=24334
2006-10-01 06:43:26 +00:00
Alex Ionescu
790760dcf4 - Remove all the remaining code in boot.S and make KiRosPrepareForSystemStartup fastcall. Now NtProcessStartup just does a jmp to KiRosPrepareForSystemStartup without any other code.
- Use freeldr's stack during all of freeldr.c, and only switch to the boot stack in KiSystemStartup before calling KiInitializeKernel. This is what NT does as well (it piggybacks on NTLDR's stack until then). This allowed us to clean boot.S and now we can boot from NTLDR properly.

svn path=/trunk/; revision=24333
2006-10-01 06:08:05 +00:00
Alex Ionescu
380f89c205 - Fully use KeLoaderBlock->InLoadOrderListHead for driver loading and symbol lookups, instead of KeLoaderModules/KeLoaderModuleCount. Still not 100% compatible with NTLDR (since it uses BootDriverListHead with a special structure), but much closer to a portable design that doesn't rely on static kernel data.
- Change some internal functions to use UNICODE_STRING instead of PCHAR since this is how LdrEntry->BaseDllName is, and also it's closer to NT Design.

svn path=/trunk/; revision=24331
2006-10-01 05:05:57 +00:00
Andrew Munger
32b3c2fdf9 WaxDragon curses BrandonTurner.
svn path=/branches/ros-branch-0_3_1/; revision=24330
2006-10-01 04:57:50 +00:00
Andrew Munger
786ac12c99 Oops. I forgot the branch has a config.rbuild...
svn path=/branches/ros-branch-0_3_1/; revision=24329
2006-10-01 04:47:34 +00:00
Andrew Munger
550317611d Sync win32k and gdi32_winetest from trunk.
Merged 24228-24229, 24231, 24234-24239,
24255-24257, 24260-24264, 24266-24268,
24270-24271, 24287-24288.

svn path=/branches/ros-branch-0_3_1/; revision=24328
2006-10-01 04:37:32 +00:00
Hervé Poussineau
fbe45c7180 Give enough space to retrieve full device class description
svn path=/trunk/; revision=24326
2006-09-30 23:37:44 +00:00
KJK::Hyperion
ae3c3041f4 Fixes to un-break trunk:
* Disabling XBox HAL for now (TEMPORARY MEASURE)
 * Port MP HAL to the new loader structures

svn path=/trunk/; revision=24325
2006-09-30 23:35:17 +00:00
Hervé Poussineau
7227204f68 Better resources handling in serial driver.
All: copy lower device flags to FDO. This prevents the serial mouse to use buffered I/O

svn path=/trunk/; revision=24324
2006-09-30 23:06:51 +00:00
Hervé Poussineau
b606a6771c Do not expect a call to AddDevice with a NULL Pdo. Those are not guaranteed
svn path=/trunk/; revision=24323
2006-09-30 22:41:23 +00:00
Hervé Poussineau
3f47783c54 Implement SetupDiGetDriverInstallParamsW
Add support for DI_FLAGSEX_INSTALLEDDRIVER

svn path=/trunk/; revision=24322
2006-09-30 20:42:47 +00:00
Hervé Poussineau
b0e0c40c5d i8042prt manages PS/2 ports, not PS/2 devices. Take it into account when browsing devices detected by freeldr.
svn path=/trunk/; revision=24321
2006-09-30 19:09:10 +00:00
Hervé Poussineau
c1e52bcfca Fix wrong default registry value, which was possibly leading to non PS/2 keyboard detection at startup
svn path=/trunk/; revision=24320
2006-09-30 17:26:31 +00:00
Thomas Bluemel
41f18c74da Recalculate property sheet sizes after adding/removing sheets.
svn path=/trunk/; revision=24319
2006-09-30 16:31:35 +00:00
Alex Ionescu
c25e3321b0 - Complete much more of KiRosFrldrLpbtoNtLpb. We now:
- Create a LDR_DATA_TABLE entry for each module (driver, hal, kernel) and properly fill it out and insert it into the loader block.
  - Use the NLS data block to hold pointers to the NLS tables.
  - Use the ->RegistryBase/Length loader block members to hold pointers to the SYSTEM hive.
  - Create a MEMORY_ALLOCATION_DESCRIPTOR for each type of memory currently used (LoaderNlsData, LoaderRegistrydata, LoaderSystemCode, LoaderHalCode, LoaderBootDriver).
  - Changes are currently UNUSED!
- Revert LOADER_PARAMETER_BLOCK change, it actually really is PNLS_DATA_BLOCK.

svn path=/trunk/; revision=24318
2006-09-30 16:04:23 +00:00
Alex Ionescu
13ccbc28b2 - Re-remove intrinics from winddk.h
- Fix a typo in LOADER_PARAMETER_BLOCK

svn path=/trunk/; revision=24317
2006-09-30 14:57:30 +00:00
Magnus Olsen
10bd13604b adding back __readcr4 and __readcr3 to winddk.h for gcc does not have it. come bit futer build trunk
svn path=/trunk/; revision=24316
2006-09-30 14:43:41 +00:00
KJK::Hyperion
52fb2adb7c Corrected DWORD operand typo (%l -> %k)
svn path=/trunk/; revision=24315
2006-09-30 14:40:12 +00:00
Thomas Bluemel
b1a25bba1d Fix GCC4 warnings
svn path=/trunk/; revision=24314
2006-09-30 11:54:37 +00:00
Magnus Olsen
767b7de159 hopply this will fix hal_xbox build not tested.
svn path=/trunk/; revision=24313
2006-09-30 11:33:21 +00:00
Magnus Olsen
ce35dd9b7b fix build of blue again gcc does not have _disable and _enable, but MSVC have it.
svn path=/trunk/; revision=24312
2006-09-30 10:52:41 +00:00
Ged Murphy
c3a99cfb3e implement refresh, although it runs at a snails pace until the multiple SetupDiGetClassDevs call issue is fixed
svn path=/trunk/; revision=24311
2006-09-30 10:39:36 +00:00
Ged Murphy
c2e551ecea stop icon from changing when selected.
This change doesn't seem quite right to me, but it works for now

svn path=/trunk/; revision=24310
2006-09-30 10:31:28 +00:00
Ged Murphy
f8df38ff88 add a line at the root of the tree for user ergonomics :)
svn path=/trunk/; revision=24309
2006-09-30 10:18:04 +00:00
Alex Ionescu
540d96660c - Save processor state in the PKPRCB in KiInitializeKernel.
- Set the booting CPU as idle if no next thread was scheduled.
- Raise IRQL to HIGH_LEVEL upon exiting KiInitializeKernel to match the re-lowering to DISPATCH_LEVEL in KiSystemStartup (and subsequent interrupt flush).

svn path=/trunk/; revision=24308
2006-09-30 07:04:49 +00:00
Alex Ionescu
f516d2846e - Add loop around the KiFreezeExecutionLock before continuing OS boot.
- Only check for break-in on the Boot CPU.
- Set priority to 0 *Before* lowering to DISPATCH_LEVEL.
- Also force interrupts to be enabled before lowering IRQL.
- Also set the idle thread's wait irql to DISPATCH_LEVEL (might fix some odd crashes) and set it as Running on UP builds (on SMP builds this is done in other code).

svn path=/trunk/; revision=24307
2006-09-30 06:18:45 +00:00
Alex Ionescu
eb0f964be3 - Fix some bugs in intrin.h (missing __inline__ statments in some locations, which were causing warnings due to "static").
- Remove intrinsics in winddk.h since they're now properly done in intrin.h (thanks KJK!!!)
- Make freeldr.c setup the boot KTSS like NTLDR does, so that the GDT entry for it is valid (and remove the code that was doing this from Ki386InitializeTss)
- Refactor KiSystemStartup to use 100% dynamic pointers and machine data queried from the Loader Block or actual GDT/IDT/Selectors in memory, isntead of hard-coded ntoskrnl offsets. This makes it possible to be loaded by NTLDR, which sets these system structures up by itself. (we do it in freeldr.c, as hacks).

svn path=/trunk/; revision=24306
2006-09-30 05:42:22 +00:00
Alex Ionescu
8b1ba6c11a - Use LOADER_PARAMETER_BLOCK everywhere in ReactOS except freeldr.c
- Implemented KiRosFrldrLpbtoNtLpb to do a lightweight conversion and setup. Next patches will try to get rid of PLOADER_MODULE and use LDR_DATA_TABLE_ENTRY as well as increase bootstrap compatibility.

svn path=/trunk/; revision=24305
2006-09-30 03:33:50 +00:00
Andrew Munger
723627e679 Merge 24208, 24236, 24242, and 24259 from trunk. LiveCD fixes.
svn path=/branches/ros-branch-0_3_1/; revision=24304
2006-09-30 02:54:20 +00:00
Ged Murphy
79e7a43785 - update french timedate resource file
- patch by Sylvain Petreolle

svn path=/trunk/; revision=24303
2006-09-29 18:04:15 +00:00
Aleksey Bragin
cad356e2d8 Add devmgmt to the build system, thus fixing make bootcd
svn path=/trunk/; revision=24302
2006-09-29 17:57:20 +00:00
Ged Murphy
1533a93526 add devmgmt.exe as it's usable in ROS now
svn path=/trunk/; revision=24301
2006-09-29 17:34:50 +00:00
Aleksey Bragin
b652b371db - Implement device creating, with the specified DeviceExtension
- Add stub for processing IRPs sent to the mouse driver

TODO (will be done once problem with load-order will be resolved):
- Store mouclass's callback address
- Actually call it thus making driver working
- Cleanup routines

svn path=/trunk/; revision=24300
2006-09-29 17:07:48 +00:00
Ged Murphy
c89da0aef0 there's always one that gets away ...
svn path=/trunk/; revision=24299
2006-09-29 17:07:17 +00:00
Ged Murphy
db3ddf3123 - Add the device imagelist icons to setupapi.
- It appears SetupDiGetClassImageListExW will need some work before these are usable though.

svn path=/trunk/; revision=24298
2006-09-29 16:56:24 +00:00
Ged Murphy
91b9b125db - fix the treeview so it displays parent and child devices
- display the device icons for each item
- other bits and bats I'm too lazy to list
- it still load slowly due to multiple calls to SetupDiGetClassDevs. Need to think of a better way of gathering the info. For now though, it works.

svn path=/trunk/; revision=24297
2006-09-29 16:38:38 +00:00
Aleksey Bragin
4da7594216 - Change in CONNECT_DATA for drivers so that they get direct pointer to the raw configuration data returned by the device
- Spelling fixes
- More debug prints added to ease debugging
- Added entries for mouse and keyboard drivers (keyboard is currently commented out)
- Implemented actual usb mouse driver - contains 1 hack aimed to correct determining the endpoint. Driver fully works except for actually sending data to win32k/HID driver stack

svn path=/trunk/; revision=24296
2006-09-29 09:08:20 +00:00
Ged Murphy
1d1b74fa19 change run icon as a few people wanted something more fitting and add 2 more icons to the system imagelist
svn path=/trunk/; revision=24295
2006-09-28 22:57:09 +00:00
Ged Murphy
cc033012dd new timedate and powercfg icons
svn path=/trunk/; revision=24294
2006-09-28 22:14:00 +00:00
Ged Murphy
c31fb83895 rename folder to make it clear
svn path=/trunk/; revision=24293
2006-09-28 22:03:03 +00:00
Ged Murphy
0d942e1cef fix the floppy icons and add 2 new ones for network drives.
svn path=/trunk/; revision=24292
2006-09-28 22:01:07 +00:00
Ged Murphy
4aa949d1df - Reserve enough space on the heap to store the GUID
- Thanks to Thomas for restoring my sanity

svn path=/trunk/; revision=24291
2006-09-28 21:36:12 +00:00
Ged Murphy
afcf1f7b14 clean up irregularities
svn path=/trunk/; revision=24290
2006-09-28 21:15:51 +00:00
Ged Murphy
7c67a5ec0d Initial development of a devmgmt.msc clone.
Unusable at the moment though.

svn path=/trunk/; revision=24289
2006-09-28 20:05:17 +00:00
Magnus Olsen
2e3507e05d NtGdiCreateDIBitmap
fixed 2 more hiden bugs (cause some crash/bsod) but not the bug I am searching for. 

svn path=/trunk/; revision=24288
2006-09-28 19:08:07 +00:00
Magnus Olsen
9e939c11e9 fix a hidden bug in IntCreateBitmapIndirect
svn path=/trunk/; revision=24287
2006-09-28 18:32:09 +00:00
Hervé Poussineau
eeef3f67ba Support mount manager in disk.sys
svn path=/trunk/; revision=24286
2006-09-28 16:33:12 +00:00
Ged Murphy
c191e989a6 update a few cpl icons
svn path=/trunk/; revision=24285
2006-09-27 22:40:18 +00:00
Magnus Olsen
86e57e8c93 hpoussin forget change this regkey to SOFTWARE\\Microsoft\\WindowsNT\\CurrentVersion\\Winlogon"
svn path=/trunk/; revision=24284
2006-09-27 17:30:08 +00:00
Thomas Bluemel
28d82c0229 Don't use BOOL for 1 bit flags because it's signed.
svn path=/trunk/; revision=24283
2006-09-27 12:43:50 +00:00
Thomas Bluemel
87099f3ca6 Move the memory in RtlpDeleteData instead of copying it because the source and destination may be overlapping.
svn path=/trunk/; revision=24282
2006-09-27 12:28:25 +00:00
Hervé Poussineau
fa9c62c9a0 Patch by Matthias Kupfer
Fix tiny typo in all rc-files "%" -> "%s"
See issue #1828 for more details.

svn path=/trunk/; revision=24281
2006-09-26 21:08:11 +00:00
Hervé Poussineau
36032a956d Fix format build.
Why dependency tracking didn't detect this problem? Another mystery...

svn path=/trunk/; revision=24280
2006-09-26 19:52:55 +00:00
Hervé Poussineau
2c56c7d7e8 Merge from Wine:
Frank Richter <frank.richter@gmail.com>
setupapi: Duplicate behaviour of native SetupGetInfInformation with NULL ReturnBuffer and certain ReturnBufferSizes.

svn path=/trunk/; revision=24279
2006-09-26 19:44:17 +00:00
Hervé Poussineau
21ff1ddb3d Fix some warnings in winlogon code
Change winlogon registry key to "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" for compatibility reasons, as some programs read it directly

svn path=/trunk/; revision=24278
2006-09-26 19:18:02 +00:00
Hervé Poussineau
572541f16a Two more constants found in FMIFS...
svn path=/trunk/; revision=24277
2006-09-26 19:12:39 +00:00
Alex Ionescu
54403619f8 - In some far, far away galaxy, a long, long time ago, Greatlord will learn to fix 1-line bugs and/or talk to the developers responsible instead of reverting their code...until then....
svn path=/trunk/; revision=24276
2006-09-26 05:29:46 +00:00
Magnus Olsen
7a0843f8af fixed overlaping memory problem with RtlMoveMemory. The rewrite of RtlMoveMemory did not handling overlaping memory. it shows with ntdll_winetest rtl, use the old asm version from the string.a instead
svn path=/trunk/; revision=24273
2006-09-25 23:46:32 +00:00
Magnus Olsen
b3f30cb100 restore files mem.c and memgen.c
restore no i386 arch define in rbuild
do not remove it, it is for build on no i386 platform
the was accident delete in r23830 

svn path=/trunk/; revision=24272
2006-09-25 23:26:08 +00:00
Magnus Olsen
56c76b3069 NtGdiSetViewportExtEx
fix a bsd by moving in some value to seh last
 we can run gdi32_winetest mapping without bsd

svn path=/trunk/; revision=24271
2006-09-25 21:28:09 +00:00
Magnus Olsen
4c2f6e8647 implement PEN_GetObject, we can now get pen from GetopjectType. and manger pass some new wine test
svn path=/trunk/; revision=24270
2006-09-25 20:12:43 +00:00
Johannes Anderwald
ff8121c676 * fix typo in german resource file spotted by pilic
* fix bug 1797
* set svn-eolstyle:native property
See issue #1797 for more details.

svn path=/trunk/; revision=24269
2006-09-25 19:28:40 +00:00
Magnus Olsen
888f16ea6f NtGdiRestoreDC
1. fix do not delete all hdc and the restore hdc. 
2. fix calc of SaveLevel the calc are not perfect

we only have 6 fails when we try restore dc now with wine gdi32 test dc 

svn path=/trunk/; revision=24268
2006-09-25 18:50:40 +00:00
Saveliy Tretiakov
b79a852fe5 - PATH_RoundRect from wine
- RtlCopyMemory -> memcpy


svn path=/trunk/; revision=24267
2006-09-25 08:06:20 +00:00
Magnus Olsen
604ab3e4c0 Fixed some bugs in win32k function BITMAP_GetObject.
svn path=/trunk/; revision=24266
2006-09-25 05:25:11 +00:00
Magnus Olsen
6f10b47b94 update winetest gdi32 with more wine test
svn path=/trunk/; revision=24264
2006-09-24 22:27:00 +00:00
Magnus Olsen
2b9e96e558 fixed another build break by me :(
svn path=/trunk/; revision=24263
2006-09-24 21:17:31 +00:00
Magnus Olsen
08256d0670 sorry I broken the build it fixed now
svn path=/trunk/; revision=24262
2006-09-24 21:10:36 +00:00
Magnus Olsen
9b6f293ce5 adding more missing struct need them later in winetest
svn path=/trunk/; revision=24261
2006-09-24 20:53:47 +00:00
Magnus Olsen
235dd5fe2b adding more missing struct
svn path=/trunk/; revision=24260
2006-09-24 20:28:57 +00:00
Art Yerkes
350e281e1c Fix use of unicode for unix host regardless of -fshort-wchar.
svn path=/trunk/; revision=24259
2006-09-24 20:14:44 +00:00
KJK::Hyperion
29b494be56 Cosmetic changes
svn path=/trunk/; revision=24258
2006-09-24 18:07:21 +00:00
Saveliy Tretiakov
2047460d02 memcpy -> RtlCopyMemory
assert -> ASSERT


svn path=/trunk/; revision=24257
2006-09-24 17:10:58 +00:00
Saveliy Tretiakov
a5b535fee4 - Implement NtGdiStrokePath and NtGdiStrokeAndFillPath (based on wine)
- Get rid of PATH_GetPathFromDc()


svn path=/trunk/; revision=24256
2006-09-24 17:02:29 +00:00
Saveliy Tretiakov
a04da34bc0 More prototypes
svn path=/trunk/; revision=24255
2006-09-24 17:01:46 +00:00
Hervé Poussineau
f1d365f767 Don't hardcode the list of available filesystems in fmifs.dll, but store it in the registry.
Adding a filesystem is now only a matter of creating a u{FS}.dll + one registry entry to be able to use normal format.exe/chkdsk.exe/...

svn path=/trunk/; revision=24254
2006-09-24 13:42:24 +00:00
Hervé Poussineau
9cea0fddde Display available file systems in usage screen
svn path=/trunk/; revision=24253
2006-09-24 12:50:51 +00:00
Hervé Poussineau
c492ac0ccc Implement QueryAvailableFileSystemFormat and SetLabel in fmifs.dll
Fix a few prototypes

svn path=/trunk/; revision=24252
2006-09-24 11:55:58 +00:00
Hervé Poussineau
e84a6d47b1 [FORMATTING] Replace spaces by tabs
svn path=/trunk/; revision=24251
2006-09-24 11:08:27 +00:00
Hervé Poussineau
7c4cca9870 Add a filter command in KDBG, which is a wrapper around NtSetDebugFilterState/NtSetDebugFilterState.
svn path=/trunk/; revision=24250
2006-09-24 10:39:43 +00:00
Magnus Olsen
595ffab596 Update some gdi32 winetest
svn path=/trunk/; revision=24249
2006-09-24 09:43:16 +00:00
Magnus Olsen
9e99515740 adding two more missing define
svn path=/trunk/; revision=24248
2006-09-24 09:41:28 +00:00
Magnus Olsen
9f553707a1 adding OBJ_COLORSPACE it was missing, need it soon
svn path=/trunk/; revision=24247
2006-09-24 09:24:23 +00:00
Magnus Olsen
7f9492fc2f tested in dib16
Fixed all wine test for brush, zero fualt now
passing all 32 test fine. 
gdi32 bitmap test only 7 fails now

svn path=/trunk/; revision=24246
2006-09-24 08:36:56 +00:00
Hervé Poussineau
2abe11c82a Revert r24233, which leads to have the header written too late in debug log and was preventing a crash during the first DbgPrint calls when using GDB
Replace it by another fix (not tested)

svn path=/trunk/; revision=24245
2006-09-24 07:38:53 +00:00
Magnus Olsen
c32cdd8bfb revers 24232 for cause some other unknown regress.
I need found a better way to solv the null termeting strings

svn path=/trunk/; revision=24244
2006-09-24 07:30:43 +00:00
Hervé Poussineau
7bfdc5ceb7 Allow digits in computer name.
http://www.reactos.org/bugzilla/show_bug.cgi?id=1806#c2 still needs to be checked
See issue #1806 for more details.

svn path=/trunk/; revision=24243
2006-09-24 06:25:49 +00:00
Art Yerkes
5d46ef1a26 Fix mkhive on unix.
svn path=/trunk/; revision=24242
2006-09-24 02:58:31 +00:00
Hervé Poussineau
939cbfc4c7 Report correct interrupt resources to ntoskrnl
svn path=/trunk/; revision=24241
2006-09-23 22:26:28 +00:00
Hervé Poussineau
68434f2227 Add default destination for driver files in keyboard.inf
svn path=/trunk/; revision=24240
2006-09-23 22:09:18 +00:00
Hervé Poussineau
9e314810ae Skip keyboard detection in freeldr, as it doesn't work in Qemu 0.8.2
svn path=/trunk/; revision=24239
2006-09-23 20:21:41 +00:00
Aleksey Bragin
cd007816d8 Change #defines of bios memory types to a proper enum. Makes it easier to distinguish BIOS memory types and FreeLoader's memory types (in future).
svn path=/trunk/; revision=24238
2006-09-23 16:50:39 +00:00
Hervé Poussineau
0e779901fc Do not display the group name of a service if it doesn't exists
svn path=/trunk/; revision=24237
2006-09-23 16:06:15 +00:00
Hervé Poussineau
edeb548dd1 Subkeys names should be case insensitive.
Fixes the 'make install' problem, where shell was not starting at third boot

svn path=/trunk/; revision=24236
2006-09-23 16:01:02 +00:00
Magnus Olsen
52b43f7ae9 IntGdiCreateSolidBrush
Remove the if table I did. 
Remove Color = Color & 0xffffff to Color = Color
that gave same result and pass equal many wine test. 
we still have some werid xlate bugs some where, for set/get pixel. I should have remove Color & 0xffffff in frist place. but the code did look right.  


svn path=/trunk/; revision=24235
2006-09-23 15:54:11 +00:00
Magnus Olsen
2d24316959 fixed some more setpixel bugs
svn path=/trunk/; revision=24234
2006-09-23 12:33:54 +00:00
Aleksey Bragin
e126931cb0 - Issue a synchronous invalidate device relations request instead of asynchronous (eliminates the "can't open \SystemRoot\ bugcheck during 2nd stage startup)
- Comment out usbport/usbhub/etc from bootcd, they will be enabled once they don't crash and/or slow down system.

svn path=/trunk/; revision=24233
2006-09-23 09:34:34 +00:00
Magnus Olsen
cc70b77eca add NULL termate on ansi string when WideCharToMultiByteCP doing wchar to ansi converting.
svn path=/trunk/; revision=24232
2006-09-23 07:28:44 +00:00
Magnus Olsen
63535f6e15 remove folder gdi for all gdi test are in gdi32
svn path=/trunk/; revision=24231
2006-09-23 06:19:28 +00:00
Andrew Munger
8f9a18cfff Merge 24219-24222, and 24209 from trunk.
svn path=/branches/ros-branch-0_3_1/; revision=24230
2006-09-22 21:45:35 +00:00
Magnus Olsen
cfe10b7a75 Implement BRUSH_GetObject it is not perfect, it return wrong color in some case. But we get down from 20 to 11 fails in wine test.
Wine say GetObject (HANDLE obj, INT Count, PVOID * Buffer) if Buffer is NULL return the requeuer size in bytes

svn path=/trunk/; revision=24229
2006-09-22 20:19:49 +00:00
Magnus Olsen
391e807b81 finish implement NtGdiCloseEnhMetaFile it is not fully tested it can contain bugs
svn path=/trunk/; revision=24228
2006-09-22 17:26:20 +00:00
Magnus Olsen
230edc01b6 merges ros-branch-0_3_1 r24226 to trunk with arty permission. "ARP query support. Thanks to WaxDragon for encouragement and debugging."
svn path=/trunk/; revision=24227
2006-09-22 08:10:11 +00:00
Art Yerkes
50ee081131 ARP query support.
Thanks to WaxDragon for encouragement and debugging.

svn path=/branches/ros-branch-0_3_1/; revision=24226
2006-09-22 06:36:16 +00:00
Aleksey Bragin
2a0160473e Add an MM api to get the memory map from Freeldr's memory manager (as opposed to MachGetMemoryMap which gets architecture-specfic memory map returned by BIOS/firmware/etc).
Currently this api is unused, it's going to be used by windows/reactos bootloader in future.

svn path=/trunk/; revision=24224
2006-09-21 17:25:41 +00:00
Saveliy Tretiakov
7d1faef9ee Fix boot with /DEBUGPORT=GDB and /DEBUGPORT=COM1. I don't know why, but this works...
svn path=/trunk/; revision=24223
2006-09-21 07:42:21 +00:00
Magnus Olsen
d42d3c29c0 set GetLastErrorMsg if CreateFontIndirectA(NULL) are use as inputparam . it make same beauvoir as CreateFontIndirectW
svn path=/trunk/; revision=24222
2006-09-21 02:47:37 +00:00
James Tabor
6d8ba42532 Fix CreateFontIndirectA so it will not bigcheck with a null pointer.
svn path=/trunk/; revision=24221
2006-09-20 21:34:08 +00:00
James Tabor
18733c4397 Kill debug prints.
svn path=/trunk/; revision=24220
2006-09-20 21:09:30 +00:00
James Tabor
fff3bf11fa Gdi32 font.c:
- Patch by Dmitry Timoshkov
  - If there is no space for strings GetOutlineTextMetricsA should not indicate that they present.

svn path=/trunk/; revision=24219
2006-09-20 20:36:27 +00:00
Hervé Poussineau
f1cf836837 Big update of i8042prt driver. The driver is now plug&play compliant and some mouse driver filters may be installed.
svn path=/trunk/; revision=24218
2006-09-20 18:56:04 +00:00
Hervé Poussineau
d2241f8ec4 If boot resources are provided, use them instead of using resource requirements.
In all cases, translate the resource list before calling the driver

svn path=/trunk/; revision=24217
2006-09-20 18:16:24 +00:00
Aleksey Bragin
364cdf1951 - Add ability to allocate either "low" or "high" pages
- Don't display a warning to user if allocating memory at certain address fails
- Change debug prints so they tell in which function allocation failed
- Include RTL and LDR headers from NDK, so that it's possible to use functions from RTL in FreeLdr in future

svn path=/trunk/; revision=24216
2006-09-20 16:54:54 +00:00
Saveliy Tretiakov
b9ade034f9 Fix booting with /DEBUGPORT=GDB and Pice too.
svn path=/trunk/; revision=24215
2006-09-20 15:00:17 +00:00
Hervé Poussineau
9907e96a49 Save correct boot resources lists in registry
svn path=/trunk/; revision=24214
2006-09-20 14:46:21 +00:00
Magnus Olsen
3138af456a commit rc languages to xml parser for the webservre and standalone.
svn path=/trunk/; revision=24213
2006-09-20 14:38:37 +00:00
Thomas Bluemel
8e90ccee4d Some tchar fixes
svn path=/trunk/; revision=24212
2006-09-20 09:54:00 +00:00
Thomas Bluemel
d0e354f6c1 Fix warnings
svn path=/trunk/; revision=24211
2006-09-20 09:27:59 +00:00
Brandon Turner
59c2e127cc Add a config.rbuild and set DBG=0
svn path=/branches/ros-branch-0_3_1/; revision=24210
2006-09-19 17:38:10 +00:00
Andrew Munger
14d0c5f34a Initialize h_alises with a length 1 array containing a terminating null as specified. Patch by arty. (Fixes ncftp connection)
svn path=/trunk/; revision=24209
2006-09-19 04:25:14 +00:00
James Tabor
f8fcca6f06 Kill some warnings.
svn path=/trunk/; revision=24208
2006-09-18 23:37:22 +00:00
Andrew Munger
ece02ec90c Bump to 0.3.1-SVN
svn path=/branches/ros-branch-0_3_1/; revision=24207
2006-09-18 22:59:55 +00:00
Ged Murphy
3f0a7fb997 - Add a cute custom control to sysdm allowing dialogs to display hyperlink style text which can open web pages and run exe's.
- see the general page, and the user account dialog for examples.

svn path=/trunk/; revision=24205
2006-09-18 22:25:00 +00:00
Andrew Munger
d00d45c34e Reapply entrypoint fix, patch from Usurp.
svn path=/trunk/; revision=24204
2006-09-18 21:49:12 +00:00
The Wine Synchronizer
d3cd32d90d Autosyncing with Wine HEAD
svn path=/trunk/; revision=24203
2006-09-18 16:59:16 +00:00
The Wine Synchronizer
d88a99e18e Autosyncing with Wine HEAD
svn path=/trunk/; revision=24202
2006-09-18 16:52:25 +00:00
The Wine Synchronizer
9e9bd06847 Autosyncing with Wine HEAD
svn path=/trunk/; revision=24201
2006-09-18 16:51:34 +00:00
The Wine Synchronizer
1b0a889e2b Autosyncing with Wine HEAD
svn path=/trunk/; revision=24200
2006-09-18 16:50:11 +00:00
The Wine Synchronizer
446242dfb2 Autosyncing with Wine HEAD
svn path=/trunk/; revision=24199
2006-09-18 16:49:02 +00:00
The Wine Synchronizer
2cb8454522 Autosyncing with Wine HEAD
svn path=/trunk/; revision=24198
2006-09-18 16:47:55 +00:00
The Wine Synchronizer
11c17d1dc0 Autosyncing with Wine HEAD
svn path=/trunk/; revision=24197
2006-09-18 16:46:41 +00:00
The Wine Synchronizer
04b927e3ff Autosyncing with Wine HEAD
svn path=/trunk/; revision=24196
2006-09-18 16:45:21 +00:00
Hervé Poussineau
a11691c3c4 Autosyncing with Wine HEAD
svn path=/trunk/; revision=24195
2006-09-18 16:41:29 +00:00
The Wine Synchronizer
82845620c6 Autosyncing with Wine HEAD
svn path=/trunk/; revision=24194
2006-09-18 16:36:06 +00:00
The Wine Synchronizer
8bde95b20e Autosyncing with Wine HEAD
svn path=/trunk/; revision=24193
2006-09-18 16:32:05 +00:00
The Wine Synchronizer
fab72e48ec Autosyncing with Wine HEAD
svn path=/trunk/; revision=24192
2006-09-18 16:28:29 +00:00
Hervé Poussineau
ed5305eeae Autosyncing with Wine HEAD
svn path=/trunk/; revision=24191
2006-09-18 14:34:40 +00:00
Johannes Anderwald
f8b5e46f8b * fix build
svn path=/trunk/; revision=24190
2006-09-18 10:58:00 +00:00
Aleksey Bragin
a42c7ad876 Fix some defines used in fiber.S in kernel32.dll (fixes build)
svn path=/trunk/; revision=24189
2006-09-18 08:56:28 +00:00
Magnus Olsen
6e100cf43f revert 24179 it was bad idea. and wrong way todo it on
See issue #21478 for more details.

svn path=/trunk/; revision=24188
2006-09-18 05:13:17 +00:00
Alex Ionescu
8b094bf093 - Implement FPU Exception Handler.
- We can now properly handle FPU faults (wrote a small test for invalid fpu precision).
- OpenGL probably still doesn't work, as there might be some bugs around the place. However, you should not see FPU Bugchecks anymore.

svn path=/trunk/; revision=24187
2006-09-18 02:33:21 +00:00
Alex Ionescu
03c36d1a35 - Implement Trap 16: Math Coprocessor Fault. Happens during Floating Point precision error test that I wrote. Simply calls shared NPX handler in KiTrap7.
- Implement some extra checks in KiTrap7 and start coding the NPX shared handler. We *almost* have full FPU support now... (trying to get this done for tomorrow morning so that Greatlord can sent me the 15 000$ he promised...)

svn path=/trunk/; revision=24186
2006-09-18 01:07:13 +00:00
Alex Ionescu
d228dcccad - On SMP systems, update KPROCESS->ActiveProcessors and assert their validty. Needed for a similar assertion and check in KiSwapProcess which we already have.
- Also on SMP, make sure to clear the KTHREAD's swap-busy lock after the actual swap has been done.

svn path=/trunk/; revision=24185
2006-09-18 00:34:13 +00:00
Alex Ionescu
2ea699f94e - Assert that the current CPU is the one the thread is supposed to be running on.
- Get CR0, read the KTHREAD NPX State, disable interrupts and verify if the NPX state is dirty. If it is, then reload CR0 with the new value. Re-enable interrupts. This sequence should make FPU work during context switching, but I haven't tested yet. At the very least, it should get rid of TRAP_FAULT_UNKNOWN blue screen.
- Set TEB in the same time as the selector is being configured, not way earlier.

svn path=/trunk/; revision=24184
2006-09-18 00:30:30 +00:00
Alex Ionescu
63da586075 - Fix some bugs in LDT switch (EDI->EBP)
- Turn simple bugcheck into BugCheckEx with information that the helpfile says it should have.

svn path=/trunk/; revision=24183
2006-09-18 00:17:53 +00:00
Alex Ionescu
8de07ee7b4 - Don't update CR3 in KTSS, it's not used.
- Don't read a useless stack pointer anymore.
- Update KTSS_ESP0 near the end of context switching, not at the beginning anymore.
- Same for IOPM and I/O Redirection Map Base Address.

svn path=/trunk/; revision=24182
2006-09-18 00:10:58 +00:00
Alex Ionescu
eaf28f0509 - Stop doing cli/sti doing context switching (For now, since it's only needed for FPU, which isn't yet done).
- Stop using XP KPCR fields for storing stack values, they're not used inside the kernel anymore and now have 2003 values (WMI tracing, etc).
- Move parts of the process switch (LDT reload) out-of-line.

svn path=/trunk/; revision=24181
2006-09-18 00:02:46 +00:00
Alex Ionescu
b52483ba9a - Add func.endfunc decoration.
- Add code to wait for SwapBusy == FALSE on SMP.
- Add stub code to check for new PCR fields in 2003. Currently disabled because thread swap code still uses XP fields.
- Check for active DPCs at the end of thread swap, not at the beginning.
- Set PRCB->IdleThread outside of the thread swap routine.
- Don't set the thread state to running inside the swap routine, we already do it outside.

svn path=/trunk/; revision=24180
2006-09-17 23:17:07 +00:00
Magnus Olsen
70cca480e5 implemet GdiReleaseDC it redirect to NtUserReleaseDC(HWD hwd, HDC hdc) now
svn path=/trunk/; revision=24179
2006-09-17 22:10:24 +00:00
Alex Ionescu
3e709fbbd9 - Fix some insidious bugs in exception handling, mostly related to the art of unwinding (RtlUnwind).
- Can't name specifics, but probably fixes multiple SEH/application bugs/regressions since about 6-8 months ago. Fixes my personal SEH test from 22 failures/crashes/BSODs to 22 succeesses...
- Also fixes some crashes in kernel-kqemu mode.

svn path=/trunk/; revision=24178
2006-09-17 21:09:10 +00:00
Magnus Olsen
45f71f78c8 did delete NtGdiDeleteObjectApp at end of NtGdiCloseEnhMetaFile by mistake. radding it
svn path=/trunk/; revision=24177
2006-09-17 20:42:59 +00:00
Magnus Olsen
fa61787952 Activate CloseEnhMetaFile in gdi32.
We do not leak memory from CreateEnhMetaFile.
 

svn path=/trunk/; revision=24176
2006-09-17 20:22:27 +00:00
Magnus Olsen
d3eeef4046 NtGdiCloseEnhMetaFile
1. translate EMF_Create_HENHMETAFILE to reactos 
2. Delete hdc.

NtGdiCreateEnhMetaFile
1. Set hdc ownership. 


svn path=/trunk/; revision=24175
2006-09-17 20:21:01 +00:00
Alex Ionescu
23dc37d575 - Cleanup except_asm.s and add .func/.endfunc and fix some double definitions.
svn path=/trunk/; revision=24174
2006-09-17 18:44:52 +00:00
Alex Ionescu
b820ec4930 - Fix a bug in KeRaiseUserExceptionDispatcher which was causing us not to set the Exception Address (EIP) in the EH record.
- Fix a terrible stack corruption bug in KeRaiseUserExceptionDispatcher which was causing us to eventually fuck up the stack in user mode (0x14 bytes instead of 0x50 bytes were reserved).
- Protect User-mode Callbacks with SEH, and use STATUS_POP_CALLBACK_STACK.
- Fix another nasty stack corruption bug in user-mode APC delivery.
- Protect User-mode APC delivery with SEH.
- Fix SEH handlers to return EXCEPTION_EXECUTE_HANDLER isntead of ExceptionContinueSearch.

svn path=/trunk/; revision=24173
2006-09-17 17:31:52 +00:00
Magnus Olsen
4493c99327 fast implemet of NtGdiCloseEnhMetaFile
follow thing need be done before it is finish but it will slov leaked memory and filehandle from NtGdiCreateEnhMetaFile
for we have NtGdiCreateEnhMetaFile implement. NtGdiCloseEnhMetaFile is base on wine cvs 15/9-2006
Todo
1. Rewrite it to own api call IntGdiCloseEmhMetaFile
2. Use Zw and Int direcly so we do not need todo  context swith each call
3. Translate follow api to kernel api 
   // hMapping = CreateFileMappingW(Dc->hFile, NULL, PAGE_READONLY, 0, 0, NULL);
   // Dc->emh = MapViewOfFile(hMapping, FILE_MAP_READ, 0, 0, 0);
   // hmf = EMF_Create_HENHMETAFILE( Dc->emh, (Dc->hFile != 0) );


 

svn path=/trunk/; revision=24172
2006-09-17 15:47:29 +00:00
Hervé Poussineau
6afc1a0152 Define some registry entries as not volatile, to prevent new installation of device at each boot
svn path=/trunk/; revision=24171
2006-09-17 15:42:50 +00:00
Hervé Poussineau
3ab77c0239 DeviceNode->ResourceList and DeviceNode->ResourceListTranslated should not share memory with DeviceNode->BootResources
svn path=/trunk/; revision=24170
2006-09-17 15:24:55 +00:00
Alex Ionescu
adb93d9531 - A missing "return" statement to KiDispatchException which was causing all user-mode exceptions to become second-chance and thus crash the app. mIRC works again, and probably numerous other apps (mozilla as well i think, since it had the same issue)
svn path=/trunk/; revision=24169
2006-09-17 15:01:57 +00:00
Hervé Poussineau
551811ac52 Disable some code I did during the last day to repair ReactOS boot. Let's hope it is enough
svn path=/trunk/; revision=24168
2006-09-17 14:27:17 +00:00
Magnus Olsen
5c66b358e1 Upgrade from dejavu font 2.9 to 2.10
reason 
1. Bugfix some charters that did not show in Windows/ReactOS
2. Fixing space between some charters 
3. Dejvau san font support 100% folllow Latin Extended-B, Latin Extended-C, Greek and Coptic, Superscripts and Subscripts, Currency Symbols.
4. and allot more new charters 

svn path=/trunk/; revision=24167
2006-09-17 13:37:59 +00:00
Hervé Poussineau
ac233d6e61 Don't go further than end of string when writing value to registry
svn path=/trunk/; revision=24166
2006-09-17 12:20:44 +00:00
Hervé Poussineau
f271868696 Don't enable acpi service by default, it would be automatically installed if necessary
svn path=/trunk/; revision=24165
2006-09-17 12:17:44 +00:00
Magnus Olsen
15732d3ae2 implement last part of NtGdiCreateEnhMetaFile
it can now create file.  (add ntdll.a to rbuild need RtlDosPathNameToNtPathName_U api)

svn path=/trunk/; revision=24164
2006-09-17 10:56:13 +00:00
Hervé Poussineau
b6919c977d Merge from Wine:
James Hawkins <truiken@gmail.com>
- Add stubs for SetupOpenLog, SetupCloseLog, and SetupLogError
- Implement pSetupGetField, with tests.

svn path=/trunk/; revision=24162
2006-09-17 10:34:51 +00:00
Hervé Poussineau
f07b34a9d0 I don't know how to save REG_LINK info on disk, so ignore them. Incidently, fixes "make install_registry"
svn path=/trunk/; revision=24156
2006-09-17 08:44:17 +00:00
Alex Ionescu
8ef78cb6e6 - Create a KD-compatible KiDebugRoutine and piggyback KDBG on it.
- Create separate GDB entry hack routine.
- Fix booting with /BREAK and continuing after an INT3/ASSERTion.

svn path=/trunk/; revision=24155
2006-09-17 07:06:35 +00:00
Alex Ionescu
bee17dc290 - Large cleanup of psmgr.c. Move all externs and prototype, into headers, reformat and re-arrange the code.
- Optimize PspLookupUserEntrypoints to use static ANSI_STRINGs instead of building them at runtime.
- Fix mapping/loading of the System DLL so that it's loaded as executable code, not read-only code. Also fix a handle leak of the section, and re-factor some code into smaller shared functions to reduce code duplication.

svn path=/trunk/; revision=24154
2006-09-17 05:20:24 +00:00
Hervé Poussineau
1b0d4ce154 Install VMware driver using UpdateDriverForPlugAndPlayDevicesW function.
Installing a driver is not as easy as copying files and adding some registry entries, especially when autogenerated PnP ids change...

svn path=/trunk/; revision=24153
2006-09-17 00:28:19 +00:00
Hervé Poussineau
68bee00b1d Make IoInvalidateDeviceRelations really asynchronous
Implement IoSynchronousInvalidateDeviceRelations

svn path=/trunk/; revision=24152
2006-09-16 23:30:57 +00:00
Johannes Anderwald
5d0d792e67 * update comments
* remove unused members in ConsoleInfo struct
* update global struct on UDN_DELTAPOS events
* update WindowSize ScreenBuffer member when bigger / smaller on scroll events

svn path=/trunk/; revision=24151
2006-09-16 21:41:57 +00:00
Hervé Poussineau
5ed7c7746e Fix compilation (3 variables were unused)
svn path=/trunk/; revision=24150
2006-09-16 21:21:05 +00:00
Hervé Poussineau
47f4f5c36a Change detection method to see if a driver is a legacy one
Fix last issues with PCI driver

svn path=/trunk/; revision=24149
2006-09-16 20:53:27 +00:00
Alex Ionescu
78ef70deda - Fix one of the oldest hacks in ReactOS: KeGetCurrentThread() and PsGetcurrentProcess used to be NULL during early boot stage. We also didn't have an official idle therad/process. Also system intialization was not in its sepearte thread. Changes:
- Implemented SeAssignPrimaryToken.
   - Setup Boot/System Token for Idle Process in SeInit2.
   - Remove ROS hack in SeCaptureSubjectContextEx.
   - Call SeAssignPrimaryToken in PspInitializeProcessSecurty when called for the Initial Process creation.
   - Implement PsInitiailizeQuotaSystem and set PspDefauptQuotaBlock for the idle process so that it can be used for the initial process.
   - Rewrite Process Manager Phase 0 initialization from scratch, to create a new initial system process and thread which will be used for Phase 1 (in ROS, phase 2) initialization of the executive.
   - Fix a bug in PspCreateProcess which was using an uninitialized value of SectionObject in some cases, instead of NULL.
   - Call PsInitailizeQuotaSystem from ObInit, and also create the system handle table inside the idle process, and make it the ObpKernelHandleTable.
   - Do Executive Phase 0 Initialization at APC_LEVEL.
   - Start idle thread at HIGH_PRIORITY then lower it to 0 once the Initial Thread is setup, so that it can run, then keep priority to 0 at DISPATCH_LEVEL and jump into idle loop code.
   - Add NtYieldExecution to idle loop code since it's now being used.
   - Fix IoGetCurrentProcess which was previously hacked.
   - Remove some checks for Thread == NULL in ke_x.h, since this is now impossible.
   - Split Phase 0/1 initialization in ex\init.c, since one runs in a separate thread now. Also don't lower IRQL to PASSIVE_LEVEL anymore (run at APC_LEVEL).

svn path=/trunk/; revision=24148
2006-09-16 20:37:49 +00:00
Alex Ionescu
0d996fd421 - Revert part of 24108 which was scanning the process's thread ready list and making the threads ready. This shouldn't currently happen on ReactOS but it seems that happens on Fireball's machine and crashes it, so I'm reverting it.
svn path=/trunk/; revision=24147
2006-09-16 20:27:53 +00:00
Hervé Poussineau
25e2b01535 Don't crash if PCI AddDevice is called with a NULL Pdo (happens if pci.sys is considered as a legacy driver)
svn path=/trunk/; revision=24146
2006-09-16 20:22:54 +00:00
Martin Fuchs
30f438bb7b explorer: minor code cleanup
svn path=/trunk/; revision=24145
2006-09-16 15:41:17 +00:00
Martin Fuchs
fcfeb83217 "Debug Release" mix configuration for notifyhook project file
svn path=/trunk/; revision=24144
2006-09-16 15:40:24 +00:00
Martin Fuchs
a06bdc9503 explorer: handle child window creation errors
svn path=/trunk/; revision=24143
2006-09-16 15:39:07 +00:00
Magnus Olsen
bb1f92d0d3 fixed a memory I accident created when to free a hdc
svn path=/trunk/; revision=24142
2006-09-16 06:40:37 +00:00
Alex Ionescu
5acd247d8e - Implement most of the Ring 3/0 Invalid Opcode handler. Stops apps like mIRC from BSODing the system anymore.
svn path=/trunk/; revision=24141
2006-09-16 06:03:04 +00:00
James Tabor
6b30b92bf0 I think this was on Ged mind.
svn path=/trunk/; revision=24140
2006-09-16 05:29:25 +00:00
Art Yerkes
f20c6b89df Not sure where LicenseDialogProc is supposed to come from. For now, we'll
disable it until it gets fixed.

svn path=/trunk/; revision=24139
2006-09-16 01:56:51 +00:00
Alex Ionescu
d664420182 - Merge in my latest Dispatcher changes for KeWaitForMultipleObject, which are basically the same kind of changes as have been done for KeDelay/KeWaitForSingle. (Optimizations and readability improvements).
- Also fixed a previous bug where we didn't respect alertable waits anymore for KeWaitForMultiple...
- Remove krnlfun entry, the rest of dispatcher changes are tied to the new timer implementation for later.

svn path=/trunk/; revision=24138
2006-09-16 00:07:02 +00:00
Magnus Olsen
aa64d1177f Implement NtGdiCreateEnhMetaFile it is base on wine cvs 15/9-2006 version of CreateEnhMetaFileW in wine gdi32.dll
Our are not complete it can not create the file.
But we parseing now some NULL pointer test and some other test in winetest for gdi32. 

 

svn path=/trunk/; revision=24137
2006-09-15 23:24:04 +00:00
Hervé Poussineau
dfda3eceff Fix "normal" formatting, by removing differences between quick and normal formatting.
Normal formatting is quick formatting + fill sectors with 0 (not done yet)

svn path=/trunk/; revision=24136
2006-09-15 17:04:18 +00:00
Ged Murphy
4db2ab349a enable system info (again)
svn path=/trunk/; revision=24135
2006-09-15 16:45:00 +00:00
Ged Murphy
c09e1c12ab - add hardware profile and start and recovery dialogs
- popup a message box for dialogs not yet implemented

svn path=/trunk/; revision=24134
2006-09-15 16:37:26 +00:00
Aleksey Bragin
4094a71f3e Fix typos in comments
svn path=/trunk/; revision=24133
2006-09-15 16:07:11 +00:00
Aleksey Bragin
ee7e88e8ec Add missing "NTAPI"
svn path=/trunk/; revision=24132
2006-09-15 16:01:50 +00:00
Aleksey Bragin
04a96186b4 Revert a change in debug.h introduced in 19329 by Hartmut Birr. Freeldr's debug output doesn't expect any DbgPrint call to result in a "__FILE__:__LINE__ output_string" substitution.
Now FreeLdr's debug output looks good again.

svn path=/trunk/; revision=24131
2006-09-15 10:45:53 +00:00
Magnus Olsen
ed022d17fd arcoding winetest CreateEnhMetaFileA all param can be NULL
and we fail on this. But this is only one bugfix, We need bugfix win32k now. To completed the bugfix

svn path=/trunk/; revision=24130
2006-09-15 10:36:50 +00:00
Hervé Poussineau
b73a685a79 Assume bus number #0 if not specified in resource list
svn path=/trunk/; revision=24129
2006-09-15 09:09:18 +00:00
Hervé Poussineau
2a1513dc5c - Fix Freeldr to correctly send reported resources (at least PCI buses and PS/2 devices)
- Let Root bus report BootResources
- If no resource requirement are found, use the boot resource list (not sure of this one)

svn path=/trunk/; revision=24128
2006-09-15 06:48:01 +00:00
Hervé Poussineau
3daa4394f7 Check for ACPI BIOS identifier, to prevent double enumeration of devices
Move boot resource informations to Root\ key (if available)
Add a missing \0 at the end of hardwareId list

svn path=/trunk/; revision=24127
2006-09-14 22:29:07 +00:00
Ged Murphy
af77fee9dd fix a few dialog asthetics
svn path=/trunk/; revision=24126
2006-09-14 21:51:56 +00:00
Ged Murphy
faa4bd22bb put system info back in
svn path=/trunk/; revision=24125
2006-09-14 20:46:06 +00:00
Hervé Poussineau
7ac40876f4 Report to registry hardware found by Freeloader.
See issue #645 for more details.

svn path=/trunk/; revision=24124
2006-09-14 20:30:35 +00:00
Magnus Olsen
eccbefcccb thx fireball fixing a spelling fault
svn path=/trunk/; revision=24123
2006-09-14 20:00:28 +00:00
Ged Murphy
da666d1ce5 sneaky little blighter
svn path=/trunk/; revision=24122
2006-09-14 19:12:48 +00:00
Ged Murphy
4732ef2b6a start to overhaul sysdm.cpl and make it more like XP's, which is much more user friendly
- completely rewrite the resource file to make it readable and logical
- do the same with the resource.h file (I'll cry if anyone messes these 2 up, it's mega neat now ... ;p)
- add the ReactOS logo to the first page (general tab)
- move the licence to it's own dialog accessable from the general tab
- rearrange the computer name and hardware pages
- delete the user profile page and add it as a separate dialog accessable from the advanced page
- add an error reporting button (as per XP) which opens a web browser directly to bugzilla.
- loads of other little alterations.
*note, I've dissabled language files until I've finished messing with the resources*

svn path=/trunk/; revision=24121
2006-09-14 19:09:56 +00:00
Magnus Olsen
a413ba4de2 forget this file thx Quip at irc
svn path=/trunk/; revision=24120
2006-09-14 19:02:56 +00:00
Magnus Olsen
e1ba479b2c 1. move all languages to own folder
2. accepted LMH1 languages patch (with small modification)

See issue #1696 for more details.

svn path=/trunk/; revision=24119
2006-09-14 17:33:25 +00:00
Magnus Olsen
5f0ec93a17 translations patch accepted from LMH1 (with small modification from me)
See issue #1695 for more details.

svn path=/trunk/; revision=24118
2006-09-14 17:26:08 +00:00
Magnus Olsen
3e4ab62cca 1. move all languages to own folder
2. accepted LMH1 languages patch (with small modification)
3. fixed right sublang on few languages rc files
See issue #1685 for more details.

svn path=/trunk/; revision=24117
2006-09-14 17:17:51 +00:00
Magnus Olsen
eb39f6f8dc translations patch accepted from LMH1 (with small modification from me)
See issue #1679 for more details.

svn path=/trunk/; revision=24116
2006-09-14 16:53:53 +00:00
Ged Murphy
d667517b42 start to rewrite the virtmem code to remove many bugs and make it more readable.
I'm currently working on enhancements to sysdm, but it's probably better to commit this separately 

svn path=/trunk/; revision=24115
2006-09-14 16:49:11 +00:00
Magnus Olsen
4a1ee5a228 adding Japanese keyboard to reactos installer
svn path=/trunk/; revision=24114
2006-09-14 16:40:40 +00:00
Magnus Olsen
3f285b2d73 adding Japanese keyboard drv patch from ja731j (real name : Simon Hanae mail : ja731j at ja731j dot homeip dot net
See issue #1795 for more details.

svn path=/trunk/; revision=24113
2006-09-14 16:39:35 +00:00
Aleksey Bragin
efcc4447c1 Reapply fixed half of 24020 (relocation update in rtl). Tested on vmware and real hardware.
svn path=/trunk/; revision=24112
2006-09-14 16:37:05 +00:00
Saveliy Tretiakov
63ae604355 Fix typo. palate -> pallete
svn path=/trunk/; revision=24111
2006-09-14 16:04:08 +00:00
Alex Ionescu
1b75e6549e - Converted some macros to inlined functions.
- Modified KeDelayExecutionThread and KeWaitForSingleObject to be much simpler and readable, reducing some of the loops and continues, and 4th-level indentation. Also packed up common wait initialization at the beginning of the function, and into two new inline functions: KxDelayThreadWait and KxSingleThreadWait. No actual semantic changes, just re-ordering.
- Rename KiUnwakeQueue to KiActivateWaiterQueue.

svn path=/trunk/; revision=24110
2006-09-14 15:48:02 +00:00
Aleksey Bragin
bb617c9ac9 Sylvain Petreolle: Fix a typo in the code (palGDI -> sysGDI)
svn path=/trunk/; revision=24109
2006-09-14 15:40:16 +00:00
Alex Ionescu
74703ca408 - Implement KeReadyThread that wraps KiReadyThread so that \ps doesn't have to worry about dispatcher lock.
- Make sure all a process's threads are ready if they're on the ready queue, during attachment.
- Merge in KiReadyThread from scheduler code, with a small code change to keep working with ROS's scheduler lists instead.

svn path=/trunk/; revision=24108
2006-09-14 12:13:32 +00:00
Magnus Olsen
beb74a2356 remove entrypoint in rbuild files.
1. This change are right but binutils setting
   PE header flags wrongs for cpl/dll wrong

2. Remove entrypoint for cpl until this bug have
   been fixed in binutils.
    

svn path=/trunk/; revision=24107
2006-09-14 09:10:13 +00:00
Aleksey Bragin
4309a525f4 Show the value, not the address in memory! (Thanks to Dmitry Philippov)
svn path=/trunk/; revision=24106
2006-09-14 08:27:08 +00:00
Aleksey Bragin
d64332beb2 Mikhail Zvyozdochkin: If I enter directly DNS server address in TCP/IP properties window, and after it open this window again, DNS server address is not retrieved to text field.
Patch 1746

svn path=/trunk/; revision=24105
2006-09-14 08:20:50 +00:00
Magnus Olsen
dc1e819150 Fixing two NULL pointer crash in win32k.
I do not known if I done right in NtGdiRealizePalette step2, step2 is not tested.  

svn path=/trunk/; revision=24104
2006-09-14 07:43:20 +00:00
Alex Ionescu
20425875ce - Implement KiAcquireDispatcherObject, KiReleaseDispatcherObject, used on SMP for dispatcher objects which use the volatile long member in the dispatcher header (such as gates).
- Implement KiTryThreadLock which tries to acquire the lock but exits if it can't, isntead of looping.
- Re-factor KeWaitForGate to make it SMP-safe by acquiring various locks when required.
- Fixed up KeSignalGateBoostPriority so it can also be SMP-safe, and also fix what exactly happens when the gate is signaled (directly make the other thread ready instead of doing a KiUnwaitThread on it).
- Split KxAcquireSpinLock/KxReleaseSpinLock into SMP vs UP like the other routines.

svn path=/trunk/; revision=24103
2006-09-14 05:53:51 +00:00
Alex Ionescu
d53352c677 - Implement KiUnlinkThread to unlink a thread from its wait blocks, handle queue and timer activation/removal.
- Don't play with priorities in KiAbortWaitThread anymore, since we'll soon support Win2003 delayed "adjust increment" functionality, so that the code is not repeated many times.
- Rename KiAbortWaitThread to KiUnwaitThread, make it use KiUnlinkThread and delayed adjustment.
- Implement KxUnwaitThread and KxUnwaitThreadForEvent, optimized versions of KiWaitTest that can be used in special circumstances (notification events, thread termination, process signalling).
- Optimize KeSetEvent by handling signaled notification events without acquiring the dispatcher lock, and by using new inlined routines described above.
- Reimplement KeSetEventBoostPriority properly to actually do boosting.
- Fixup KeRundownQueue with a more typical/proper LIST_ENTRY loop.
- Let me know if you see regressions...

svn path=/trunk/; revision=24102
2006-09-14 03:49:20 +00:00
Alex Ionescu
c440454c10 - Update Kernel Fun.
svn path=/trunk/; revision=24101
2006-09-13 21:46:32 +00:00
Magnus Olsen
a2a7c9632f Greek keyboard layout changes by Apal
See issue #1631 for more details.

svn path=/trunk/; revision=24100
2006-09-13 19:08:41 +00:00
Saveliy Tretiakov
5971670b9b Separate NtGdiModifyWorldTransform and IntGdiModifyWorldTransform for internal usage.
svn path=/trunk/; revision=24099
2006-09-13 16:50:19 +00:00
KJK::Hyperion
182b4dc71d <intrin.h> compatibility header. Implements Visual C++ intrinsics in GCC. Licensed very liberally, please keep it that way
svn path=/trunk/; revision=24098
2006-09-13 14:07:41 +00:00
Saveliy Tretiakov
457e0142bd Move IntGdiGradientFill and IntSystemParametersInfo prototypes to header files.
Delete DestroyThreadWindows prototype (function does not exist).


svn path=/trunk/; revision=24097
2006-09-13 13:43:39 +00:00
Saveliy Tretiakov
0eabb5d7bc Move UserDrawIconEx and UserGetCurIconObject prototyepes to header file.
svn path=/trunk/; revision=24096
2006-09-13 13:03:17 +00:00
Saveliy Tretiakov
e6c1f9ca4b Add UnattendSetupEnabled key for enabling\disabling unattended setup without editing rbuild files.
Modifing rbuild files all the time is not handy and slows down build process.


svn path=/trunk/; revision=24095
2006-09-13 12:33:59 +00:00
Alex Ionescu
63142230b2 - Rename kqueue.c to devque. KQUEUE (kernel queues) are implemented in queue.c, and this filename always confused me. Why would you name KDEVICE_QUEUE into kqueue.c, when you already have KQUEUE in queue.c?!
- Rename exception.c to except.c, mostly due to MSVC's incompatibility with multiple identically named files.
- SVN delete usercall.c leftover.
- Fix KeSetPriorityAndQuantumProcess to use Queued Spinlocks and KiAcquireProcess/ThreadLock when needed.

svn path=/trunk/; revision=24094
2006-09-13 03:02:40 +00:00
Alex Ionescu
630f3d1e69 - Cleanup ipi.c, reformat, and re-organize.
- Undefine all functions for UP builds, except KeIpiGenericCall.
- Implement KeIpiGenericCall for UP builds and add @implemented tag.

svn path=/trunk/; revision=24093
2006-09-13 02:25:32 +00:00
Alex Ionescu
31e4c651c4 - Renamed device.c to config.c and removed all irrelevant code from it, leaving only the two KeFindConfigurationEntry*** functions in it.
- Also fixed the above for incorrect formatting/excessive whitespace.
- The other routines in device.c were moved to cpu.c, since they deal with CPU-specific things.
- Cleaned up KeFlushEntireTb.
- Added inlined routines for setting/getting CR, and also getting GDTR, IDTR, LDTR, TR. Used to implement KiSaveProcessorControlState.
- Implemented KeSaveStateForHibernate.

svn path=/trunk/; revision=24092
2006-09-13 02:08:22 +00:00
Alex Ionescu
b4aab80937 - Fix a typo that happened after-the-fact.
svn path=/trunk/; revision=24091
2006-09-13 02:04:33 +00:00
Alex Ionescu
7687187bf0 - Implement KxAcquireSpinLock/KxReleaseSpinLock for inline acquisition of spinlocks, SMP, UP and DBG. (on DBG builds, we OR the spinlock value with the KTHREAD address, then compare on release.)
- Make In-Stack QSLs a complete no-op in UP, we were still touching some fields.
- Cleanup and re-organize spinlock.c

svn path=/trunk/; revision=24090
2006-09-13 01:41:17 +00:00
Alex Ionescu
07a0973e21 - Remove usercall.c from portable part of Ke and add it to ke\i386. The implementation is slightly arch-specific.
- Remove code in userapc.c and move it into usercall.c, since both functions basically deal with user-mode callouts.
- Handle STATUS_CALLBACK_POP_STACK and add the status to ntstatus.h
- Also handle future support for GDI Batch flushing.

svn path=/trunk/; revision=24089
2006-09-13 01:00:50 +00:00
Alex Ionescu
a614833b08 - Use inlined guarded region routines instead of duplicating code.
- Add @implemented tags.

svn path=/trunk/; revision=24088
2006-09-13 00:35:56 +00:00
Alex Ionescu
d99f96a295 - Implement KiAcquireDeviceQueueLock/KiReleaseDeviceQueueLock for locking KDEVICE_QUEUEs, since they can be used from Threaded DPCs which don't execute at DISPATCH_LEVEL, so the lock needs to be acquired differently.
- Add ASSERT_DEVICE_QUEUE and ASSERTify + reformat kqueue.c.
- Implement KeRemoveByKeyDeviceQueueIfBusy.
- Cleanup exception.c
- Remove dangerous/broken KeGetCurrentIrql() define.

svn path=/trunk/; revision=24087
2006-09-13 00:20:46 +00:00
Aleksey Bragin
c0cda24302 Just one entrypoint="0" is enough
svn path=/trunk/; revision=24086
2006-09-12 21:33:56 +00:00
Hervé Poussineau
6ed6c1661e Don't call notification procedures with APC disabled, it may lead to some strange results.
Thanks Alex for the time he took to help me to debug this issue

svn path=/trunk/; revision=24085
2006-09-12 21:18:22 +00:00
Ged Murphy
3fd92a4f96 Revert changes from r23620 until a better solution can be found as it breaks opening of cpl applets with VS.
The 'DebugSettings' should be stored in the .user file.

svn path=/trunk/; revision=24084
2006-09-12 21:02:39 +00:00
Aleksey Bragin
3b58ac1932 Fix last things preventing me from compiling the tree:
vsnprintt -> _vsnprintf in the wine/unicode.h and in riched20

svn path=/trunk/; revision=24083
2006-09-12 18:51:05 +00:00
Hervé Poussineau
2140d54ca5 Start to support GUID_DEVICE_SYS_BUTTON interface. It is required to handle keyboards with power buttons (wake/sleep/power)
(This commit is done now to be able to debug an APC problem)

svn path=/trunk/; revision=24082
2006-09-12 15:19:51 +00:00
Hervé Poussineau
fec5904b50 [AUDIT] This file only include other files, so it can't be dirty.
Additionally, define GUID_DEVICE_SYS_BUTTON

svn path=/trunk/; revision=24081
2006-09-12 15:19:17 +00:00
Alex Ionescu
2829cc5982 - Re-merge 24062+24063, with a minor difference, they work now.
svn path=/trunk/; revision=24080
2006-09-12 13:54:52 +00:00
Alex Ionescu
6b1e4db5b5 - Partial revert of r20462/63. New HAL/Po/Ki code remains, but restored the original PsIdleThread code. I know what the bug is but I'm too tired to fix it, so I'd rather revert the broken part.
- Install + 2nd stage + boot to desktop will not work in qemu, kernel-kqemu and vmware (all wax and I tested).

svn path=/trunk/; revision=24079
2006-09-12 05:37:14 +00:00
Alex Ionescu
978da5c0af - Revert 24020 (good code, but buggy) and 24041 (bad code/revision).
- This gets us as far as 24061(+24048) for booting.

svn path=/trunk/; revision=24078
2006-09-12 05:21:27 +00:00
Aleksey Bragin
4e03e0ec4a Those two #ifdefs were wrong on my setup (straightforward RosBE 3.4.2, and also updated to 3.4.4). So:
1. Removed the stricmp guard
2. Added a #ifdef->#undef solution

If this break compilation on linux or on gcc 4 on win32 (very low probability, if any), let's think further.

svn path=/trunk/; revision=24076
2006-09-11 21:40:50 +00:00
Saveliy Tretiakov
17189649af For windows with WS_EX_DLGMODALFRAME sysmenu can be opened only by right mouse click
svn path=/trunk/; revision=24074
2006-09-11 15:49:42 +00:00
Hervé Poussineau
6f5c6f23d3 Fix halmp compilation
svn path=/trunk/; revision=24073
2006-09-11 14:35:46 +00:00
Saveliy Tretiakov
68f5e47ce6 This testapp demonstrates WS_SYSMENU + WS_EX_DLGMODALFRAME behavior
and shows that DrawCaption does care about WS_EX_DLGMODALFRAME and WS_EX_TOOLWINDOW.


svn path=/trunk/; revision=24072
2006-09-11 13:09:12 +00:00
Saveliy Tretiakov
529631027a Fix WS_SYSMENU+WS_EX_DLGMODALFRAME bug.
Fixes Messagebox broblem and some others.

svn path=/trunk/; revision=24071
2006-09-11 13:07:12 +00:00
Aleksey Bragin
d263039fe9 Add missing header
svn path=/trunk/; revision=24070
2006-09-11 13:01:39 +00:00
Hervé Poussineau
60fb482ad4 Fix compilation on Linux hosts - try #2
We can't use the _WIN32 symbol which is automatically defined once you include psdk/windef.h ...

svn path=/trunk/; revision=24069
2006-09-11 12:42:35 +00:00
Alex Ionescu
5fb31962db - Implement KiReleaseProcessLockFromDpcLevel and use it in KeTerminateThread. We were lowering to PASSIVE during thread termination, and then doing a context switch at PASSIVE, which you can guess is pretty bad.
svn path=/trunk/; revision=24068
2006-09-11 12:00:02 +00:00
Hervé Poussineau
07dc58982f We want to support hives version 1.3+ (up to 1.5 currently). Fix test accordingly
svn path=/trunk/; revision=24067
2006-09-11 11:28:54 +00:00
Hervé Poussineau
7b79f44d6b Better handling of REG_LINK values
Try to fix Linux build (thanks Usurp on IRC)

svn path=/trunk/; revision=24066
2006-09-11 11:04:33 +00:00
Saveliy Tretiakov
4f6a751b6f Implement NtGdiCloseFigure (Fixes BSOD!)
svn path=/trunk/; revision=24065
2006-09-11 11:01:35 +00:00
Saveliy Tretiakov
059fb2c54e Implement NtGdiFlattenPath
svn path=/trunk/; revision=24064
2006-09-11 10:43:42 +00:00
Alex Ionescu
c19a362969 - Implement HalProcessorIdle.
- Fix KiIdleLoop to actuall load the PCR in EBX. It was using a completely random value.
- Call the Processor Idle Routine now, isntead of hard-coding STI+HLT. This routine had already been setup during bootup by PoInitailizePrcb.
- Implemented PopIdle0 and made it call HalProcessorIdle. No performance/throttling is done yet.

svn path=/trunk/; revision=24063
2006-09-11 06:50:19 +00:00
Alex Ionescu
81997fc0bc - Implement and export HalClearSoftawareInterrupt (currently implemented to match the hacked ROS version, no new version written yet).
- Implement CPU Idle Loop in assembly for UP and SMP systems. Differences:
  * Runs with interrupts off most of the time, except when it does interrupt cycling at each iteration.
  * Calls KiRetireDpcList directly, instead of going through KiDispatchInterrupt.
  * Support for new scheduler and immediate thread switch.
  * Support for Idle Scheduler.
  * Support for HAL/ACPI/CPU Driver-defined "Idle Function". currently disabled and STI+HLT harcoded instead.
- Removed ps/idle.c and dumped the hack code directly in psmgr.c wher eit's used.

svn path=/trunk/; revision=24062
2006-09-11 06:22:26 +00:00
Alex Ionescu
a0fac81cfd - Add the actual missing code to KiQuantumEnd. It's asserted to make sure it'll never execute (yet).
- Add KiExitDispatcher from my new scheduler code. Same as KiQuantumEnd, added an assertion to make sure it doesn't enter in code paths that shouldn't yet happen.

svn path=/trunk/; revision=24061
2006-09-11 05:26:38 +00:00
Alex Ionescu
6c853c9c32 - Fix a critical bug in KiComputeNewPriority.
- Fix a bug in KiSetPriorityThread which wasn't setting *released = FALSE, which left the var uninitailized and usually = TRUE on the stack.
- Half-copy KiQuantumEnd from my new scheduler code. Main difference is usage of newly created locks, support for quantum-disable and RT threads, and usage of KiComputeNewPriority.

svn path=/trunk/; revision=24060
2006-09-11 05:21:18 +00:00
Alex Ionescu
8028be67cb - Fix KiDeliverApc prototype for PPC compatibilty.
- Fixup comment header for KiDeliverApc and KiInsertQueueApc.
- Set APC trap frame during APC delivery. We actually weren't doing this before (I'm kind of amazed at ROS's previous functionality due to importance of this bug!).
- Use proper in-stack queued spinlock mechanisms.
- Make sure that the Kernel APC list didn't become empty while we acquired the APC lock after the first verification.
- Validate IRQL on return from APC routines, to catch bad code.

svn path=/trunk/; revision=24059
2006-09-11 04:34:25 +00:00
Alex Ionescu
d011801cef - Fix lock acquisition/release mismathces in KiInsertQueueApc.
- Support and document InsertApcEnvironment KAPC_ENVIRONMENT type.
- Fixup formatting and ASSERTify.
- Acquire dispatcher lock when insereting an APC into another thread.
- Use delayed interrupt request on SMP systems (and fixup KiRequestApcInterrupt accordingly).

svn path=/trunk/; revision=24058
2006-09-11 03:14:26 +00:00
Alex Ionescu
52b3dfb608 - Fix stupid typo.
svn path=/trunk/; revision=24057
2006-09-11 02:30:38 +00:00
Alex Ionescu
90a7bca112 - Add new KAPC_ENVIRONMENT mode: InsertApcEnvironment.
- Fixup KeInitalizeApc like all the other functions.
- Don't use an expensive 48-byte RtlZeroMemory instead of just clearing two members.

svn path=/trunk/; revision=24056
2006-09-11 02:28:09 +00:00
Alex Ionescu
8b90aed6be - Fix comment headers for KeFlushQueueApc, KeInsertQueueApc.
- ASSERTify KeInsertQueueApc and some formatting fixes.

svn path=/trunk/; revision=24055
2006-09-11 02:17:57 +00:00
Alex Ionescu
c9607ffe89 - Fix for Windows Kernel APC Data-Free Local Privilege Escalation Vulnerability (re-initialize the list head after cleaning it, so that the list is circular).
- Optimize KeFlushQueueApc: we can check if the Kernel-Mode APC list is empty without acquiring the lock. If it's empty, we can quit immediately, if not, then we'll acquire and check it again. For user APCs we always need to acquire the lock, though.

svn path=/trunk/; revision=24054
2006-09-11 02:09:13 +00:00
Alex Ionescu
43a412db60 - Add ASSERT_APC definition.
- Fix KeRemoveQueueApc comment header and clean up function.
- Acquire dispatcher lock at DPC level during ApcListEntry read/write.

svn path=/trunk/; revision=24053
2006-09-11 01:45:11 +00:00
Alex Ionescu
4b35027c0f - Cleanup RepairList, KiMoveApcState.
- Fixup comments for KeAreApcsDisabled.
- Implement and add comment header to KeAreAllApcsDisabled.

svn path=/trunk/; revision=24052
2006-09-11 01:30:24 +00:00
Alex Ionescu
2fea34f0e1 - Re-implement KiRequestApcInterrupt in ke_x.h. Make it work by CPU number (as documented) instead of comparing PRCBs.
- Move NtQueueApcThread to ps/state.c since it's a Ps-level function.
- Make NtQueueApcThread use POOL_QUOTA_FAIL_INSTEAD_OF_RAISE and add that flag to our DDK. Also fix the check for SystemThread by looking at the flag, not checking if TEB == NULL. Also fix a memory leak and comment header.
- Fix comment header in KiInitalizeUserApc.

svn path=/trunk/; revision=24051
2006-09-11 01:15:03 +00:00
Alex Ionescu
1462b71058 - Re-organize apc.c into private/public functions (no code change).
- Move KiInitializeUserApc to ke/i386/userapc.c. The routine is non-portable.
- Force Ring 3 state into User APC TrapFrame to maintain system integrity and coherency. Also respect IOPL.
- Use SEH handling routine just like when handling exceptions, to properly re-direct a crash here. Thanks to KJK again for showing me how to write these kinds of routines.

svn path=/trunk/; revision=24050
2006-09-11 00:54:12 +00:00
Alex Ionescu
4d94e0557f - Fix KeEnterCriticalRegion/KeLeaveCriticalRegion by moving to ke_x and adding ASSERTs, and change the code in apc.c to call these inlined versions instead. Also fix comment headers for these functions in apc.c to match the official standard.
svn path=/trunk/; revision=24049
2006-09-11 00:26:17 +00:00
Alex Ionescu
38759195cb - We only need to update the page directory for the current stack, not the whole ETHREAD. (the page fault will be handled).
- Release dispatcher lock from DPC level in KiAttachProcess.
- Add missing decoration/assert to KeAttachProcess, and only acquire APC lock after we've made the invalid attach test. Also acquire dispatcher lock at DPC level here and in KeStackAttachProcess.
- Loop in KeUnStachDetachProcess to avoid the case where we acquired the APC lock while a kernel APC was pending. Keep releaing the loop and re-attemping acquire until it has been delivered.
- Add Decoration for *ServiceTable* functions.

svn path=/trunk/; revision=24048
2006-09-10 23:41:08 +00:00
Alex Ionescu
d7ae142cf1 - KPROCSES Flags are LONG, not ULONG.
- Add some missing decoration.
- NUMA node semantics for KeInitializeProcess are only required on SMP builds.
- Allow KeInitailizeProcess to receive an argument specifying if alignment faults should be enabled or not.
- Use KiComputeIopmOffset to get the IopmOFfset instead of setting -1

svn path=/trunk/; revision=24047
2006-09-10 23:17:22 +00:00
Aleksey Bragin
5e7a9fc74e Create a place for some R&D work about booting Windows from inside of FreeLdr
svn path=/trunk/; revision=24046
2006-09-10 21:32:02 +00:00
Alex Ionescu
faa5f58b84 - Remove KeGetCurrentProcess. This API doesn't exist.
- Add assertions to relevant functions in process.c and re-format some code.
- Check for invalid APC state in KeDetachProcess.
- Decrease process stack count while holding the Dispatcher Lock at DPC level.
- Implement KiSwapProcess in ctxswitch.S and add SMP-support and LDT swap support for the future, as well as updating the IOPM base in the TSS.

svn path=/trunk/; revision=24044
2006-09-10 20:23:02 +00:00
Aleksey Bragin
54a6548aa7 Fix inconsistent formatting and other trails of GreatLord's fixing
svn path=/trunk/; revision=24043
2006-09-10 20:12:16 +00:00
Saveliy Tretiakov
6a37552f9e implement NtGdiPathToRegion
svn path=/trunk/; revision=24042
2006-09-10 19:42:09 +00:00
Alex Ionescu
344fd08452 - No need to apply the ROS Page hack inside thread switching, since the process is the same.
svn path=/trunk/; revision=24041
2006-09-10 19:41:31 +00:00
Alex Ionescu
ecb32725f7 - Add ASSERT_EVENT.
- Same changes to event.c as with the other files.
- Remove lock property, these files have already been audited as clean and were unlocked.

svn path=/trunk/; revision=24040
2006-09-10 19:14:03 +00:00
Alex Ionescu
b5c8cf43e7 - Add ASSERT_MUTANT and ASSERT_SEMAPHORE to our DDK.
- Cleanup mutex.c and sem.c. No real code changes, just add ASSERTs, STDCALL->NTAPI, IN/OUT decoration.
- One change though, in KeReleaseMutant, use KeLeaveCriticalRegion instead of manually writing down the code, it's more readable this way.

svn path=/trunk/; revision=24039
2006-09-10 18:47:53 +00:00
Alex Ionescu
da15ddafc8 - Get completely rid of old Dispatcher Lock macros and use new ones.
- apc.c -> Also multiple optimizations to use the APC lock instead of the full-fledged dispatcher lock.
- gate.c -> Use APC lock as well, the full dispatcher lock isn't required because a thread can only wait on one and only one gate.
- process.c -> Optimize the code to use the Process and/or APC lock instead of the dispatcher lock. Also delay acquiring the locks after some checks, to make the exit paths simpler.
- More fixes are teh needed.

svn path=/trunk/; revision=24038
2006-09-10 18:26:50 +00:00
Thomas Bluemel
63346a8dda Fix difference in signedness warning
svn path=/trunk/; revision=24037
2006-09-10 18:22:48 +00:00
Thomas Bluemel
ac14f5a033 Fix LdrRelocateImageWithBias prototype: Strings in C are neither signed nor unsigned, and they are constants. Fixes warnings with GCC4
svn path=/trunk/; revision=24036
2006-09-10 17:16:59 +00:00
Alex Ionescu
4300e4effe - Update the last remaining old function, KeSetBasePriority. Use new locks and assertions, and also make use of KiComputeNewPriority.
svn path=/trunk/; revision=24035
2006-09-10 17:13:55 +00:00
Alex Ionescu
1ee6196a10 - Reposition and update KeQueryBasePriorityThread to use the new locks.
- Update KeSetAFfinityThread, KeSetPriorityThread with new locks and assertions (plus the current ROS scheduler hack).

svn path=/trunk/; revision=24034
2006-09-10 17:05:07 +00:00
Alex Ionescu
678df444b7 - Update KeRevertToUserAffinityThread, KeSetSystemAffinityThread to use new lock functions, and add code to support future scheduler.
- Update KeSetIdealProcessorThread to properly do Ideal CPU logic instead of blindgly setting it (most importantly, respect UserIdealProcessor and SystemAffinityActive seettings).

svn path=/trunk/; revision=24033
2006-09-10 16:55:03 +00:00
Alex Ionescu
d3a7b531f3 - Re-organize all internal functions in 3 groups:
- 1) Utility (FindRightmost/LeftMost Set, etc)
   - 2) State (Alert, AlertResume, ForceResume, Freeze, Resume, Rundown, Start, Suspend, TestAlert)
   - 3) Un/Initialization (KeInitThread, KeInitializeThread, KeUninitThread).

svn path=/trunk/; revision=24032
2006-09-10 16:38:02 +00:00
Aleksey Bragin
a9d0596841 - Add msvcrt linking where needed
- Change "rintf" unixism to ceil() and data conversion to integer type

svn path=/trunk/; revision=24031
2006-09-10 16:32:37 +00:00
Alex Ionescu
af9e8a64e7 - Remove KeSetPreviousMode, KeDisableThreadApcQueueing.
- Stargint reorganizing some public functions to the bottom of the file.
- Don't hold lock during KeSetKernelStackSwapEnable.

svn path=/trunk/; revision=24030
2006-09-10 16:30:49 +00:00
Alex Ionescu
1b223aebfb - Implement KiAcquireProcessLock, KiReleaseProcessLock.
- Update KeFreezeAllThreads to use the Process and APC In-Stack Queued Spinlock.
- Update KeTerminateThread to use the Process Lock. Call KiRundownThread to cleanup the NPX thread. Add some assertions for Stack in/out-paging. Use KiSetThreadSwapBusy for proper SMP vs UP building.
- NUMA Node semantics in KeStartThread only need to be done for CONFIG_SMP builds, so #ifed them appropriately. Also made it use the Process In-Stack QSL.

svn path=/trunk/; revision=24029
2006-09-10 16:25:57 +00:00
Alex Ionescu
e61739c38c - Fix definition of SYNCH_LEVEL.
- Implement KeAcquireInStackQueuedSpinLockRaiseToSynch for UP systems.
- Implement KiAcquireApcLock, KiAcquireApcLockAtDpcLevel, KiReleaseApcLock, KiReleaseApcLockFromDpcLevel.
- KeResumeThread, KeSuspendThread, KeAlertThread, KeForceResumeThread, KeTestAlertThread, KeAlertResumeThread are now the first to use the new APC In-Stack Queued Spinlock for sychronization.

svn path=/trunk/; revision=24028
2006-09-10 16:09:58 +00:00
Hervé Poussineau
bd33d79025 Initialize MainResource and PagingIoResource fields in FSRTL_COMMON_FCB_HEADER structure
svn path=/trunk/; revision=24027
2006-09-10 15:58:29 +00:00
Hervé Poussineau
6702dd5240 Let mkhive use cmlib. "make install" now works and this let the livecd go further than before
svn path=/trunk/; revision=24026
2006-09-10 15:39:11 +00:00
Hervé Poussineau
2ca81c5573 Fix some warnings
svn path=/trunk/; revision=24025
2006-09-10 15:26:48 +00:00
Alex Ionescu
aafcd436d5 - Thread Support cleanup 1: Separate kthread.c into thrdobj.c (Exported and globally accesible functions dealing with the KTHREAD object) and thrdschd.c (Fully internal thread scheduling routines for Ke* only).
- Also fix KeSetAffinityThread to return the old affinity, instead of NTSTATUS and move NtYieldExecution from Ps to Ke, and move NtDelayExecution to wait.c
- No code changes.

svn path=/trunk/; revision=24024
2006-09-10 15:23:20 +00:00
Aleksey Bragin
f9b0ee1a03 vsnprintf -> _vsnprintf
svn path=/trunk/; revision=24023
2006-09-10 15:07:02 +00:00
Alex Ionescu
d2cb3868b7 - Add some definitions to ketypes.h
- Fix multiple bugs in KTHREAD/KPROCESS where signed char values were marked as unsigned (and define SCHAR in ntdef.h)
- Change prototype of KiSwapThread for future compatibility.
- Fix prototype of KeSetIdealProcessorThread.
- Add KiAcquireDispatcherLock, KiReleaseDispatcherLock, KiAcquireDispatcherLockAtDpcLevel, KiReleaseDispatcherLockFromDpcLevel to ke_x.h for future use.
- Add KiInsertDeferredReadyList, KiRescheduleThread, KiSetThreadSwapBusy, KiRundownThread, KiCheckDeferredReadyList for future use.
- Add KiAcquirePrcbLock, KiReleasePrcbLock, KiAcquireThreadLock, KiReleaseThreadLock for future use.
- Add KxQueueReadyThread, KiSelectReadyThread for future use.
- Add KiComputeNewPriority for future use.

svn path=/trunk/; revision=24022
2006-09-10 14:43:12 +00:00
Aleksey Bragin
098292d473 These DPRINT1s are ONLY for Magnus' debuggin session.
Correcting his mistake of commiting them to the tree.

(taskmgr.exe should work again)

svn path=/trunk/; revision=24021
2006-09-10 14:23:13 +00:00
Aleksey Bragin
b52f7b069b - Implement enable/disable of protection for PE sections in ntdll
- Finally get rid of duplicated relocation code in ntdll by using the relocate function from RTL and enable/disable protection
- Some improvements added to RTL's relocation function, it's split up into two functions now

svn path=/trunk/; revision=24020
2006-09-10 13:33:30 +00:00
Hervé Poussineau
65df8c2bad Revert part of r23972. Now we can boot again
(+ fix a little bug)

svn path=/trunk/; revision=24019
2006-09-10 10:26:58 +00:00
Aleksey Bragin
a9bca34078 Dmitry Philippov: Fix GCC4 warning
svn path=/trunk/; revision=24018
2006-09-10 09:31:44 +00:00
Aleksey Bragin
e90bd22c08 [AUDIT]
- Code duplication for relocation
- Widely documented PE loading algorithms
- Conclusion: clean

svn path=/trunk/; revision=24017
2006-09-10 08:35:30 +00:00
Aleksey Bragin
746299a0da - Move and slightly modify the relocation code to RTL, change its prototype so that it can be used in future in freeldr, ntdll and in kernel (right now there is code duplication, which is removed from kernel by this commit).
svn path=/trunk/; revision=24016
2006-09-10 08:00:57 +00:00
Hervé Poussineau
0fbf1539ac At last, enable screensaver
svn path=/trunk/; revision=24013
2006-09-10 02:22:12 +00:00
Hervé Poussineau
96bb2d5365 Add stub for SPI_GETSCREENSAVEACTIVE (which always return TRUE at the moment...)
svn path=/trunk/; revision=24012
2006-09-10 02:20:29 +00:00
Hervé Poussineau
c965755754 Remove screensaver implementation of win32k (ie revert revision 22879).
svn path=/trunk/; revision=24011
2006-09-10 01:20:53 +00:00
Hervé Poussineau
b61c75703c LastInputTick value should be in milliseconds, according to the help of GetTickCount in MSDN
svn path=/trunk/; revision=24010
2006-09-10 01:08:35 +00:00
Hervé Poussineau
54ad3ea87b Add missing entrypoint="0" directive in rbuild files [Part 2/2]
svn path=/trunk/; revision=24009
2006-09-09 22:55:57 +00:00
Hervé Poussineau
ae5f6b945d Add missing entrypoint="0" directive in rbuild files [Part 1/2]
svn path=/trunk/; revision=24008
2006-09-09 22:33:07 +00:00
Hervé Poussineau
bc6649b746 Put a NULL entry point if explicitly asked for. Thanks w3seek for his help on this issue
svn path=/trunk/; revision=24007
2006-09-09 20:39:50 +00:00
Christoph von Wittich
e10a07af00 *add support for the new SVN 1.4.x binary format
svn path=/trunk/; revision=24006
2006-09-09 20:38:41 +00:00
Magnus Olsen
eb1866f25c Implement GetLastInput base on bug 1753 patch by P43LOk,
It did not catch the last input tick  from keyboard or mouse. 
This code is not tested in reactos, but should work. 
See issue #1753 for more details.

svn path=/trunk/; revision=24005
2006-09-09 19:41:12 +00:00
Saveliy Tretiakov
70a18c5a4e Implement NtGdiGetPath (based on wine)
svn path=/trunk/; revision=24004
2006-09-09 19:26:43 +00:00
Hervé Poussineau
0f51b5f0bc Implement registry handle closing notifications in ntoskrnl
svn path=/trunk/; revision=24003
2006-09-09 19:08:37 +00:00
The Wine Synchronizer
4246de3191 Autosyncing with Wine HEAD
svn path=/trunk/; revision=24002
2006-09-09 17:48:42 +00:00
Hervé Poussineau
b5957ce896 Fix MsiDatabaseIsTablePersistentA/W prototype
Update msi_ros.diff file for upcoming update

svn path=/trunk/; revision=24001
2006-09-09 17:42:28 +00:00
Hervé Poussineau
8e420b3974 Implement "Check volume" page in usetup.
Doesn't work yet because VfatChkdsk() is not implemented

svn path=/trunk/; revision=24000
2006-09-09 17:11:03 +00:00
Hervé Poussineau
07f8340c15 Use Guid specified in device info set (if available) in SetupDiGetClassDevsExW.
Update some documentation (taken from Wine)

svn path=/trunk/; revision=23999
2006-09-09 17:10:51 +00:00
Hervé Poussineau
8dcf1980fe Set 2nd stage setup to language selected in registry
Try to use GetLastInputInfo API instead of a keyboard/mouse hook for screensaver (not enabled yet)

svn path=/trunk/; revision=23998
2006-09-09 17:10:42 +00:00
Hervé Poussineau
52d59f6a4f Don't use buffered input when reading username/password in text mode
svn path=/trunk/; revision=23997
2006-09-09 17:09:45 +00:00
Hervé Poussineau
4ca190a004 Remove useless member in DESKTOP_OBJECT structure
svn path=/trunk/; revision=23996
2006-09-09 17:09:33 +00:00
Hervé Poussineau
1dc7b0f6af Add VfatChkdsk() prototype
svn path=/trunk/; revision=23995
2006-09-09 16:47:09 +00:00
Saveliy Tretiakov
52c652809d revert last commit
svn path=/trunk/; revision=23993
2006-09-09 14:49:11 +00:00
Saveliy Tretiakov
b2dbae0fab Messageboxes shouldn't have WS_SYSMENU
svn path=/trunk/; revision=23992
2006-09-09 14:38:07 +00:00
Art Yerkes
812b97ae66 Correct bug in cache which could cause us to lose the last block of a file.
This is wierd and insidious, and probably was the cause of n00bs not being
able to boot on occasion.

svn path=/trunk/; revision=23990
2006-09-09 13:47:45 +00:00
Saveliy Tretiakov
68c6a664cf Replace MmCopyFromCaller with probing and seh.
svn path=/trunk/; revision=23988
2006-09-09 13:19:03 +00:00
Aleksey Bragin
e6bb607c6f [AUDIT]
- PE loading/relocating/fixups/etc is greatly documented in a number of sources (e.g. good russian-language article - http://www.uinc.ru/articles/41/, it has links to a different media describing loading process of PE)
- Nothing suspicious found in the code itself

svn path=/trunk/; revision=23987
2006-09-09 12:22:40 +00:00
Saveliy Tretiakov
c439fb86f7 Add winetests to bootcd
svn path=/trunk/; revision=23986
2006-09-09 11:42:52 +00:00
Aleksey Bragin
249e8c91ba Dmitry Philippov: GCC 4 compiling fixes for PackMgr and tests/wm_paint
svn path=/trunk/; revision=23985
2006-09-09 11:41:24 +00:00
KJK::Hyperion
dd77d1676b modified Resources/hresult.xml
Added S_OK and S_FALSE

modified   Resources/ntstatus.xml
    Added all possible STATUS_WAIT_XX codes as STATUS_WAIT_0 + XX

modified   TechBot.Console/App.config
    Don't use hard-coded paths, please!

modified   TechBot.Library/ErrorCommand.cs
    New and improved !error command, now performs heuristics to catch all possible or likely uses

modified   TechBot.Library/HresultCommand.cs
    Removed useless field

modified   TechBot.Library/NumberParser.cs
    Made a couple of methods static

modified   TechBot.Library/TechBotService.cs
    Disable !api until it fails gracefully

svn path=/trunk/; revision=23984
2006-09-09 10:53:28 +00:00
Art Yerkes
25c11e5f6e Make UNIMPLEMENTED available everywhere and remove some #ifdef cruft.
svn path=/trunk/; revision=23983
2006-09-09 09:41:09 +00:00
Thomas Bluemel
94a97e085a Added missing definitions
svn path=/trunk/; revision=23982
2006-09-09 09:26:26 +00:00
James Tabor
03a2724000 User32 static.c:
- Patch by Dmitry Timoshkov, modified for ReactOS.
    - Use computed icon rectangle if SS_CENTERIMAGE style is set.

svn path=/trunk/; revision=23981
2006-09-08 22:30:46 +00:00
Aleksey Bragin
9233af3e50 Add a bit of error reporting
svn path=/trunk/; revision=23980
2006-09-08 22:00:39 +00:00
The Wine Synchronizer
1869f86db6 Autosyncing with Wine HEAD
svn path=/trunk/; revision=23979
2006-09-08 20:13:51 +00:00
The Wine Synchronizer
8377230a7b Autosyncing with Wine HEAD
svn path=/trunk/; revision=23978
2006-09-08 20:12:06 +00:00
The Wine Synchronizer
5a367d19d2 Autosyncing with Wine HEAD
svn path=/trunk/; revision=23977
2006-09-08 20:08:45 +00:00
The Wine Synchronizer
527fb9fa9b Autosyncing with Wine HEAD
svn path=/trunk/; revision=23976
2006-09-08 19:33:33 +00:00
Aleksey Bragin
335e03625a Fix invalid charset (DOS -> Windows)
svn path=/trunk/; revision=23975
2006-09-08 15:39:34 +00:00
Hervé Poussineau
9243a83d80 Adapt usetup to handle more easily additional filesystems
This also prepares ground for the Chkdsk disk page

svn path=/trunk/; revision=23974
2006-09-07 22:42:28 +00:00
Alex Ionescu
e6fd23de2c - 1>Build Time 0:04
1>ReactOS Kernel - 0 error(s), 253 warning(s)
- Add winerror.h to ps/win32.c so it can get the Win32 error definition it needs (winerror.h doesn't add any other nasty win32 headers, so this isn't really a header policy violation).
- Fix prototypes of KdEnableDebugger and KdDisableDebugger.
- Write one of the cleanest and most ingenious hacks I've ever come up with it, which bypasses the incompatibility of hard-coded WDK externals.

svn path=/trunk/; revision=23973
2006-09-07 22:38:06 +00:00
Alex Ionescu
254f6b62ac - More MSVC fixes (down to 19 errors):
- Header changes: fix FILE_LOCK_INFO, LARGE_MCB, BASE_MCB, MM_SYSTEMSIZE.
- Remove many things in W32API which are incorrectly there (due to winnt being used by the win32api DDK). Defined them in the NDK instead, where appropriate (mostly definitions that are present in user-mode headers, but not kernel-mode headers).
- Hacked the ERESOURCE functions to define a special ERESOURCE_XP type. This is necessary because ERESOURCE is an opaque-yet-exported structure, and its structure changed in Vista.
- Removed support for IMAGE_SCN_TYPE_NO_LOAD. It is a reserved field and Windows does not "respect" it. (sections marked as no-load will still be loaded by NT).

svn path=/trunk/; revision=23972
2006-09-07 21:36:15 +00:00
Hervé Poussineau
7d80cdabff Add ufat.dll and the optional ufatx.dll (to be added later to repository)
svn path=/trunk/; revision=23971
2006-09-07 20:57:02 +00:00
Hervé Poussineau
8c22629a9e [FORMATTING] Fix tab/space mess by replacing them by 4 spaces. No code change
svn path=/trunk/; revision=23970
2006-09-07 20:15:45 +00:00
Hervé Poussineau
1b337150cc Update prototypes
svn path=/trunk/; revision=23969
2006-09-07 19:46:18 +00:00
James Tabor
2fad285b14 Removed NtUserGetKeyboardType, there was no win32k.db entry for it.
svn path=/trunk/; revision=23968
2006-09-07 19:23:39 +00:00
Thomas Bluemel
3a4bb3b8dc Yes we should do it as WINE. Fixes a buffer overflow in RtlDetermineDosPathNameType_U()
svn path=/trunk/; revision=23967
2006-09-07 19:20:42 +00:00
Hervé Poussineau
2417bf273f Correctly handle optional parameters
svn path=/trunk/; revision=23966
2006-09-07 19:16:47 +00:00
Hervé Poussineau
022504ad3c Some 64 bits fixes (approved by Filip)
svn path=/trunk/; revision=23965
2006-09-07 19:13:37 +00:00
Hervé Poussineau
a2548c11a4 Fix format.exe compilation
svn path=/trunk/; revision=23964
2006-09-07 18:08:00 +00:00
Hervé Poussineau
24ff7a71b4 Fix compilation
svn path=/trunk/; revision=23963
2006-09-07 17:55:51 +00:00
Hervé Poussineau
0d173915ac Correctly implement autochk, which now calls the ChkdskEx function in u{FS}.dll.
svn path=/trunk/; revision=23962
2006-09-07 17:54:23 +00:00
Hervé Poussineau
611b577fd6 Add a stub for FAT12/16/32 chkdsk
svn path=/trunk/; revision=23961
2006-09-07 17:44:08 +00:00
Hervé Poussineau
eb50899ee0 Declare prototype for ChkdskEx function in u{FS}.dll
svn path=/trunk/; revision=23960
2006-09-07 17:39:42 +00:00
Magnus Olsen
3387c46e16 fixed win32k build, trunks builds again thanks w3seek for the help
svn path=/trunk/; revision=23959
2006-09-07 17:35:31 +00:00
Hervé Poussineau
8f329a8565 Fix typo: _GNUC_ -> __GNUC__
svn path=/trunk/; revision=23958
2006-09-07 13:47:14 +00:00
Magnus Olsen
861ae4bcca fixed rosapps so it compiles again
svn path=/trunk/; revision=23957
2006-09-07 11:10:27 +00:00
Magnus Olsen
01acfd4778 fixed follow test, acclertor, alive, alphablend, bitblt, button, button2, capclock, carets, combotst, dibtest, dirdlg, DxHalTest, edit, enhmetafile, enumfonts, enumwnd, enumws, gradient, hello, hivtest, icontest, lineclip, linetest, mdi, midtest
svn path=/trunk/; revision=23956
2006-09-07 10:31:37 +00:00
Magnus Olsen
433252a084 fixed ctm, kill, lsdd, man, regexpl, tcat can be build again
svn path=/trunk/; revision=23955
2006-09-07 10:01:22 +00:00
Magnus Olsen
d6a960a884 fixed so packmgr builds again
svn path=/trunk/; revision=23954
2006-09-07 09:53:25 +00:00
Magnus Olsen
c410304d3c fixed waring msg newline
svn path=/trunk/; revision=23953
2006-09-07 09:46:50 +00:00
Magnus Olsen
d287153576 fixed all network apps in rosapps.
svn path=/trunk/; revision=23952
2006-09-07 09:42:17 +00:00
Magnus Olsen
e3d7c1e7aa 1. fixed mc build again
2. fixed some warnings

svn path=/trunk/; revision=23951
2006-09-07 09:17:39 +00:00
Johannes Anderwald
4d044a7f0d * fix building ntoskrnl
svn path=/trunk/; revision=23950
2006-09-07 09:06:47 +00:00
Magnus Olsen
a5ea7e70cd fixed gdb2 build thx hpoussin for the host info
svn path=/trunk/; revision=23949
2006-09-07 08:50:42 +00:00
Magnus Olsen
fa303561af fixed build for ddraw_demo
svn path=/trunk/; revision=23948
2006-09-07 08:29:06 +00:00
Magnus Olsen
e32b3e7588 fixed build for maze again
svn path=/trunk/; revision=23947
2006-09-07 08:26:54 +00:00
Magnus Olsen
b780b50b58 fixed build for touch again
svn path=/trunk/; revision=23946
2006-09-07 08:23:54 +00:00
Magnus Olsen
49b27aaae4 fixed mode can be compile again.
svn path=/trunk/; revision=23945
2006-09-07 08:20:29 +00:00
Magnus Olsen
bff34182eb update shlguid, remove the dublacte guid, winefiles can be build now again
svn path=/trunk/; revision=23944
2006-09-07 07:14:49 +00:00
Magnus Olsen
d6fbed40b0 include psdk shlguid.h
svn path=/trunk/; revision=23943
2006-09-07 07:13:07 +00:00
Magnus Olsen
e50296456b Fixed so explorer can be compiling again.
Have not tested with rest of reactos if this break any anything. 

svn path=/trunk/; revision=23942
2006-09-07 06:36:33 +00:00
Alex Ionescu
dd25974e25 - More MSVC fixes:
Additions or changes to headers: FSRTL_PER_FILEOBJECT_CONTEXT, FsRtlAreNamesEqual uses CONST buffers, KiIpiGenericCall + PKPIP_BROADCAST_WORKER, MmPageEntireDriver returns PVOID, Obf(De)referenceObject return LONG_PTR, KeGetPreviousMode is ExGetPreviousMode. KeGetCurrentPrcb is reimplemented in inline, MAX_PATH exposed to drivers.
- Changes: STATIC->static. static __inline ->FORCEINLINE. STDCALL -> NTAPI (Some). WORD/DWORD/BYTE -> NT Types.
- Kernel bugs fixed: Some string concatenations were broken, some functions had wrong return values.

svn path=/trunk/; revision=23941
2006-09-07 05:07:34 +00:00
Thomas Bluemel
17e434d5bd Add user32 to build notifyhook
svn path=/trunk/; revision=23940
2006-09-06 21:44:06 +00:00
Brandon Turner
80562db631 Link to shell32 so we can use CommandLineToArgvW when compiling unicode. Thanks to Usurp for finding the problem.
svn path=/trunk/; revision=23939
2006-09-06 21:17:23 +00:00
Johannes Anderwald
29a8ffa699 * add console.dll to bootcd
* add setting for unattended GUI setup (disabled)

svn path=/trunk/; revision=23938
2006-09-06 21:12:06 +00:00
Art Yerkes
e1ba8f15ae Fix this properly: specify the search path among our various header sets.
svn path=/trunk/; revision=23937
2006-09-06 20:58:02 +00:00
Art Yerkes
d7a2739bdf Ditto.
svn path=/trunk/; revision=23936
2006-09-06 20:31:11 +00:00
Art Yerkes
ec6a7a35c4 Added _fpreset prototype. Not sure why this isn't picked up here.
svn path=/trunk/; revision=23935
2006-09-06 20:30:28 +00:00
Thomas Bluemel
3c13ad4c32 Delete empty directory
svn path=/trunk/; revision=23934
2006-09-06 20:10:02 +00:00
Thomas Bluemel
02a7a31265 - Force using the import libraries built by ReactOS only, don't use the ones that come with the mingw compiler (doesn't work for CPP!)
- Import the mingw startup library and customized it a little. _tmain() is now supported, compiling an application as unicode is now just a matter of setting the module attribute unicode="true"
- Fixed .rbuild files to import all libraries neccessary
- Various GUID header changes and hacks to get everything to build/link properly
- Fixed the IShellView2 interface

svn path=/trunk/; revision=23933
2006-09-06 20:00:41 +00:00
Magnus Olsen
292bb9268e [Audlt] this file was written by filip for mingw w32sapi, and it contain few GUID from wine to keep wine dsound happy.
I did add the GUID from wine. 

svn path=/trunk/; revision=23932
2006-09-06 19:57:19 +00:00
Magnus Olsen
d009b08d81 [Audlt] this file was written by filip for mingw w32sapi and it same as mingw w32aspi,
svn path=/trunk/; revision=23931
2006-09-06 19:51:03 +00:00
Johannes Anderwald
753aa1c0e2 * halfplement reading / writing Console User settings
* remove hardcoded constants
* shuffle initialization code :-)
* changing console text / background color now works :-)))))))
* changing cursor works only for one input (needs be investigated)

svn path=/trunk/; revision=23930
2006-09-06 19:37:53 +00:00
Thomas Bluemel
7aae13b091 Fixed difference in signedness warnings
svn path=/trunk/; revision=23929
2006-09-06 19:28:35 +00:00
Thomas Bluemel
84269d7917 Fixed difference in signedness warnings
svn path=/trunk/; revision=23928
2006-09-06 18:59:30 +00:00
Aleksey Bragin
7f0a82ce58 Fix MSVC 2005 compilation (Platform SDK is correctly included)
svn path=/trunk/; revision=23927
2006-09-06 18:43:35 +00:00
Saveliy Tretiakov
1fc89de847 Some win32k docs (from win32k rewrite branch).
svn path=/trunk/; revision=23926
2006-09-06 16:31:03 +00:00
Alex Ionescu
f0af84da4e - MSVC Build Fixes
svn path=/trunk/; revision=23925
2006-09-06 12:19:00 +00:00
Magnus Olsen
173cb3c677 update it.rc languages translation by gabrielilardi at hotmail.it (Gabriel ilardi)
svn path=/trunk/; revision=23924
2006-09-05 20:46:24 +00:00
Saveliy Tretiakov
90759eb5a2 Call NtUserDrawCaption directly
svn path=/trunk/; revision=23923
2006-09-05 16:28:20 +00:00
Johannes Anderwald
4da1de7ca1 * msvc compiling fix
svn path=/trunk/; revision=23922
2006-09-05 10:14:40 +00:00
Brandon Turner
d6d0d40cad Implement CryptSignHashW based WINE and old CryptSignHashA. Change CryptSignHashA to call CryptSignHashW.
svn path=/trunk/; revision=23921
2006-09-04 22:51:28 +00:00
Hervé Poussineau
d5168c3b05 Allow allow lower case when being called
svn path=/trunk/; revision=23920
2006-09-04 22:16:43 +00:00
Hervé Poussineau
aa34958d1b Add a hack to enable formatting (was broken since at least r20156)
svn path=/trunk/; revision=23919
2006-09-04 21:58:38 +00:00
Johannes Anderwald
478f24b02b * use ConsoleInfo struct directly
* change type in global struct (avoid buffer overflow when reading value from registry)

svn path=/trunk/; revision=23918
2006-09-04 21:26:49 +00:00
Hervé Poussineau
94b07b79db Add ufat.dll, to be able to format drives to FAT and FAT32 format
svn path=/trunk/; revision=23917
2006-09-04 20:55:39 +00:00
Thomas Bluemel
7ed51f5c9e rename version.h to ver.h to avoid a possible conflict with include/reactos/version.h
svn path=/trunk/; revision=23916
2006-09-04 20:14:48 +00:00
Hervé Poussineau
90d5c19850 Remove Vfat(x)Initialize and Vfat(x)Cleanup which were empty
Remove vfatlib dependancy of fmifs.dll (Providers like ufat.dll are loaded dynamically at startup)

svn path=/trunk/; revision=23915
2006-09-04 19:27:19 +00:00
Hervé Poussineau
132cf4ece8 [FORMATTING] Add standard headers
Replace the mix of tabs/spaces by tabs
Replace STDCALL by NTAPI

svn path=/trunk/; revision=23914
2006-09-04 17:11:14 +00:00
Hervé Poussineau
4ba3312a81 Add prototypes for some fmifs.dll functions.
These have been found with trial and error on a MS Windows XP SP2 system with MS Visual Studio 2003

svn path=/trunk/; revision=23913
2006-09-04 16:46:13 +00:00
Hervé Poussineau
e094312326 Fix compilation of rosapps with gcc 3.4.5.
Thanks Gge on IRC

svn path=/trunk/; revision=23912
2006-09-04 16:29:00 +00:00
Johannes Anderwald
c12e6bbcba * move reading / applying options out of console.dll
* remove unused code
* notify win32csr when a property has changed

svn path=/trunk/; revision=23911
2006-09-04 13:13:42 +00:00
KJK::Hyperion
8ee7f4296b PSEH was based on clean-room reverse engineering (read: trial-and-error) and on the pre-existing work of Matt Pietrek, just like the exception handling code used in Wine. I, the author, declare it clean
svn path=/trunk/; revision=23910
2006-09-04 12:04:54 +00:00
James Tabor
ab4e2c9cf4 User32 bitmap.c:
- Patch by Michael Kaufmann
  - CopyImage: Handle the flags LR_COPYDELETEORG, LR_CREATEDIBSECTION, and LR_MONOCHROME.

svn path=/trunk/; revision=23906
2006-09-04 03:08:18 +00:00
James Tabor
76b17ae494 User32 combo.c:
- Patch by Dmitry Timoshkov
  - do not force repainting on WM_WINDOWPOSCHANGED in combobox, it
    breaks Z-order based painting.
  - do nothing in the combobox WM_ERASEBKGND handler do all painting in
    WM_PAINT like Windows does.


svn path=/trunk/; revision=23905
2006-09-04 03:03:14 +00:00
Magnus Olsen
09a8680165 Adding small hack to getting SetPixel color right when it is more that 3 bytes long.
This hack allown us pass one more test. (Debuging in progress)

svn path=/trunk/; revision=23904
2006-09-03 22:54:22 +00:00
Alex Ionescu
9fbb616938 - Final cleanup for now:
- main.c -> freeldr.c + cleanups and nice formatitng.
  - Move out variables that were in main.c to ex\init.c or cpu.c, depending.
  - Separate i386/kernel.c into i386/kiinit.c for X86-specific intiailization, and /krnlinit.c for portable initialization across all architectures. Also move out global variables appropriately.
  - main_asm.S -> cpu.S

svn path=/trunk/; revision=23903
2006-09-03 21:06:30 +00:00
Hervé Poussineau
00abb85d36 Reorder the file
Add some more defines/typdefs from Wine sspi.h
Fix a few typos

svn path=/trunk/; revision=23902
2006-09-03 21:02:09 +00:00
Alex Ionescu
c65323691c - Add Ke386SetInterruptDescriptorTable inlined function to set the IDT.
- Rename and fixup initial stacks, instead of using 16 different variables all with confusining meanings and values. Define P0BootStack as the initial kernel stack, and KiDoubleFaultStack as the double-fault trap (and initial DPC) stack.
- Fix call to KiInitializePcr which was setting an incorrect DPC stack.
- Make space on the initial stack for a KTRAP_FRAME as well, not only for the FPU save area.
- Also push initial CR0 NPX state on the initial stack.
- Load the IDT and GDT directly in KiRosPrepareForSystemStartup.
- Completely rewrite main_asm.S in Intel syntax and clean it up.

svn path=/trunk/; revision=23901
2006-09-03 19:57:55 +00:00
Aleksey Bragin
4eebe5e53f Add comptypeDIB definition to headers
svn path=/trunk/; revision=23900
2006-09-03 19:38:16 +00:00
Magnus Olsen
7fe1969532 Fixed one more bug, we did create wrong bpp if we got HDC = NULL for CreateDIBitmap, when I read wine code
it is always 1Bpp and 1Plans and we are doing same now if HDC is NULL, some wine test deepness on it. 
Hopply it will take care of some program problem. 

svn path=/trunk/; revision=23899
2006-09-03 18:16:08 +00:00
Alex Ionescu
c6f105da0b - Add Ke386SetFs, Ds, Es (using Ke386SetSeg) and Ke386SetTr new inlined commands.
- Also setup an NMI Task gate after the double fault task gate. Will be useful when we hand to handle NMIs later.
- Setup FS in KiSystemStartup and initialize the TSS before the PCR. Also add a bit more support for SMP systems (To skip boot-cpu-only initialization).
- Also setup DS/ES directly in KiSystemStartup.
- Initialize KD at phase 0 in KiSystemStartup, not in KiInitializeKernel, and also check for debug break at this time.

svn path=/trunk/; revision=23898
2006-09-03 17:18:08 +00:00
Hervé Poussineau
25090facc3 Allow setup to detect extended partitions
svn path=/trunk/; revision=23896
2006-09-03 12:32:15 +00:00
Alex Ionescu
d8155f97a7 - Remove LDT initialization, LDT shouldn't be initialized at bootup.
- Move LDT-only GDT routines to ldt.c
- Cleanup formatting of GDT-related exported function stubs in gdt.c and rename file to abios.c. Those routines deal specifically with the ABIOS GDT selectors and are for ABIOS support.
- Move the lone 2 routines in fpu.c to cpu.c.

svn path=/trunk/; revision=23895
2006-09-03 07:13:02 +00:00
Alex Ionescu
6b42f391e0 - Fix KTSS definition.
- Add GetSegment inlines (ie: GetSs, GetDs, etc)
- Fix up definition of KiBootGdt to use KGDTENTRY instead of USHORT. Also define KiGdtDescriptor using KDESCRIPTOR.
- Remove GDT initialization code completely. The GDT is already initialized on boot.
- Remove tss.c and add KiInitializeTss(2) to setup a TSS and proper IOPM/Interrupt Direction map settings for V86/VDM.
- Copy the TSS code over but prettyify it to use NT/NDK structures instead of ugly USHORT typecasts.

svn path=/trunk/; revision=23894
2006-09-03 06:51:03 +00:00
Magnus Olsen
00f50dd922 Fixed some more wine test for NtGdiGetDIBits
FIxed so we can now create BITMAPCOREHEADER bitmap (Bugs in NtGdiGetDIBits did stop create of it) 



svn path=/trunk/; revision=23892
2006-09-02 23:58:53 +00:00
Magnus Olsen
7aa07b393c 1. Copy DIB_GetBitmapInfo from wine cvs (date 2/9-2006)
2. Bugfix NtGdiGetDIBits the BITMAPCOREHEADER is not same as BITMAPINFOHEADER
   we now separate it in if(Bits==NULL) that will allow us pass two more wine tests
   follow winetest is working now 
   1. bitmap.c 227 Test failed: GetDIBits doesn't work with a BITMAPCOREHEADER 
   2. bitmap.c 233 GetDIBits doesn't work with a BITMAPCOREHEADER 
   both of them are fixed now 

svn path=/trunk/; revision=23891
2006-09-02 21:02:03 +00:00
Aleksey Bragin
7bfe48177c Separate Device Manager code (what was left from it in hub.c) from Hub code
svn path=/trunk/; revision=23890
2006-09-02 20:32:50 +00:00
Alex Ionescu
252a2d1598 - Part 2 of 2: Implement KiDispatchInterrupt in assembly since it's 1) Perf-critical 2) Requires us to switch the stack to the DPC stack, which is unsafe (and impossible, unless inlining) in C.
svn path=/trunk/; revision=23889
2006-09-02 19:53:24 +00:00
Alex Ionescu
0f9c7bdf03 - Part 1.5 of 2: Re-factor KiDispatchInterrupt to separate DPC delivery routine (so that it can stay in C, since KiDispatch should be done in ASM so we can switch stacks).
- Use interrupt enable/disable instead of raising to HIGH_LEVEL.
  - Better use and pairing of locks.
  - Fix a lot of race conditions in DPC dispatching, due to the fact almost all data we're touching is ultra-volatile and can change at any time depending on various locks being held/released + interrupt state.
  - Add stub code/support for tick-hased table-based timer implementation and deferred threads.

svn path=/trunk/; revision=23888
2006-09-02 19:12:31 +00:00
Alex Ionescu
7802140549 - Fix a bug in RtlFillMemory.
- Fix overlap check comments.

svn path=/trunk/; revision=23887
2006-09-02 16:36:48 +00:00
Alex Ionescu
38ca1d7d77 - Add missing volatile statements to KPROCESS, KTHREAD, KPRCB and KDPC_DATA.
- Fix KDPC definition in DDK. You can always count on the w32api to get even the simplest structures wrong.
- Fix memory overwrite bug in KiInitSpinlocks.
- Part 1 of 2: Cleanup and improve DPC implementation to add partial support for Threaded DPCs and remove SMP vs non-SMP ifdefs. (At the expense of, oh God, 5 wasted CPU cycles!).

svn path=/trunk/; revision=23886
2006-09-02 16:19:00 +00:00
Aleksey Bragin
ea0c0daec0 Add forgotten "xs-native.cpp" to the MSVC project of ROS Explorer
svn path=/trunk/; revision=23885
2006-09-02 11:27:36 +00:00
The Wine Synchronizer
99b4a1d7ee Autosyncing with Wine HEAD
svn path=/trunk/; revision=23883
2006-09-02 06:27:09 +00:00
The Wine Synchronizer
8dff62e1f8 Autosyncing with Wine HEAD
svn path=/trunk/; revision=23882
2006-09-02 06:24:20 +00:00
Alex Ionescu
aa69c69afb - Move machine-specific initializations to KeInit2.
- Initialize bugcheck messages much earlier, separate clock initialization from KeInit2.
- Completely move out and isolate ROS/FREELDR PE loading hacks to KiRosPrepareForSystemStartup so that KiSystemStartup is clean of them.

svn path=/trunk/; revision=23881
2006-09-02 05:10:16 +00:00
Alex Ionescu
ea01969067 - More Initialization changes:
- Initialize bugcheck lists, timer DPC, profile list/locks, timer lists, the swap lists and syscall table as part of KiInitSystem (portable).
   - Add more initialization for the initial/idle process+thread (some code disabled due to dispatcher problems).
   - Add code to support future Timer implementation (based on tick-hashes)
   - Separate post-boostrap initialization code in KiInitializeKernel.
   - Add some support for future SMP paths.
   - Create a DPC stack.
- Changes based on WI4 and my automated parsing tool.

svn path=/trunk/; revision=23880
2006-09-02 04:40:09 +00:00
Alex Ionescu
deed4ed0d6 - More kernel initialization changes and cleanups.
- Start support for an initial boot thread.

svn path=/trunk/; revision=23879
2006-09-02 02:59:44 +00:00
Thomas Bluemel
dbf97f3b50 Fix creating the console system menu items
svn path=/trunk/; revision=23878
2006-09-01 23:18:23 +00:00
Hervé Poussineau
c2d18fb0b6 Add softpub.h header
svn path=/trunk/; revision=23877
2006-09-01 23:06:32 +00:00
The Wine Synchronizer
abb022f081 Autosyncing with Wine HEAD
svn path=/trunk/; revision=23876
2006-09-01 22:47:57 +00:00
Hervé Poussineau
e1d577c47c Add a stub sensapi.dll. This is a step to fix bug 1751
svn path=/trunk/; revision=23875
2006-09-01 22:41:31 +00:00
Hervé Poussineau
43d85c0abc Add some error codes (taken from Wine)
svn path=/trunk/; revision=23874
2006-09-01 22:10:56 +00:00
Thomas Bluemel
00c354405e Don't call BeginPaint/EndPaint while processing a WM_DRAWITEM message
svn path=/trunk/; revision=23873
2006-09-01 21:53:31 +00:00
Thomas Bluemel
c474673ac7 disable code that dereferences a random pointer
svn path=/trunk/; revision=23871
2006-09-01 18:56:06 +00:00
Thomas Bluemel
13e3041822 Don't leak a reference in NtReleaseSemaphore() in case KeReleaseSemaphore() raises and exception
svn path=/trunk/; revision=23870
2006-09-01 18:41:00 +00:00
Thomas Bluemel
4a586b2eb2 remove superfluous dereference
svn path=/trunk/; revision=23869
2006-09-01 18:20:44 +00:00
Ged Murphy
61059050bb - Use a more generic print service
- don't assign a service name at the start as it causes problems when query(ex) doesn't supply one.
- Simplify the service starting code.
- Add missing options to the print type
- rewrite the querying functionality to be cleaner, and use existing code.
- remove the braces I left, used for collapsing dbg info

svn path=/trunk/; revision=23868
2006-09-01 16:55:36 +00:00
Eric Kohl
9e843c89fc Fix indentation, no code changes.
svn path=/trunk/; revision=23867
2006-09-01 15:49:50 +00:00
Alex Ionescu
a85e942346 - More initialization cleanup.
svn path=/trunk/; revision=23866
2006-09-01 13:13:08 +00:00
Hervé Poussineau
562f8391e8 Fix build when compilation units are enabled for usetup.c
svn path=/trunk/; revision=23865
2006-09-01 12:58:56 +00:00
Alex Ionescu
5244a29dad - Fix bugs in RtlCompareMemory, RtlCompareMemoryULong
svn path=/trunk/; revision=23864
2006-09-01 12:38:57 +00:00
Eric Kohl
6b8b0b56b2 Remove trailing whitespace
svn path=/trunk/; revision=23863
2006-09-01 11:16:32 +00:00
Hervé Poussineau
f05d1bb617 Fix option selection in bootcd
Fix SetupOpenFileQueue, SetupCloseFileQueue and SetupCommitFileQueueW prototypes to match setupapi.dll ones

svn path=/trunk/; revision=23862
2006-09-01 09:53:33 +00:00
Alex Ionescu
30f4d83978 - Add back defines accidentaly removed.
svn path=/trunk/; revision=23854
2006-09-01 03:19:25 +00:00
Alex Ionescu
ad9fdb1ae3 - Fix bug in RtlZero, Fill, Move memory where the last 1-3 bytes weren't being copied.
svn path=/trunk/; revision=23853
2006-09-01 03:15:32 +00:00
Alex Ionescu
369f93b984 - Multiple changes to low-level Kernel initalization sequence to bring it a bit closer to Windows.
- Main difference is new CPU detection algorithms for ID, cache, etc, as well as using KF_ Kernel Feature bits instead of x86 CPU features (For portability).
- Also many many other cleanups and re-sequencing.

svn path=/trunk/; revision=23852
2006-09-01 03:05:30 +00:00
Ged Murphy
3c411c196d forgot to turn debugging off
svn path=/trunk/; revision=23850
2006-08-31 22:51:28 +00:00
Alex Ionescu
01081d279e - Some cleanups
- Add support for recovering from user-mode win32k callback fault.
- Also add support for debug register saving/reloading during user-mode callbacks and return.

svn path=/trunk/; revision=23849
2006-08-31 18:10:11 +00:00
Ged Murphy
158e4c116a first commit of an overhaul of sc.exe
- establish a connection to the SCM for each separate request, allowing the minimum privlidges required, instead of a generic (over privlidged) one.
- start to move service printing to separate functions and reduce code duplication
- make output 100% as per Windows
- fix some commands, e.g. 'interrogate'
- improve error checking
- improve code structure

svn path=/trunk/; revision=23848
2006-08-31 17:59:02 +00:00
Eric Kohl
8537a75fba Pass additional arguments to a service when it is started by a call to StartService.
svn path=/trunk/; revision=23846
2006-08-31 17:16:19 +00:00
Alex Ionescu
5a633f8fc9 - Remove some deprecated code and custom ROS exports/code.
svn path=/trunk/; revision=23845
2006-08-31 17:10:58 +00:00
Thomas Bluemel
87ab1c53a7 Add stubs for the condition variable functions
svn path=/trunk/; revision=23844
2006-08-31 16:56:49 +00:00
Aleksey Bragin
26b82125e5 Change a very ugly done DbgPrint() function to a good implementation. Now Freeldr shows all DPRINTs from e.g. cmlib correctly.
svn path=/trunk/; revision=23843
2006-08-31 16:08:17 +00:00
Aleksey Bragin
5cd8b68023 Sylvain Petreolle: Partly fix unicode build of cmd (a typo)
svn path=/trunk/; revision=23842
2006-08-31 14:14:42 +00:00
Hervé Poussineau
02d5b53e84 Add ATTACH_PARENT_PROCESS constant
svn path=/trunk/; revision=23841
2006-08-31 14:11:33 +00:00
Hervé Poussineau
1ebc320243 Remove some code duplication when calling PopupError
Add ConAttachConsole stub

svn path=/trunk/; revision=23840
2006-08-31 12:35:39 +00:00
Hervé Poussineau
8b597b0970 Fix build for Linux people, where gcc claims that it doesn't support I64 for printf. Thanks Usurp on IRC
svn path=/trunk/; revision=23839
2006-08-31 12:31:34 +00:00
Hervé Poussineau
ed70ab7f26 Fix Linux build (filename case problem...) Thanks gregj on IRC
svn path=/trunk/; revision=23837
2006-08-31 11:09:05 +00:00
Hervé Poussineau
cc2684d474 Cleanup in .inf file handling of usetup:
- Equivalent setupapi functions have the same protoype as in Win32 API
- Extra functions have the INF_* prefix

svn path=/trunk/; revision=23836
2006-08-31 09:13:03 +00:00
Hervé Poussineau
f52bca045b Clean up console functions in usetup. We now have 2 categories:
- The same functions as in Win32 Console API, prefixed with Con
- The helpers (which call Con* functions) prefixed with CONSOLE_
Do according changes in other files

svn path=/trunk/; revision=23834
2006-08-31 06:14:25 +00:00
Alex Ionescu
e870b20916 - Don't do fast system calls with the wrong DS/ES selectors.
- Properly load DS/ES on system startup and GDT load
- Use proper DS/ES during deprecated IRQ handling.
- Always use GS as 0 for all of the above.
- *FINALLY* fixes the oldest bug there ever was -> DS/ES corruption noticed in VMWare (And recently in QEMU+KERNELKQEMU, since it behaves internally like vmware). Hacks in trap code have FINALLY been removed!

svn path=/trunk/; revision=23833
2006-08-31 05:25:58 +00:00
Alex Ionescu
d2ba2fdc17 - Implement more parts of the GPF Handler.
- Add support for lazy loading.
- QEMU + -kernel-qemu seems to work now.
- Hack away the Win32k bug that's been there for ages (copy to user-mode from kernel-mode failing due to probe due to incorrect previous mode). It's not the right fix, but nobody seems to be willing to fix it, and it doesn't make anything less stable, sicne the actually copy is in SEH anyway. It opens a security vuln. (wow, not like we have 15000) in exchange for fixing dozens of win32k bugs and failures.

svn path=/trunk/; revision=23832
2006-08-31 04:10:33 +00:00
Pablo Borobia
e82f58c755 Testing commit
svn path=/trunk/; revision=23831
2006-08-31 03:12:14 +00:00
Alex Ionescu
e4e58dde50 - Write new, optimized, small, working and clean functions (fixes booting, last few commits broke it for me):
- RtlCompareMemory
    - RtlCompareMemoryUlong
    - RtlFillMemory
    - RtlFillMemoryUlong
    - RtlFillMemoryUlongUlong
    - RtlMoveMemory
    - RtlZeroMemory
    - RtlPrefetchMemoryNonTemporal
    - RtlUshortByteSwap
    - RtlUlongByteSwap
    - RtlUlonglongByteSwap

svn path=/trunk/; revision=23830
2006-08-31 01:20:55 +00:00
Thomas Bluemel
5b8d955fb7 Fix difference in signedness warnings
svn path=/trunk/; revision=23829
2006-08-30 21:47:38 +00:00
Thomas Bluemel
1fcf9ceba0 Use the new ProbeForWriteIoStatusBlock macro
svn path=/trunk/; revision=23828
2006-08-30 21:45:17 +00:00
Thomas Bluemel
176e324621 - Fix some probing macros
- Add probing macros for IO_STATUS_BLOCK structures
- Added two inline functions ProbeArrayForRead() and ProbeArrayForWrite(), mainly for use in win32k as they also check for integer overflows.

svn path=/trunk/; revision=23827
2006-08-30 21:44:12 +00:00
Magnus Olsen
0d6e03c305 Wrote RtlUshotByteSwap RtlUlongByteSwap and RtlUlonglongByteSwap to asm code.
but we need a C api for header to linking it right. Put the asm version to i386 

svn path=/trunk/; revision=23826
2006-08-30 21:17:53 +00:00
Thomas Bluemel
73120d4d50 Revert r23824. This needs to go into the clipboard branch for now.
svn path=/trunk/; revision=23825
2006-08-30 20:59:32 +00:00
Pablo Borobia
0effbf25dc * added GetLayout definition
* added Clipboards definitions
* added GetLastInputInfo definition

svn path=/trunk/; revision=23824
2006-08-30 20:56:17 +00:00
Thomas Bluemel
a65807043a Revert r23810, r23811, r23813. The clipboard changes are in the clipboard branch for now.
svn path=/trunk/; revision=23823
2006-08-30 20:40:07 +00:00
Hervé Poussineau
15d6307da5 mpr.dll can now be autosynced with Wine
svn path=/trunk/; revision=23822
2006-08-30 20:37:56 +00:00
Ged Murphy
08ecb38f3b update msi wine regtest
svn path=/trunk/; revision=23821
2006-08-30 20:37:49 +00:00
Ged Murphy
0ce8d02acc update comctl32 winetest
svn path=/trunk/; revision=23818
2006-08-30 20:28:33 +00:00
Hervé Poussineau
42b655b8f9 avifil32.dll can now be autosynced with Wine
svn path=/trunk/; revision=23816
2006-08-30 20:16:11 +00:00
Hervé Poussineau
85bfb7d006 wineimport.cmd (>= r23814) is now able to handle msi.dll autosync. Mark it as such.
svn path=/trunk/; revision=23815
2006-08-30 20:01:42 +00:00
Pablo Borobia
fc86ed2df2 * Added more clipboard regression tests
svn path=/trunk/; revision=23813
2006-08-30 19:46:40 +00:00
Hervé Poussineau
4c7a515ebc Add msi_ros.diff
svn path=/trunk/; revision=23812
2006-08-30 19:41:09 +00:00
Pablo Borobia
38bee199b7 shel32.dll part:
* Clipboard implemtation in win32k and user32
* Added a clipboard system for each Window Station
* GetLastInputInfo implementation
* GetLayout in win32k Stubs
* Shell32 changes to cut/copy & paste link/paste
* Implemented ALT+PrintScreen to clipboard

svn path=/trunk/; revision=23811
2006-08-30 19:35:54 +00:00
Pablo Borobia
5a624910f1 user32.dll part:
* Clipboard implemtation in win32k and user32
* Added a clipboard system for each Window Station
* GetLastInputInfo implementation
* GetLayout in win32k Stubs
* Shell32 changes to cut/copy & paste link/paste
* Implemented ALT+PrintScreen to clipboard

svn path=/trunk/; revision=23810
2006-08-30 19:35:22 +00:00
Alex Ionescu
3d10f77c92 - It should now be safe to remove the V86 ESP0 hack, since V86 mode works fine (tested on VMWare/QEmu).
svn path=/trunk/; revision=23809
2006-08-30 19:29:16 +00:00
Hervé Poussineau
21aef1a7a7 Update MSI to current Wine version.
Autosync will be put in place very soon for this dll.

svn path=/trunk/; revision=23808
2006-08-30 19:24:26 +00:00
Ged Murphy
6d52441d10 [WINESYNC]
update comctl32 to Wine_0.9.20

svn path=/trunk/; revision=23807
2006-08-30 19:18:49 +00:00
Thomas Bluemel
900bf1a753 Implement Slim Reader/Writer (SRW) locks:
- Implement AcquireSRWLockExclusive(), AcquireSRWLockShared(), InitializeSRWLock(), ReleaseSRWLockExclusive(), ReleaseSRWLockShared()
- NOTE: Some versions of GCC have a code generation bug with specially aligned structures on the stack. If compiled with such a compiler, the code might trigger special assertions. Pushlocks are also affected by this compiler bug.
- NOTE: The algorithms are most likely not the same as in Windows. Applications are supposed to treat the lock variables as opaque data, therefore it shouldn't matter.

svn path=/trunk/; revision=23806
2006-08-30 19:02:42 +00:00
Hervé Poussineau
538082297d Fix MsiGetFeatureStateA/W and MsiGetComponentStateA/W prototypes
svn path=/trunk/; revision=23805
2006-08-30 18:08:21 +00:00
Magnus Olsen
ec839eb8e2 Kill inline asm code compete in RtlUlongByteSwap for it doing swap wrong.
we go back using the C version. Thanks Fireball  

svn path=/trunk/; revision=23804
2006-08-30 17:51:36 +00:00
Alex Ionescu
7ea78797f2 - Fix KeRaiseUserException (can't use "return" from SEH_HANDLE).
svn path=/trunk/; revision=23803
2006-08-30 17:01:58 +00:00
Alex Ionescu
5fc996c43e - Some fixes to KiDispatchException: Add support for forwarding exception back to user-mode, protect against V86 or invalid-stack faults, handle stack overflow exception while handling usermode exception (Thanks KJK for the SEH_FILTER help). Decrement EIP by one when hitting an INT3, to get the correct address.
- Remove two associated kernel fun entries.

svn path=/trunk/; revision=23802
2006-08-30 16:58:12 +00:00
Eric Kohl
99e4b3809f - fix indentation and remove trailing whitespace
- StartServiceA/W: terminate argument buffer with a double zero.

svn path=/trunk/; revision=23801
2006-08-30 10:53:37 +00:00
Hervé Poussineau
a301256472 Add missing includes in .rc file
Sort them in alphabetical order

svn path=/trunk/; revision=23800
2006-08-30 10:40:59 +00:00
Magnus Olsen
0b5c566337 Implement RtlRandomEx by copy RtlRandom code.
ms have two different implement, One random is faster that other, (in some doc I read (maybe from osr) some year ago),  the RtlRandomEx  is not document in the free ddk/sdk, but it is include in ddk/ifs kit, according the doc. 

svn path=/trunk/; revision=23799
2006-08-30 10:13:01 +00:00
Johannes Anderwald
5a487c19e7 * remove useless cast
svn path=/trunk/; revision=23798
2006-08-30 09:45:08 +00:00
Johannes Anderwald
29b76a30a2 - fix definition of FONTENUMPROC
svn path=/trunk/; revision=23797
2006-08-30 09:17:47 +00:00
Alex Ionescu
841fa5cc41 - Update kernel fun.
svn path=/trunk/; revision=23796
2006-08-30 06:56:06 +00:00
Alex Ionescu
1b0f8e7e81 - Implement RtlCaptureStackBackTrace and RtlWalkFrameChain and add definitions to ntifs.h
- Get rid of KeRosGetStackFrames and replace usage by RtlWalkFrameChain or RtlCaptureStackBackTrace, depending.
- Remove this entry from Kernel Fun.

svn path=/trunk/; revision=23795
2006-08-30 06:52:10 +00:00
Alex Ionescu
a9bb1c6668 - Add about two dozen new bugcheck codes and strings.
- Major cleanup of exp.c to move out deprecated and old code.
- Use KdDebuggerNotPresent to determine if KDBG is there or not. KdDebuggerEnable is now set whenever booting with debugging -- even if only serial port or screen debugging.
- Complete cleanup and major rewrite/improvement of bugcheck code:
  - Moved stack dump routines to bug.c and cleaned them up. Next step is to remove most of them and implement them properly as part of RtlCaptureStackBackTrace and RtlWalkFrameChain.
  - Use InbvDisplayString for everything now. BSODs will only truly show on screen. (however, part of the KeBugCheckWithTf improvements, a special "if debugger enabled" BSOD will also be displayed for debugging purposes).
  - Do checksum calculation in bugcheck callbacks.
  - Detect and display which drivers belong to which EIP.
  - Implemented code to select the proper verbose BSOD message depending on the bug check code.
  - Also implemented code to detect a variety of "known" bug check codes and to recover more data on them, and/or modify them accordingly. Sadly ROS doesn't yet make use of most of these codes.
  - Factored out and split some code into individual routines.
  - Look and functionality is now identical to Windows XP.
  - Stack trace will only be shown if KDBG isn't connected. If KDBG is connected you can do "bt" anyway (which is more powerful).

svn path=/trunk/; revision=23794
2006-08-30 05:22:56 +00:00
Alex Ionescu
655e78f3cc - Jesus Christ... will Hell freeze over before someone finally listens and implements a proper PE loader in Freeloader?
svn path=/trunk/; revision=23793
2006-08-30 01:22:41 +00:00
Hervé Poussineau
ab77204ef9 Implement RegNtPreEnumerateValueKey/RegNtPostEnumerateValueKey registry callbacks.
Add missing callbacks in some paths
Fix a few typos

svn path=/trunk/; revision=23792
2006-08-29 23:01:52 +00:00
Brandon Turner
7b27e1c573 Better rand() implementation. This should fix the problem where you get 0 every time you use rand()
svn path=/trunk/; revision=23791
2006-08-29 22:27:48 +00:00
Magnus Olsen
0a5a03e8d1 found more inline asm.
1. move all inline asm to folder i386
2. to do : seh.s should be rewrites to intel syntax 
3. to do : almost all c files in folders i386 need be convert to true asm instead using inline asm 
4. add dection for x86 arch in rbuild for each found I have done 


svn path=/trunk/; revision=23790
2006-08-29 19:14:18 +00:00
Magnus Olsen
d43aed9f5c Audult : code is from djgpp most of it, ReactOS own code is like two line long
svn path=/trunk/; revision=23789
2006-08-29 19:10:12 +00:00
Magnus Olsen
f4b5816b23 [Audut] clean, after locking at the header I can see clear they comes from wine/djgpp with small changes in some headers that is ros specify.
svn path=/trunk/; revision=23788
2006-08-29 18:31:06 +00:00
Magnus Olsen
40e426cce5 Detect i386 asm code for setjump (we only have one asm version I add arch dections for it in rbuild
svn path=/trunk/; revision=23787
2006-08-29 18:03:24 +00:00
Magnus Olsen
3c0cd4da37 1. Rewote atan.c to pure asm
2. Rewote log10 to pure asm
3. Delete unuse c/asm files like ceil, cos, fabs, flor, sin, sqrt, and tan 
4. Switch to rtl asm version of pow 
5. Follow need be convert to asm atan2, exp, fmod, ldexp
6. Follow need c version  atan2, exp, fmod, ldexp, atan, log10, pow
7. Add i386 arch dections in rbuild for asm/inline asm so we using only i386 asm on x86 cpu 
 

svn path=/trunk/; revision=23784
2006-08-29 17:51:13 +00:00
3907 changed files with 373580 additions and 446254 deletions

View File

@@ -1,46 +0,0 @@
<?xml version="1.0"?>
<!--
Copyright (C) 2005 Casper S. Hornstrup
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-->
<project name="ReactOS.ApiStatus" default="publish">
<property name="reactos.dir" value="reactos" />
<property name="apistatus.xsl" value="rapistatus.xsl" />
<property name="apistatus.xml" value="rapistatus.xml" />
<property name="apistatus.html" value="index2.html" />
<include buildfile="config.include" />
<target name="publish">
<delete dir="${reactos.dir}" if="${directory::exists(reactos.dir)}" />
<exec program="svn" commandline="export -r HEAD ${source.url} ${reactos.dir}" />
<exec program="rgenstat" commandline="reactos\apistatus.lst ${apistatus.xml}" />
<style style="${apistatus.xsl}" destdir="${reactos.dir}" in="${apistatus.xml}" out="${apistatus.html}" />
<copy todir="${publish.dir}" overwrite="true">
<fileset basedir=".">
<include name="${apistatus.xml}" />
<include name="${apistatus.html}" />
</fileset>
</copy>
<delete>
<fileset basedir=".">
<include name="${apistatus.xml}" />
<include name="${apistatus.html}" />
</fileset>
</delete>
<delete dir="${reactos.dir}" if="${directory::exists(reactos.dir)}" />
</target>
</project>

View File

@@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2005 Casper S. Hornstrup
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-->
<project>
<property name="source.url" value="svn://svn.reactos.com/trunk/reactos" />
<property name="publish.dir" value="C:\api" />
</project>

View File

@@ -1,199 +0,0 @@
<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" indent="no"/>
<!-- <xsl:output method="xml"/>-->
<!-- Will not work: <xsl:strip-space elements="*"/> -->
<xsl:template match="/">
<HTML>
<HEAD>
<TITLE>
ReactOS API Status
</TITLE>
<SCRIPT src="rapistatus.js"></SCRIPT>
<LINK rel="stylesheet" type="text/css" href="rapistatus.css"></LINK>
</HEAD>
<BODY onLoad="onLoad();">
<P>
<H1>ReactOS API Status</H1>
</P>
<P>
<TABLE>
<TR>
<TD> <INPUT type="checkbox" ID="implemented" onClick="selectImplemented();" checked="1"/> </TD>
<TD> <IMG src="i.gif"/> </TD>
<TD> Implemented </TD>
<TD width="20"/>
</TR>
<TR>
<TD> <INPUT type="checkbox" ID="unimplemented" onClick="selectUnimplemented();" checked="1"/> </TD>
<TD> <IMG src="u.gif"/> </TD>
<TD> Unimplemented </TD>
<TD width="20"/>
</TR>
</TABLE>
</P>
<DIV ID="ROOT">
<xsl:apply-templates/>
</DIV>
<P>
Legend :<BR/>
<TABLE>
<TR>
<TD> <IMG src="c.gif"/> </TD>
<TD> Component </TD>
<TD> <IMG src="i.gif"/> </TD>
<TD> Implemented </TD>
<TD> <IMG src="sc.gif"/> </TD>
<TD> Complete </TD>
<TR>
</TR>
<TD> <IMG src="f.gif"/> </TD>
<TD> Function </TD>
<TD> <IMG src="u.gif"/> </TD>
<TD> Unimplemented </TD>
<TD></TD>
<TD></TD>
</TR>
</TABLE>
</P>
</BODY>
</HTML>
</xsl:template>
<!-- component -->
<xsl:template match="/components">
<xsl:apply-templates select="component">
<xsl:sort select="@name"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="components/component[@implemented_total or @unimplemented_total]">
<DIV>
<xsl:call-template name="ELEMENT">
<xsl:with-param name="class">c</xsl:with-param>
</xsl:call-template>
<xsl:apply-templates>
<xsl:with-param name="base"><xsl:value-of select="@base"/></xsl:with-param>
</xsl:apply-templates>
</DIV>
</xsl:template>
<!-- function -->
<xsl:template match="functions">
<xsl:param name="base"/>
<xsl:apply-templates select="f">
<xsl:sort select="@n"/>
<xsl:with-param name="base"><xsl:value-of select="$base"/></xsl:with-param>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="functions/f">
<xsl:param name="base"/>
<DIV>
<xsl:call-template name="ELEMENT">
<xsl:with-param name="class">f</xsl:with-param>
<xsl:with-param name="base"><xsl:value-of select="$base"/></xsl:with-param>
</xsl:call-template>
<xsl:apply-templates/>
</DIV>
</xsl:template>
<!-- support templates -->
<xsl:template name="ELEMENT">
<xsl:param name="class"/>
<xsl:param name="base"/>
<xsl:param name="image"/>
<xsl:attribute name="class">
<xsl:value-of select="$class"/>
<xsl:text>_</xsl:text>
</xsl:attribute>
<xsl:call-template name="toggle"/>
<xsl:choose>
<xsl:when test="local-name() != 'component' and @i = 'true'">
<img src="i.gif" class="i"/>
</xsl:when>
<xsl:when test="local-name() != 'component' and @i = 'false'">
<img src="u.gif" class="u"/>
</xsl:when>
<xsl:when test="local-name() = 'component' and @complete >= 100">
<img src="sc.gif"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@i"/><img src="tb.gif" with="12" height="12"/>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="$image">
<img src="{$image}.gif" class="t"/>
</xsl:when>
<xsl:otherwise>
<img src="{$class}.gif" class="t"/>
</xsl:otherwise>
</xsl:choose>
<xsl:call-template name="name"/>
<xsl:call-template name="n"/>
<xsl:call-template name="file">
<xsl:with-param name="base"><xsl:value-of select="$base"/></xsl:with-param>
</xsl:call-template>
<xsl:call-template name="status"/>
</xsl:template>
<xsl:template name="status">
<xsl:if test="@complete and @complete != 0">
<SPAN class="st">
<img src="sc.gif"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="@complete"/>
<xsl:text>%</xsl:text>
</SPAN>
</xsl:if>
<xsl:if test="@implemented_total">
<SPAN class="st">
<img src="i.gif"/>: <xsl:value-of select="@implemented_total"/>
</SPAN>
</xsl:if>
<xsl:if test="@unimplemented_total">
<SPAN class="st">
<img src="u.gif"/>: <xsl:value-of select="@unimplemented_total"/>
</SPAN>
</xsl:if>
</xsl:template>
<xsl:template name="toggle">
<xsl:choose>
<xsl:when test="local-name() = 'component'">
<IMG src="tp.gif" class="t"/>
</xsl:when>
<xsl:otherwise>
<IMG src="tb.gif"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="name">
<xsl:if test="@name">
<SPAN class="l"><xsl:value-of select="@name"/></SPAN>
</xsl:if>
</xsl:template>
<xsl:template name="n">
<xsl:if test="@n">
<SPAN class="l"><xsl:value-of select="@n"/></SPAN>
</xsl:if>
</xsl:template>
<xsl:template name="file">
<xsl:param name="base"/>
<xsl:if test="@f">
<SPAN class="h"><xsl:value-of select="$base"/><xsl:value-of select="@f"/></SPAN>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

View File

@@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="publishPath" value="c:\iso" /> <!-- c:\iso or ftp://ftp.server.com/iso -->
<add key="smtpServer" value="localhost" />
<add key="errorEmail" value="mailbox@somewhere-on-the-net" />
<add key="makeParameters" value="" />
<add key="fastDisk" value="" />
</appSettings>
</configuration>

View File

@@ -1,14 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
[assembly: AssemblyTitle("ReactOS Sin Custom Revision Action")]
[assembly: AssemblyDescription("ReactOS Sin Custom Revision Action")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("ReactOS Project")]
[assembly: AssemblyProduct("React Operating System")]
[assembly: AssemblyCopyright("Copyright 2005 ReactOS Project")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("")]

View File

@@ -1,20 +0,0 @@
<?xml version="1.0"?>
<project name="ReactOS.CustomRevisionAction" default="build">
<property name="output.dir" value="bin" />
<target name="build" description="Build component">
<mkdir dir="${output.dir}" />
<csc target="exe"
output="${output.dir}\ReactOS.CustomRevisionAction.exe"
optimize="true"
debug="true"
doc="${output.dir}\ReactOS.CustomRevisionAction.xml"
warninglevel="0">
<sources>
<include name="*.cs" />
</sources>
</csc>
</target>
</project>

File diff suppressed because it is too large Load Diff

View File

@@ -1,340 +0,0 @@
using System;
using System.IO;
using System.Diagnostics;
using System.Configuration;
using System.Web.Mail;
namespace ReactOS.CustomRevisionAction
{
public class MainClass
{
/// <summary>
/// Path to store published binaries at.
/// </summary>
private static string publishPath;
/// <summary>
/// Whether or not to publish ISOs to a remote destination via FTP.
/// </summary>
private static bool PublishToRemoteFtpLocation
{
get
{
return publishPath.StartsWith("ftp://");
}
}
/// <summary>
/// Run the application.
/// </summary>
/// <param name="script">Script to run.</param>
/// <param name="args">Arguments to pass to script.</param>
/// <param name="workingDirectory">Working directory.</param>
/// <param name="standardOutput">Receives standard output.</param>
/// <param name="standardError">Receives standard error.</param>
/// <returns>
/// Exit code.
/// </returns>
private static int RunScript(string script,
string args,
string workingDirectory,
out string standardOutput,
out string standardError)
{
ProcessStartInfo scriptProcessStartInfo = new ProcessStartInfo(script,
args);
scriptProcessStartInfo.CreateNoWindow = true;
/*
* All standard streams must be redirected.
* Otherwise DuplicateHandle() will fail.
*/
scriptProcessStartInfo.RedirectStandardInput = true;
scriptProcessStartInfo.RedirectStandardError = true;
scriptProcessStartInfo.RedirectStandardOutput = true;
scriptProcessStartInfo.UseShellExecute = false;
scriptProcessStartInfo.WorkingDirectory = workingDirectory;
RedirectableProcess redirectableProcess = new RedirectableProcess(scriptProcessStartInfo);
standardOutput = redirectableProcess.ProcessOutput;
standardError = redirectableProcess.ProcessError;
return redirectableProcess.ExitCode;
}
/// <summary>
/// Retrieve value of configuration from configuration file.
/// </summary>
/// <param name="name">Name of configuration option.</param>
/// <param name="defaultValue">
/// Default value to be returned if the option does not exist.
/// </param>
/// <returns>
/// Value of configuration option or null if the option does not
/// exist and no default value is provided.
/// </returns>
private static string GetConfigurationOption(string name,
string defaultValue)
{
if (ConfigurationSettings.AppSettings[name] != null)
return ConfigurationSettings.AppSettings[name];
else
return defaultValue;
}
/// <summary>
/// Send an email.
/// </summary>
/// <param name="subject">Subject of the email.</param>
/// <param name="body">Content of the email.</param>
private static void SendErrorMail(string subject, string body)
{
try
{
string smtpServer = GetConfigurationOption("smtpServer", "localhost");
string toEmail = GetConfigurationOption("errorEmail", null);
if (toEmail == null)
return;
string fromEmail = GetConfigurationOption("fromEmail", null);
if (fromEmail == null)
fromEmail = toEmail;
MailMessage mm = new MailMessage();
mm.Priority = MailPriority.Normal;
mm.From = toEmail;
mm.To = toEmail;
mm.Subject = subject;
mm.Body += body;
mm.Body += "<br>";
mm.BodyFormat = MailFormat.Html;
SmtpMail.SmtpServer = smtpServer;
SmtpMail.Send(mm);
}
catch (Exception ex)
{
Console.Error.WriteLine(ex.Message);
}
}
/// <summary>
/// Fail with an error message.
/// </summary>
/// <param name="revision">Repository revision.</param>
/// <param name="text">Error message.</param>
private static void Fail(int revision,
string text)
{
Console.WriteLine(text);
Console.Error.WriteLine(text);
SendErrorMail(String.Format("[{0}] ReactOS Publish Error", revision), text);
}
/// <summary>
/// Fail with an error message.
/// </summary>
/// <param name="text">Error message.</param>
private static void Fail(string text)
{
Console.WriteLine(text);
Console.Error.WriteLine(text);
SendErrorMail("ReactOS Publish Error", text);
}
/// <summary>
/// Generate filename of distribution.
/// </summary>
/// <param name="branch">Branch.</param>
/// <param name="revision">Revision.</param>
private static string GetDistributionFilename(string branch,
int revision)
{
return String.Format("ReactOS-{0}-r{1}.iso",
branch,
revision);
}
private static void SplitRemotePublishPath(string publishPath,
out string server,
out string directory)
{
string searchString = "://";
int index = publishPath.IndexOf(searchString);
if (index == -1)
throw new InvalidOperationException();
int endOfProtocolIndex = index + searchString.Length;
string withoutProtocol = publishPath.Remove(0, endOfProtocolIndex);
index = withoutProtocol.IndexOf("/");
if (index == -1)
{
server = withoutProtocol;
directory = "";
}
else
{
server = withoutProtocol.Substring(0, index);
directory = withoutProtocol.Remove(0, index + 1);
}
}
/// <summary>
/// Copy ISO to the (remote) destination.
/// </summary>
/// <param name="sourceFilename">Name of source ISO file to copy.</param>
/// <param name="branch">Branch.</param>
/// <param name="revision">Revision.</param>
/// <remarks>
/// Structure is ftp://ftp.server.com/whereever/<branch>/ReactOS-<branch>-r<revision>.iso.
/// </remarks>
private static void CopyISOToRemoteFtpDestination(string sourceFilename,
string branch,
int revision)
{
string distributionFilename = GetDistributionFilename(branch,
revision);
string destinationFilename = Path.Combine(Path.GetDirectoryName(sourceFilename),
distributionFilename);
File.Move(sourceFilename, destinationFilename);
string server;
string directory;
SplitRemotePublishPath(publishPath, out server, out directory);
FtpClient ftpClient = new FtpClient(server, "anonymous", "sin@svn.reactos.com");
ftpClient.Login();
if (directory != "")
ftpClient.ChangeDir(directory);
/* Create destination directory if it does not already exist */
if (!ftpClient.DirectoryExists(branch))
ftpClient.MakeDir(branch);
ftpClient.ChangeDir(branch);
ftpClient.Upload(destinationFilename);
ftpClient.Close();
}
/// <summary>
/// Copy ISO to the (local) destination.
/// </summary>
/// <param name="sourceFilename">Name of source ISO file to copy.</param>
/// <param name="branch">Branch.</param>
/// <param name="revision">Revision.</param>
/// <remarks>
/// Structure is <branch>\ReactOS-<branch>-r<revision>.iso.
/// </remarks>
private static void CopyISOToLocalDestination(string sourceFilename,
string branch,
int revision)
{
string distributionFilename = GetDistributionFilename(branch,
revision);
string destinationDirectory = Path.Combine(publishPath,
branch);
string destinationFilename = Path.Combine(destinationDirectory,
distributionFilename);
if (!Directory.Exists(destinationDirectory))
Directory.CreateDirectory(destinationDirectory);
File.Copy(sourceFilename,
destinationFilename);
}
/// <summary>
/// Copy ISO to the destination.
/// </summary>
/// <param name="sourceFilename">Name of source ISO file to copy.</param>
/// <param name="branch">Branch.</param>
/// <param name="revision">Revision.</param>
/// <remarks>
/// Structure is <branch>\ReactOS-<branch>-r<revision>.iso.
/// </remarks>
private static void CopyISOToDestination(string sourceFilename,
string branch,
int revision)
{
if (PublishToRemoteFtpLocation)
CopyISOToRemoteFtpDestination(sourceFilename, branch, revision);
else
CopyISOToLocalDestination(sourceFilename, branch, revision);
}
/// <summary>
/// Publish a revision of ReactOS.
/// </summary>
/// <param name="text">Error message.</param>
private static int Publish(string branch,
int revision,
string workingDirectory)
{
string make = "mingw32-make";
string makeParameters = GetConfigurationOption("makeParameters", "");
string reactosDirectory = Path.Combine(workingDirectory,
"reactos");
Console.WriteLine(String.Format("ReactOS directory is {0}",
reactosDirectory));
string standardOutput;
string standardError;
int exitCode = RunScript(make,
makeParameters + " bootcd",
reactosDirectory,
out standardOutput,
out standardError);
if (exitCode != 0)
{
Fail(revision,
String.Format("make bootcd failed: (error: {0}) {1}",
standardError,
standardOutput));
return exitCode;
}
string sourceFilename = Path.Combine(reactosDirectory,
"ReactOS.iso");
if (File.Exists(sourceFilename))
CopyISOToDestination(sourceFilename,
branch,
revision);
else
{
Fail(revision,
"make bootcd produced no ReactOS.iso");
return exitCode;
}
return exitCode;
}
/// <summary>
/// Program entry point.
/// </summary>
/// <param name="args">Arguments from command line.</param>
/// <remarks>
/// If exit code is 0, then the commit was processed successfully.
/// If exit code is 1, then the commit was not processed successfully.
/// </remarks>
public static void Main(string[] args)
{
try
{
System.Environment.ExitCode = 1;
publishPath = ConfigurationSettings.AppSettings["publishPath"];
if (publishPath == null)
{
Fail("PublishPath option not set.");
return;
}
if (args.Length < 3)
{
Fail("Usage: ReactOS.CustomRevisionAction action branch revision");
return;
}
string action = args[0]; /* bootcd */
string branch = args[1];
int revision = Int32.Parse(args[2]);
System.Environment.ExitCode = Publish(branch,
revision,
System.Environment.CurrentDirectory);
}
catch (Exception ex)
{
Fail(String.Format("Exception: {0}", ex));
System.Environment.ExitCode = 1;
}
}
}
}

View File

@@ -1,145 +0,0 @@
/*
* When using the ProcessStartInfo.RedirectStandardXxx properties there is a chance of
* the parent and child process blocking due to a race condition. This class handles the
* problem.
* http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdiagnosticsprocessstartinfoclassredirectstandardoutputtopic.asp
*/
using System;
using System.IO;
using System.Threading;
using System.Diagnostics;
namespace ReactOS.CustomRevisionAction
{
/// <summary>
/// Process that redirects standard output and standard error streams.
/// </summary>
public class RedirectableProcess
{
/// <summary>
/// Process.
/// </summary>
private Process process;
/// <summary>
/// Redirected standard error stream.
/// </summary>
private string processError;
/// <summary>
/// Redirected standard output stream.
/// </summary>
private string processOutput;
/// <summary>
/// Exit code.
/// </summary>
private int exitCode;
/// <summary>
/// Redirected standard error stream.
/// </summary>
public string ProcessError
{
get
{
return processError;
}
}
/// <summary>
/// Redirected standard output stream.
/// </summary>
public string ProcessOutput
{
get
{
return processOutput;
}
}
/// <summary>
/// Exit code.
/// </summary>
public int ExitCode
{
get
{
return exitCode;
}
}
/// <summary>
/// Run an excutable and redirect standard error and/or standard output safely.
/// </summary>
public RedirectableProcess(ProcessStartInfo processStartInfo)
{
Run(processStartInfo, null);
}
/// <summary>
/// Run an excutable and redirect standard error and/or standard output safely.
/// </summary>
public RedirectableProcess(ProcessStartInfo processStartInfo, string input)
{
Run(processStartInfo, input);
}
private void Run(ProcessStartInfo processStartInfo, string input)
{
process = new Process();
process.StartInfo = processStartInfo;
process.Start();
if (processStartInfo.RedirectStandardInput && input != null)
{
process.StandardInput.AutoFlush = true;
process.StandardInput.WriteLine(input);
}
Thread readStandardError = null;
if (processStartInfo.RedirectStandardError)
{
readStandardError = new Thread(new ThreadStart(ReadStandardError));
readStandardError.Start();
}
Thread readStandardOutput = null;
if (processStartInfo.RedirectStandardOutput)
{
readStandardOutput = new Thread(new ThreadStart(ReadStandardOutput));
readStandardOutput.Start();
}
if (processStartInfo.RedirectStandardError)
{
readStandardError.Join();
}
if (processStartInfo.RedirectStandardOutput)
{
readStandardOutput.Join();
}
process.WaitForExit();
exitCode = process.ExitCode;
process = null;
}
/// <summary>
/// Read standard error thread entry-point.
/// </summary>
private void ReadStandardError()
{
if (process != null)
{
processError = process.StandardError.ReadToEnd();
}
}
/// <summary>
/// Read standard output thread entry-point.
/// </summary>
private void ReadStandardOutput()
{
if (process != null)
{
processOutput = process.StandardOutput.ReadToEnd();
}
}
}
}

View File

@@ -1,8 +0,0 @@
<?php
/* Rename to config.php */
define(ISO_BASE_URL, "http://www.server.com/iso/");
define(ISO_PATH, "C:\\iso\\");
?>

View File

@@ -1,230 +0,0 @@
<?php
include ('config.php');
function dm_usort_cmp ($a, $b) {
if ($a == $b) return 0;
return ($a > $b) ? -1 : 1;
}
function dm_usort_cmp_desc ($a, $b) {
if ($a == $b) return 0;
return ($a > $b) ? 1 : -1;
}
function printHeader()
{
?>
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>ReactOS Revison ISOs</title>
<meta name="generator" content="Editpad">
<meta name="keywords" content="OS, ReactOS, operating system">
<meta name="author" content="ReactOS Project (ros-dev@reactos.com)">
<style>
.box
{
padding: 0px;
background-color: #88aadd;
border-left: 1px solid #f0f0f0;
border-right: 1px solid #000000;
border-top: 1px solid #f0f0f0;
border-bottom: 1px solid #000000;
}
</style>
</head>
<body bgcolor="#88aadd">
<form method="post" action="">
<?php
}
function printMenu($revision)
{
?>
<table border="0" class="box" cellpadding="5">
<tr>
<td height="2px">
</td>
</tr>
<tr>
<td>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<b>Branch:</b>
</td>
<td>
<select name="branch" tabindex="1">
<?php
$d = dir(ISO_PATH);
$i = 0;
$dirlist = array();
while (false !== ($entry = $d->read())) {
if ((strcasecmp($entry, ".") != 0) && (strcasecmp($entry, "..") != 0) && is_dir(ISO_PATH . "\\" . $entry) == "dir") {
$dirlist[$i++] = $entry;
}
}
$d->close();
if (is_array($dirlist)) {
usort($dirlist, "dm_usort_cmp");
reset($dirlist);
while (list($key, $val) = each($dirlist)) {
$branch = $val;
if ($branch == $_POST["branch"] || (!isset($_POST["branch"]) && $branch == "trunk"))
$selected = " selected";
else
$selected = "";
echo "<option$selected>$branch</option>";
}
}
?>
</select>
</td>
<td>
&nbsp;
</td>
<td>
<b>Revision:</b>
</td>
<td>
<?php
echo "<input type=\"text\" name=\"revision\" size=\"10\" maxlength=\"10\" tabindex=\"2\" value=\"" . $revision . "\"></input>";
?>
</td>
<td>
&nbsp;
</td>
<td>
<input type="submit" name="getiso" value="Download" tabindex="3" style="border: 1px solid #000000"></input>
</td>
</tr>
<tr>
<td colspan="7">
<hr size="2" width="100%" />
</td>
</tr>
<tr>
<td colspan="4">
<input type="submit" name="getnextiso" value="Next ISO" tabindex="4" style="border: 1px solid #000000"></input>
</td>
<td colspan="3" align="right">
<input type="submit" name="getlatestiso" value="Latest ISO" tabindex="5" style="border: 1px solid #000000"></input>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td height="2px">
</td>
</tr>
</table>
<?php
}
function printFooter()
{
?>
</form>
<script>
var revision = document.getElementById('revision');
if (revision) revision.focus();
</script>
</body>
</html>
<?php
}
function locateRevisionISO($branch, $revision, $latest)
{
$revision = intval($revision);
$path = ISO_PATH . "\\" . $branch;
$d = dir($path);
$i = 0;
$filelist = array();
while (false !== ($entry = $d->read())) {
if (is_dir($path . "\\" . $entry) != "dir")
$filelist[$i++] = $entry;
}
$d->close();
if (is_array($filelist)) {
$sortFunction = $latest ? "dm_usort_cmp" : "dm_usort_cmp_desc";
usort($filelist, $sortFunction);
reset($filelist);
while (list($key, $filename) = each($filelist)) {
if (ereg('ReactOS-' . $branch . '-r([0-9]*).iso', $filename, $regs))
{
$thisRevision = intval($regs[1]);
if (($latest) && ($thisRevision < $revision))
return $regs[1];
else if ($thisRevision > $revision)
return $regs[1];
$lastRevision = $thisRevision;
}
}
}
return "";
}
function getNextRevisionISO($branch, $revision)
{
return locateRevisionISO($branch, $revision, false);
}
function getLatestRevisionISO($branch)
{
return locateRevisionISO($branch, 999999, true);
}
function main()
{
$branch = $_POST["branch"];
$revision = $_POST["revision"];
$filename = "ReactOS-" . $branch . "-r" . $revision . ".iso";
if (file_exists(ISO_PATH . $branch . "\\" . $filename))
{
$location = ISO_BASE_URL . $branch . "/" . $filename;
header("Location: $location");
return;
}
else
{
printHeader();
printMenu($_POST["revision"]);
echo "<br><b>No ISO exist for branch '" . $branch . "' and revision " . $revision . ".</b><br><br>";
printFooter();
}
}
if (!empty($_POST["getiso"]) && !empty($_POST["branch"]) && !empty($_POST["revision"]) && is_numeric($_POST["revision"]))
main();
else if (!empty($_POST["getnextiso"]) && !empty($_POST["branch"]) && !empty($_POST["revision"]) && is_numeric($_POST["revision"]))
{
printHeader();
printMenu(getNextRevisionISO($_POST["branch"], $_POST["revision"]));
printFooter();
}
else if (!empty($_POST["getlatestiso"]) && !empty($_POST["branch"]))
{
printHeader();
printMenu(getLatestRevisionISO($_POST["branch"]));
printFooter();
}
else
{
printHeader();
printMenu($_POST["revision"]);
printFooter();
}
?>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="smtpServer" value="localhost" />
<add key="errorEmail" value="mailbox@somewhere-on-the-net" />
<add key="makeParameters" value="" />
<add key="fastDisk" value="" />
</appSettings>
</configuration>

View File

@@ -1,14 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
[assembly: AssemblyTitle("ReactOS Sin Verifier")]
[assembly: AssemblyDescription("ReactOS Sin Verifier")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("ReactOS Project")]
[assembly: AssemblyProduct("React Operating System")]
[assembly: AssemblyCopyright("Copyright 2005 ReactOS Project")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("")]

View File

@@ -1,20 +0,0 @@
<?xml version="1.0"?>
<project name="ReactOS.Verify" default="build">
<property name="output.dir" value="bin" />
<target name="build" description="Build component">
<mkdir dir="${output.dir}" />
<csc target="exe"
output="${output.dir}\ReactOS.Verify.exe"
optimize="true"
debug="true"
doc="${output.dir}\ReactOS.Verify.xml"
warninglevel="0">
<sources>
<include name="*.cs" />
</sources>
</csc>
</target>
</project>

View File

@@ -1,279 +0,0 @@
using System;
using System.IO;
using System.Diagnostics;
using System.Configuration;
using System.Web.Mail;
using System.Collections;
using System.Collections.Specialized;
namespace ReactOS.Verify
{
public class MainClass
{
/// <summary>
/// Run the application.
/// </summary>
/// <param name="script">Script to run.</param>
/// <param name="args">Arguments to pass to script.</param>
/// <param name="workingDirectory">Working directory.</param>
/// <param name="standardOutput">Receives standard output.</param>
/// <param name="standardError">Receives standard error.</param>
/// <returns>
/// Exit code.
/// </returns>
private static int RunScript(string script,
string args,
string workingDirectory,
StringDictionary environmentVarables,
out string standardOutput,
out string standardError)
{
ProcessStartInfo scriptProcessStartInfo = new ProcessStartInfo(script,
args);
scriptProcessStartInfo.CreateNoWindow = true;
/*
* All standard streams must be redirected.
* Otherwise DuplicateHandle() will fail.
*/
scriptProcessStartInfo.RedirectStandardInput = true;
scriptProcessStartInfo.RedirectStandardError = true;
scriptProcessStartInfo.RedirectStandardOutput = true;
scriptProcessStartInfo.UseShellExecute = false;
scriptProcessStartInfo.WorkingDirectory = workingDirectory;
if (environmentVarables != null)
{
foreach (DictionaryEntry de in environmentVarables)
scriptProcessStartInfo.EnvironmentVariables.Add(de.Key as string, de.Value as string);
}
RedirectableProcess redirectableProcess = new RedirectableProcess(scriptProcessStartInfo);
standardOutput = redirectableProcess.ProcessOutput;
standardError = redirectableProcess.ProcessError;
return redirectableProcess.ExitCode;
}
/// <summary>
/// Retrieve value of configuration from configuration file.
/// </summary>
/// <param name="name">Name of configuration option.</param>
/// <param name="defaultValue">
/// Default value to be returned if the option does not exist.
/// </param>
/// <returns>
/// Value of configuration option or null if the option does not
/// exist and no default value is provided.
/// </returns>
private static string GetConfigurationOption(string name,
string defaultValue)
{
if (ConfigurationSettings.AppSettings[name] != null)
{
string s = ConfigurationSettings.AppSettings[name].Trim();
return s.Equals(String.Empty) ? defaultValue : s;
}
else
return defaultValue;
}
/// <summary>
/// Send an email.
/// </summary>
/// <param name="subject">Subject of the email.</param>
/// <param name="body">Content of the email.</param>
private static void SendErrorMail(string subject, string body)
{
try
{
string smtpServer = GetConfigurationOption("smtpServer", "localhost");
string email = GetConfigurationOption("errorEmail", null);
if (email == null)
return;
MailMessage mm = new MailMessage();
mm.Priority = MailPriority.Normal;
mm.From = email;
mm.To = email;
mm.Subject = subject;
mm.Body += body;
mm.Body += "<br>";
mm.BodyFormat = MailFormat.Html;
SmtpMail.SmtpServer = smtpServer;
SmtpMail.Send(mm);
}
catch (Exception ex)
{
Console.Error.WriteLine(ex.Message);
}
}
/// <summary>
/// Fail with an error message.
/// </summary>
/// <param name="text">Error message.</param>
private static void Fail(string text)
{
Console.WriteLine(text);
}
/// <summary>
/// Paths to fast disk for temporary files.
/// </summary>
private static string TemporaryFastDisk
{
get
{
string temporaryFastDisk = GetConfigurationOption("temporaryFastDisk", null);
if (temporaryFastDisk == null || temporaryFastDisk.Trim().Equals(String.Empty))
return null;
return temporaryFastDisk.Trim();
}
}
/// <summary>
/// Paths to fast disk for intermediate files.
/// </summary>
private static string IntermediateFastDisk
{
get
{
string intermediateFastDisk = GetConfigurationOption("intermediateFastDisk", null);
if (intermediateFastDisk == null || intermediateFastDisk.Trim().Equals(String.Empty))
return null;
return intermediateFastDisk.Trim();
}
}
/// <summary>
/// Paths to fast disk for output files.
/// </summary>
private static string OutputFastDisk
{
get
{
string outputFastDisk = GetConfigurationOption("outputFastDisk", null);
if (outputFastDisk == null || outputFastDisk.Trim().Equals(String.Empty))
return null;
return outputFastDisk.Trim();
}
}
/// <summary>
/// Return collection of environment variables.
/// </summary>
/// <returns>Collection of environment variables or null if there is none.</returns>
private static StringDictionary GetEnvironmentVarables()
{
StringDictionary environmentVarables = new StringDictionary();
if (TemporaryFastDisk != null)
environmentVarables.Add("ROS_TEMPORARY", TemporaryFastDisk);
if (IntermediateFastDisk != null)
environmentVarables.Add("ROS_INTERMEDIATE", IntermediateFastDisk);
if (OutputFastDisk != null)
environmentVarables.Add("ROS_OUTPUT", OutputFastDisk);
return environmentVarables;
}
/// <summary>
/// Run make.
/// </summary>
/// <param name="arguments">Arguments.</param>
/// <param name="standardOutput">Receives standard output.</param>
/// <param name="standardError">Receives standard error.</param>
/// <returns>Make exit code.</returns>
private static int RunMake(string arguments,
out string standardOutput,
out string standardError)
{
string make = "mingw32-make";
string makeParameters = GetConfigurationOption("makeParameters", "");
string reactosDirectory = Path.Combine(System.Environment.CurrentDirectory,
"reactos");
return RunScript(make,
makeParameters + " " + arguments,
reactosDirectory,
GetEnvironmentVarables(),
out standardOutput,
out standardError);
}
/// <summary>
/// Verify a revision of ReactOS by building it all.
/// </summary>
private static int VerifyFull()
{
string standardOutput;
string standardError;
int exitCode = RunMake("bootcd",
out standardOutput,
out standardError);
if (exitCode != 0)
{
Fail(String.Format("make bootcd failed: (error: {0}) {1}",
standardError,
standardOutput));
return exitCode;
}
string reactosDirectory = Path.Combine(System.Environment.CurrentDirectory,
"reactos");
string isoFilename = Path.Combine(reactosDirectory,
"ReactOS.iso");
if (!File.Exists(isoFilename))
Fail("make bootcd produced no ReactOS.iso");
return exitCode;
}
/// <summary>
/// Verify a revision of ReactOS by building parts.
/// </summary>
/// <param name="components">Comma separated list of components to build.</param>
private static int VerifyPartial(string components)
{
string standardOutput;
string standardError;
string componentParameters = "\"" + components.Replace(",", "\" \"") + "\"";
int exitCode = RunMake(componentParameters,
out standardOutput,
out standardError);
if (exitCode != 0)
Fail(String.Format("make failed for targets {0}: (error: {1}) {2}",
componentParameters,
standardError,
standardOutput));
return exitCode;
}
/// <summary>
/// Verify a revision of ReactOS.
/// </summary>
/// <param name="args">Arguments from command line.</param>
private static int Verify(string[] args)
{
if (args.Length > 0)
return VerifyPartial(args[0]);
else
return VerifyFull();
}
/// <summary>
/// Program entry point.
/// </summary>
/// <param name="args">Arguments from command line.</param>
/// <remarks>
/// If exit code is 0, then the commit was processed successfully.
/// If exit code is 1, then the commit was not processed successfully.
/// </remarks>
public static void Main(string[] args)
{
try
{
System.Environment.ExitCode = Verify(args);
}
catch (Exception ex)
{
string text = String.Format("Exception: {0}", ex);
SendErrorMail("ReactOS Verify Error", text);
System.Environment.ExitCode = 1;
}
}
}
}

View File

@@ -1,145 +0,0 @@
/*
* When using the ProcessStartInfo.RedirectStandardXxx properties there is a chance of
* the parent and child process blocking due to a race condition. This class handles the
* problem.
* http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdiagnosticsprocessstartinfoclassredirectstandardoutputtopic.asp
*/
using System;
using System.IO;
using System.Threading;
using System.Diagnostics;
namespace ReactOS.Verify
{
/// <summary>
/// Process that redirects standard output and standard error streams.
/// </summary>
public class RedirectableProcess
{
/// <summary>
/// Process.
/// </summary>
private Process process;
/// <summary>
/// Redirected standard error stream.
/// </summary>
private string processError;
/// <summary>
/// Redirected standard output stream.
/// </summary>
private string processOutput;
/// <summary>
/// Exit code.
/// </summary>
private int exitCode;
/// <summary>
/// Redirected standard error stream.
/// </summary>
public string ProcessError
{
get
{
return processError;
}
}
/// <summary>
/// Redirected standard output stream.
/// </summary>
public string ProcessOutput
{
get
{
return processOutput;
}
}
/// <summary>
/// Exit code.
/// </summary>
public int ExitCode
{
get
{
return exitCode;
}
}
/// <summary>
/// Run an excutable and redirect standard error and/or standard output safely.
/// </summary>
public RedirectableProcess(ProcessStartInfo processStartInfo)
{
Run(processStartInfo, null);
}
/// <summary>
/// Run an excutable and redirect standard error and/or standard output safely.
/// </summary>
public RedirectableProcess(ProcessStartInfo processStartInfo, string input)
{
Run(processStartInfo, input);
}
private void Run(ProcessStartInfo processStartInfo, string input)
{
process = new Process();
process.StartInfo = processStartInfo;
process.Start();
if (processStartInfo.RedirectStandardInput && input != null)
{
process.StandardInput.AutoFlush = true;
process.StandardInput.WriteLine(input);
}
Thread readStandardError = null;
if (processStartInfo.RedirectStandardError)
{
readStandardError = new Thread(new ThreadStart(ReadStandardError));
readStandardError.Start();
}
Thread readStandardOutput = null;
if (processStartInfo.RedirectStandardOutput)
{
readStandardOutput = new Thread(new ThreadStart(ReadStandardOutput));
readStandardOutput.Start();
}
if (processStartInfo.RedirectStandardError)
{
readStandardError.Join();
}
if (processStartInfo.RedirectStandardOutput)
{
readStandardOutput.Join();
}
process.WaitForExit();
exitCode = process.ExitCode;
process = null;
}
/// <summary>
/// Read standard error thread entry-point.
/// </summary>
private void ReadStandardError()
{
if (process != null)
{
processError = process.StandardError.ReadToEnd();
}
}
/// <summary>
/// Read standard output thread entry-point.
/// </summary>
private void ReadStandardOutput()
{
if (process != null)
{
processOutput = process.StandardOutput.ReadToEnd();
}
}
}
}

View File

@@ -1,5 +1,7 @@
<?xml version="1.0" ?>
<HresultList>
<Hresult text="S_OK" value="00000000" />
<Hresult text="S_FALSE" value="00000001" />
<Hresult text="STG_S_CONVERTED" value="00030200" />
<Hresult text="STG_S_BLOCK" value="00030201" />
<Hresult text="STG_S_RETRYNOW" value="00030202" />

View File

@@ -2,8 +2,69 @@
<NtstatusList>
<Ntstatus text="STATUS_SUCCESS" value="00000000"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0" value="00000000"></Ntstatus>
<Ntstatus text="STATUS_WAIT_1" value="00000001"></Ntstatus>
<Ntstatus text="STATUS_WAIT_63" value="0000003F"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 1" value="00000001"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 2" value="00000002"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 3" value="00000003"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 4" value="00000004"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 5" value="00000005"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 6" value="00000006"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 7" value="00000007"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 8" value="00000008"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 9" value="00000009"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 10" value="0000000A"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 11" value="0000000B"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 12" value="0000000C"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 13" value="0000000D"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 14" value="0000000E"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 15" value="0000000F"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 16" value="00000010"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 17" value="00000011"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 18" value="00000012"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 19" value="00000013"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 20" value="00000014"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 21" value="00000015"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 22" value="00000016"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 23" value="00000017"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 24" value="00000018"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 25" value="00000019"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 26" value="0000001A"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 27" value="0000001B"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 28" value="0000001C"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 29" value="0000001D"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 30" value="0000001E"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 31" value="0000001F"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 32" value="00000020"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 33" value="00000021"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 34" value="00000022"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 35" value="00000023"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 36" value="00000024"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 37" value="00000025"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 38" value="00000026"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 39" value="00000027"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 40" value="00000028"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 41" value="00000029"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 42" value="0000002A"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 43" value="0000002B"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 44" value="0000002C"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 45" value="0000002D"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 46" value="0000002E"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 47" value="0000002F"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 48" value="00000030"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 49" value="00000031"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 50" value="00000032"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 51" value="00000033"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 52" value="00000034"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 53" value="00000035"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 54" value="00000036"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 55" value="00000037"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 56" value="00000038"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 57" value="00000039"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 58" value="0000003A"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 59" value="0000003B"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 60" value="0000003C"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 61" value="0000003D"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 62" value="0000003E"></Ntstatus>
<Ntstatus text="STATUS_WAIT_0 + 63" value="0000003F"></Ntstatus>
<Ntstatus text="STATUS_ABANDONED" value="00000080"></Ntstatus>
<Ntstatus text="STATUS_ABANDONED_WAIT_0" value="00000080"></Ntstatus>
<Ntstatus text="STATUS_ABANDONED_WAIT_63" value="000000BF"></Ntstatus>

View File

@@ -8,10 +8,10 @@
<add key="IRCBotPassword" value="MyPassword" />
<add key="ChmPath" value="C:\IRC\TechBot\CHM" />
<add key="MainChm" value="kmarch.chm" />
<add key="NtstatusXml" value="C:\IRC\TechBot\ntstatus.xml" />
<add key="WinerrorXml" value="C:\IRC\TechBot\winerror.xml" />
<add key="HresultXml" value="C:\IRC\TechBot\hresult.xml" />
<add key="WmXml" value="C:\IRC\TechBot\wm.xml" />
<add key="NtstatusXml" value="ntstatus.xml" />
<add key="WinerrorXml" value="winerror.xml" />
<add key="HresultXml" value="hresult.xml" />
<add key="WmXml" value="wm.xml" />
<add key="SvnCommand" value="svn co svn://svn.reactos.org/trunk/reactos" />
<add key="BugUrl" value="http://www.reactos.org/bugzilla/show_bug.cgi?id={0}" />
<add key="WineBugUrl" value="http://bugs.winehq.org/show_bug.cgi?id={0}" />

View File

@@ -1,5 +1,6 @@
using System;
using System.Xml;
using System.Collections;
namespace TechBot.Library
{
@@ -28,58 +29,170 @@ namespace TechBot.Library
new string[] { "error" });
}
private static int GetSeverity(long error)
{
return (int)((error >> 30) & 0x3);
}
private static bool IsCustomer(long error)
{
return (error & 0x20000000) != 0;
}
private static bool IsReserved(long error)
{
return (error & 0x10000000) != 0;
}
private static int GetFacility(long error)
{
return (int)((error >> 16) & 0xFFF);
}
private static short GetCode(long error)
{
return (short)((error >> 0) & 0xFFFF);
}
private static string FormatSeverity(long error)
{
int severity = GetSeverity(error);
switch (severity)
{
case 0: return "SUCCESS";
case 1: return "INFORMATIONAL";
case 2: return "WARNING";
case 3: return "ERROR";
}
return null;
}
private static string FormatFacility(long error)
{
int facility = GetFacility(error);
return facility.ToString();
}
private static string FormatCode(long error)
{
int code = GetCode(error);
return code.ToString();
}
public void Handle(MessageContext context,
string commandName,
string parameters)
{
string errorText = parameters;
if (errorText.Equals(String.Empty))
string originalErrorText = parameters.Trim();
if (originalErrorText.Equals(String.Empty))
{
serviceOutput.WriteLine(context,
"Please provide an Error Code.");
return;
}
string errorText = originalErrorText;
retry:
NumberParser np = new NumberParser();
long error = np.Parse(errorText);
if (np.Error)
{
serviceOutput.WriteLine(context,
String.Format("{0} is not a valid Error Code.",
errorText));
originalErrorText));
return;
}
ArrayList descriptions = new ArrayList();
string description = null;
if (winerror.GetWinerrorDescription(error) != null)
// Error is out of bounds
if ((ulong)error > uint.MaxValue)
{
description = winerror.GetWinerrorDescription(error);
serviceOutput.WriteLine(context,
String.Format("{0} is {1}.",
error,
description));
// Do nothing
}
if (ntStatus.GetNtstatusDescription(error) != null)
// Error is outside of the range [0, 65535]: it cannot be a plain Win32 error code
else if ((ulong)error > ushort.MaxValue)
{
description = ntStatus.GetNtstatusDescription(error);
serviceOutput.WriteLine(context,
String.Format("{0} is {1}.",
errorText,
description));
// Customer bit is set: custom error code
if (IsCustomer(error))
{
string description = String.Format("[custom, severity {0}, facility {1}, code {2}]",
FormatSeverity(error),
FormatFacility(error),
FormatCode(error));
descriptions.Add(description);
}
// Reserved bit is set: HRESULT_FROM_NT(ntstatus)
else if (IsReserved(error))
{
int status = (int)(error & 0xCFFFFFFF);
string description = ntStatus.GetNtstatusDescription(status);
if (description == null)
description = status.ToString("X");
description = String.Format("HRESULT_FROM_NT({0})", description);
descriptions.Add(description);
}
// Win32 facility: HRESULT_FROM_WIN32(winerror)
else if (GetFacility(error) == 7)
{
// Must be an error code
if (GetSeverity(error) == 2)
{
short err = GetCode(error);
string description = winerror.GetWinerrorDescription(err);
if (description == null)
description = err.ToString("D");
description = String.Format("HRESULT_FROM_WIN32({0})", description);
descriptions.Add(description);
}
}
}
if (hresult.GetHresultDescription(error) != null)
{
description = hresult.GetHresultDescription(error);
serviceOutput.WriteLine(context,
String.Format("{0} is {1}.",
errorText,
description));
}
if(description == null)
string winerrorDescription = winerror.GetWinerrorDescription(error);
string ntstatusDescription = ntStatus.GetNtstatusDescription(error);
string hresultDescription = hresult.GetHresultDescription(error);
if (winerrorDescription != null)
descriptions.Add(winerrorDescription);
if (ntstatusDescription != null)
descriptions.Add(ntstatusDescription);
if (hresultDescription != null)
descriptions.Add(hresultDescription);
if (descriptions.Count == 0)
{
// Last chance heuristics: attempt to parse a 8-digit decimal as hexadecimal
if (errorText.Length == 8)
{
errorText = "0x" + errorText;
goto retry;
}
serviceOutput.WriteLine(context,
String.Format("I don't know about Error Code {0}.",
errorText));
originalErrorText));
}
else if (descriptions.Count == 1)
{
string description = (string)descriptions[0];
serviceOutput.WriteLine(context,
String.Format("{0} is {1}.",
originalErrorText,
description));
}
else
{
serviceOutput.WriteLine(context,
String.Format("{0} could be:",
originalErrorText));
foreach(string description in descriptions)
serviceOutput.WriteLine(context, String.Format("\t{0}", description));
}
}

View File

@@ -6,14 +6,12 @@ namespace TechBot.Library
public class HresultCommand : BaseCommand, ICommand
{
private IServiceOutput serviceOutput;
private string hresultXml;
private XmlDocument hresultXmlDocument;
public HresultCommand(IServiceOutput serviceOutput,
string hresultXml)
{
this.serviceOutput = serviceOutput;
this.hresultXml = hresultXml;
hresultXmlDocument = new XmlDocument();
hresultXmlDocument.Load(hresultXml);
}

View File

@@ -9,7 +9,7 @@ namespace TechBot.Library
private const string SpecialHexCharacters = "ABCDEF";
private bool IsSpecialHexCharacter(char ch)
private static bool IsSpecialHexCharacter(char ch)
{
foreach (char specialChar in SpecialHexCharacters)
{
@@ -19,7 +19,7 @@ namespace TechBot.Library
return false;
}
private bool HasSpecialHexCharacters(string s)
private static bool HasSpecialHexCharacters(string s)
{
foreach (char ch in s)
{
@@ -35,7 +35,7 @@ namespace TechBot.Library
{
Error = false;
bool useHex = false;
if (s.StartsWith("0x"))
if (s.StartsWith("0x", StringComparison.InvariantCultureIgnoreCase))
{
s = s.Substring(2);
useHex = true;

View File

@@ -49,9 +49,9 @@ namespace TechBot.Library
{
commands.Add(new HelpCommand(serviceOutput,
commands));
commands.Add(new ApiCommand(serviceOutput,
/*commands.Add(new ApiCommand(serviceOutput,
chmPath,
mainChm));
mainChm));*/
commands.Add(new NtStatusCommand(serviceOutput,
ntstatusXml));
commands.Add(new WinerrorCommand(serviceOutput,

View File

@@ -1,2 +0,0 @@
*.ncb
*.opt

View File

@@ -1,102 +0,0 @@
ReactOS Microsoft Visual C/C++ 6.0 IDE files
This is the Microsoft Visual C/C++ 6.0 project workspace and project
files for a few of the ReactOS binaries. They are ONLY included as a
convenience, and is NOT to be considered supported, or even correct.
If you build a binary that misbehaves using these files, you _might_
be able to get in touch with someone to fix the problem
BUT DO NOT COUNT ON IT!
The only supported build system for ReactOS is the one documented at
www.reactos.com.
------------------------------------------------------------------
Please, before you start playing with this, read the whole of
this document.
Before you can use these project files, you _need_ to make a successful
build using the normal ReactOS build system. There are some vital files
that needs to be created, and currently only the normal build creates these.
Once that is done, you need to generate the kernel-mode service "table"
file by running nmake (from this point on you can use the "native"
MSVC tools) from the directory MSVC6\iface\native.
This will generate MSVC6\ntoskrnl\nt_zw_msvc.c, an MSVC compatible inline-
assembler version of the file otherwise known as reactos\ntoskrnl\nt\zw.c.
Next, go to def_converter and run nmake. This builds the tool to convert
the .def files for HAL and the kernel from the MinGW format to something
more suitable for the MSVC linker, and also generates these .def files
to their target location [1].
Now you should be set to fire up the IDE and load the project workspace.
When building HAL or the kernel for the first time using these
project files, just doing it the "normal" way _will not work_.
The linker will complain about missing library, and it will fail.
The reason for this is a circular dependency between these two binaries.
Currently you need to follow these procedures [2]:
- Select hal as your active project.
- Select Project/Settings.
- Select the Link tab.
- Select "General" from the Category drop-list.
- Temporary remove the explicit linker library
(e.g. "..\ntoskrnl\Debug\ntoskrnl.lib")
- Select "Customize" from the Category drop-list.
- Check the "Force file output" checkbox.
- Build hal.
- Uncheck "Force file output".
- Put back the removed import library.
- Now build the ntoskrnl. Do NOT try to build hal again until
you have sucessfully built the kernel, and the linker has
generated its import library!
- Now you can "Clean" hal, and build it as usual.
If everything worked as expected, you should now have both ntoskrnl.exe
and hal.dll freshly built.
LIMITATIONS/DEVIATIONS (from the MinGW build):
- Since there can only be one resource file/project, the kernel had
to choose between either its version resource, or its message table.
The messages won.
- Do NOT open the .rc files in the IDE's resource editor. Chances are
it will assume ownership over them and fill them up with at least
conditional compilation macros.
NOTES:
[1] This is needed due to differences in handling of decorated names
in .def files. While both MinGW GCC and MSVC generates decorated names
in the same way for at least plain cdecl and stdcall C functions, the
MSVC linker expects names in the .def file to be either
- an exact match of the decorated name, in case it exports the
decorated name from the linked binary, or
- just the name without any decoration, in case it exports just the
name of the symbol from the linked binary (to allow for e.g.
GetProcAddress using the undecorated name) - but keeps the decorated
names in the import library to handle and "redirect" linker requests
for those decorated symbols, and point them to the undercorated names
in the binary exporting them - so that a binary A, at link time,
importing symbols from binary B of the form "_name@0" will resolve
that symbol from the import library, but the linked binary A will
reference it as just "name".
The ROS .def files contains a mix, "half-decorated", where the leading
undescores are missing, but the trailing "@n" (for stdcall functions)
are present.
[2] Theoretically it could be possible to use a hal.lib generated by the
following procedure, removing the need for the manual steps above.
cd MSVC6\hal\Debug
lib \def:..\..\..\reactos\hal\hal\hal.def
but I have not tested it, and take no responsibility for its effectiveness.

View File

@@ -1,41 +0,0 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "hal"=.\hal\hal.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "ntoskrnl"=.\ntoskrnl\ntoskrnl.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

View File

@@ -1,64 +0,0 @@
// Uses hard-coded filenames to require a minimum of input.
// You think this file should be licensed? OK then,
// Copyright (C) 2004, Mike Nordell. Use as you whish.
#include <fstream>
#include <string>
#include <algorithm>
const char szSrc1[] = "..\\..\\reactos\\ntoskrnl\\ntoskrnl.def";
const char szDst1[] = "..\\ntoskrnl\\ntoskrnl.def";
const char szSrc2[] = "..\\..\\reactos\\hal\\hal\\hal.def";
const char szDst2[] = "..\\hal\\hal.def";
enum File
{
Kernel,
HAL
};
std::string do_kernel_replacements(std::string& s)
{
std::string s2 = s.c_str(); // to fixup size after replacements
if (s2 == "ExAllocateFromPagedLookasideList") {
s2 += "=ExiAllocateFromPagedLookasideList";
} else
if (s2 == "ExFreeToPagedLookasideList") {
s2 += "=ExiFreeToPagedLookasideList";
} else
if (s2 == "MmLockPagableImageSection") {
s2 += "=MmLockPagableDataSection";
}
return s2;
}
void convert_def(const char* szSrc, const char* szDst, File file)
{
using namespace std;
ifstream in(szSrc);
ofstream out(szDst);
string s;
while (getline(in, s).good()) {
if (!s.size()) {
continue;
}
if (s[0] != ';') { // only replace non-comment lines
if (s[0] == '@') {
s.erase(0, 1);
}
replace(s.begin(), s.end(), '@', '\0');
if (file == Kernel) {
s = do_kernel_replacements(s);
}
}
out << s << endl;
}
}
int main()
{
convert_def(szSrc1, szDst1, Kernel);
convert_def(szSrc2, szDst2, HAL);
return 0;
}

View File

@@ -1,19 +0,0 @@
# $Id: makefile,v 1.1 2004/02/06 08:21:54 fireball Exp $
#
# ReactOS Operating System - .def converter for HAL and the kernel
#
DEF_HAL = ..\hal\hal.def
DEF_KRNL = ..\ntoskrnl\ntoskrnl.def
CPPFLAGS = /GX
all: def_converter.exe $(DEF_HAL) $(DEF_KRNL)
$(DEF_HAL) : ..\..\reactos\hal\hal\hal.def
def_converter.exe
$(DEF_KRNL) : ..\..\reactos\ntoskrnl\ntoskrnl.def
def_converter.exe
def_converter.exe : def_converter.cpp

View File

@@ -1,3 +0,0 @@
Debug
Release
hal.def

View File

@@ -1,243 +0,0 @@
# Microsoft Developer Studio Project File - Name="hal" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=hal - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "hal.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "hal.mak" CFG="hal - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "hal - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "hal - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "hal - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "HAL_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /Ot /Og /Os /Ob1 /I "..\..\reactos\include" /I "..\..\reactos\hal\halx86\include" /I "..\..\reactos\ntoskrnl\include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "i386" /D "__NTHAL__" /FD /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x41d /d "NDEBUG"
# ADD RSC /l 0x417 /i "..\..\reactos\include" /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 /nologo /dll /machine:I386
# ADD LINK32 ..\ntoskrnl\Release\ntoskrnl.lib /nologo /dll /machine:I386 /fixed:no
# SUBTRACT LINK32 /pdb:none /force
!ELSEIF "$(CFG)" == "hal - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "HAL_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Z7 /Od /I "..\..\reactos\include" /I "..\..\reactos\hal\halx86\include" /I "..\..\reactos\ntoskrnl\include" /D "_WINDOWS" /D "__NTHAL__" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "i386" /FD /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x41d /d "_DEBUG"
# ADD RSC /l 0x417 /i "..\..\reactos\include" /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 ..\ntoskrnl\Debug\ntoskrnl.lib /nologo /dll /incremental:no /debug /machine:I386 /pdbtype:sept /fixed:no
# SUBTRACT LINK32 /pdb:none
!ENDIF
# Begin Target
# Name "hal - Win32 Release"
# Name "hal - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\adapter.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\beep.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\bus.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\display.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\dma.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\drive.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\enum.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\fmutex.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\fmutex_tmn.c
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\halinit.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\halx86mp.rc
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\halx86up.rc
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\irql.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\isa.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\kdbg.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\mca.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\misc.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\mp.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\mpsirql.c
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\pci.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\portio.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\pwroff.c
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\reboot.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\spinlock.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\spinlock_tmn.c
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\sysbus.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\sysinfo.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\time.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\timer.c
# End Source File
# End Group
# Begin Group "include"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\include\bus.h
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\include\hal.h
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\include\mps.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# Begin Source File
SOURCE=.\hal.def
# End Source File
# End Target
# End Project

View File

@@ -1,392 +0,0 @@
/* $Id: genntdll.c,v 1.1 2004/02/06 08:21:56 fireball Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS version of ntdll
* FILE: iface/native/genntdll.c
* PURPOSE: Generates the system call stubs in ntdll
* CHANGE HISTORY: Added a '@xx' to deal with stdcall [ Ariadne ]
* 19990616 (ea)
* Four arguments now required; 4th is the file
* for ntoskrnl ZwXXX functions (which are merely calls
* to twin NtXXX calls, via int 0x2e (x86).
* 19990617 (ea)
* Fixed a bug in function numbers in kernel ZwXXX stubs.
*
*/
/* INCLUDE ******************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define PARAMETERIZED_LIBS
/* #define VERBOSE */
#define INPUT_BUFFER_SIZE 255
/* FUNCTIONS ****************************************************************/
void write_syscall_stub(FILE* out, FILE* out3, char* name, char* name2,
char* nr_args, unsigned int sys_call_idx)
{
int i;
int nArgBytes = atoi(nr_args);
#ifdef PARAMETERIZED_LIBS
fprintf(out,"__asm__(\"\\n\\t.global _%s@%s\\n\\t\"\n",name,nr_args);
fprintf(out,"\".global _%s@%s\\n\\t\"\n",name2,nr_args);
fprintf(out,"\"_%s@%s:\\n\\t\"\n",name,nr_args);
fprintf(out,"\"_%s@%s:\\n\\t\"\n",name2,nr_args);
#else
fprintf(out,"__asm__(\"\\n\\t.global _%s\\n\\t\"\n",name);
fprintf(out,"\".global _%s\\n\\t\"\n",name2);
fprintf(out,"\"_%s:\\n\\t\"\n",name);
fprintf(out,"\"_%s:\\n\\t\"\n",name2);
#endif
fprintf(out,"\t\"pushl\t%%ebp\\n\\t\"\n");
fprintf(out,"\t\"movl\t%%esp, %%ebp\\n\\t\"\n");
fprintf(out,"\t\"mov\t$%d,%%eax\\n\\t\"\n",sys_call_idx);
fprintf(out,"\t\"lea\t8(%%ebp),%%edx\\n\\t\"\n");
fprintf(out,"\t\"int\t$0x2E\\n\\t\"\n");
fprintf(out,"\t\"popl\t%%ebp\\n\\t\"\n");
fprintf(out,"\t\"ret\t$%s\\n\\t\");\n\n",nr_args);
/*
* Now write the NTOSKRNL stub for the
* current system call. ZwXXX does NOT
* alias the corresponding NtXXX call.
*/
#if 0
fprintf(out3,"__asm__(\n");
fprintf(out3,"\".global _%s@%s\\n\\t\"\n",name2,nr_args);
fprintf(out3,"\"_%s@%s:\\n\\t\"\n",name2,nr_args);
fprintf(out3,"\t\"pushl\t%%ebp\\n\\t\"\n");
fprintf(out3,"\t\"movl\t%%esp, %%ebp\\n\\t\"\n");
fprintf(out3,"\t\"mov\t$%d,%%eax\\n\\t\"\n",sys_call_idx);
fprintf(out3,"\t\"lea\t8(%%ebp),%%edx\\n\\t\"\n");
fprintf(out3,"\t\"int\t$0x2E\\n\\t\"\n");
fprintf(out3,"\t\"popl\t%%ebp\\n\\t\"\n");
fprintf(out3,"\t\"ret\t$%s\\n\\t\");\n\n",nr_args);
#else
fprintf(out3,"__declspec(naked) __stdcall\n");
fprintf(out3,"%s(", name2); // make it emit callconv, reval and full signature too
for (i=0; i*4 < nArgBytes; ++i) {
fprintf(out3,"int dummy%d", i);
if (((i+1)*4) < nArgBytes) fprintf(out3,",");
}
fprintf(out3,")\n{\n");
fprintf(out3,"\t__asm {\n");
fprintf(out3,"\t\tpush\tebp\n");
fprintf(out3,"\t\tmov\tebp, esp\n");
fprintf(out3,"\t\tmov\teax,%d\n",sys_call_idx);
fprintf(out3,"\t\tlea\tedx, 8[ebp]\n");
fprintf(out3,"\t\tint\t0x2E\n");
fprintf(out3,"\t\tpop\tebp\n");
fprintf(out3,"\t\tret\t%s\n",nr_args);
fprintf(out3,"\t}\n");
fprintf(out3,"}\n\n");
#endif
}
int makeSystemServiceTable(FILE *in, FILE *out)
{
char line [INPUT_BUFFER_SIZE];
char *s;
char *name;
char *name2;
int sys_call_idx;
char *nr_args;
char *stmp;
/*
* Main SSDT Header
*/
fprintf(out,"// Machine generated, don't edit\n");
fprintf(out,"\n\n");
/*
* First we build the Main SSDT
*/
fprintf(out,"\n\n\n");
fprintf(out,"SSDT MainSSDT[] = {\n");
for ( /* First system call has index zero */
sys_call_idx = 0;
/* Go on until EOF or read zero bytes */
( (!feof(in))
&& (fgets(line, sizeof line, in) != NULL)
);
/* Next system call index */
sys_call_idx++
)
{
if ((s = (char *) strchr(line,'\r')) != NULL)
{
*s = '\0';
}
/*
* Skip comments (#) and empty lines.
*/
s = & line[0];
if ((*s) != '#' && (*s) != '\0')
{
/* Extract the NtXXX name */
name = (char *)strtok(s," \t");
/* Extract the ZwXXX name */
name2 = (char *)strtok(NULL," \t");
//value = strtok(NULL," \t");
/* Extract the stack size */
nr_args = (char *)strtok(NULL," \t");
/*
* Remove, if present, the trailing LF.
*/
if ((stmp = strchr(nr_args, '\n')) != NULL)
{
*stmp = '\0';
}
#ifdef VERBOSE
printf("%3d \"%s\"\n",sys_call_idx,name);
#endif
if (sys_call_idx > 0)
{
fprintf(out,",\n");
}
/*
* Now write the current system call's name
* in the service table.
*/
fprintf(out,"\t\t{ (ULONG)%s }",name);
}
}
/* Close the service table (C syntax) */
fprintf(out,"\n};\n");
/*
* Now we build the Main SSPT
*/
rewind(in);
fprintf(out,"\n\n\n");
fprintf(out,"SSPT MainSSPT[] = {\n");
for ( /* First system call has index zero */
sys_call_idx = 0;
/* Go on until EOF or read zero bytes */
( (!feof(in))
&& (fgets(line, sizeof line, in) != NULL)
);
/* Next system call index */
sys_call_idx++
)
{
if ((s = (char *) strchr(line,'\r')) != NULL)
{
*s = '\0';
}
/*
* Skip comments (#) and empty lines.
*/
s = & line[0];
if ((*s) != '#' && (*s) != '\0')
{
/* Extract the NtXXX name */
name = (char *)strtok(s," \t");
/* Extract the ZwXXX name */
name2 = (char *)strtok(NULL," \t");
//value = strtok(NULL," \t");
/* Extract the stack size */
nr_args = (char *)strtok(NULL," \t");
/*
* Remove, if present, the trailing LF.
*/
if ((stmp = strchr(nr_args, '\n')) != NULL)
{
*stmp = '\0';
}
#ifdef VERBOSE
printf("%3d \"%s\"\n",sys_call_idx,name);
#endif
if (sys_call_idx > 0)
{
fprintf(out,",\n");
}
/*
* Now write the current system call's ID
* in the service table along with its Parameters Size.
*/
fprintf(out,"\t\t{ %s }",nr_args);
}
}
/*
* Close the service table (C syntax)
*/
fprintf(out,"\n};\n");
/*
* We write some useful defines
*/
fprintf(out, "\n\n#define MIN_SYSCALL_NUMBER 0\n");
fprintf(out, "#define MAX_SYSCALL_NUMBER %d\n", sys_call_idx-1);
fprintf(out, "#define NUMBER_OF_SYSCALLS %d\n", sys_call_idx);
return(0);
}
int
process(
FILE * in,
FILE * out,
FILE * out2,
FILE * out3
)
{
char line [INPUT_BUFFER_SIZE];
char * s;
char * name; /* NtXXX name */
char * name2; /* ZwXXX name */
int sys_call_idx; /* NtXXX index number in the service table */
char * nr_args; /* stack_size / machine_word_size */
char * stmp;
/*
* NTDLL stubs file header
*/
fprintf(out,"// Machine generated, don't edit\n");
fprintf(out,"\n\n");
/*
* NTOSKRNL Zw functions stubs header
*/
fprintf(out3,"// Machine generated by genntdll, don't edit\n");
fprintf(out3,"\n\n");
/*
* Scan the database. DB is a text file; each line
* is a record, which contains data for one system
* function. Each record has three columns:
*
* NT_NAME (e.g. NtCreateProcess)
* ZW_NAME (e.g. ZwCreateProcess)
* STACK_SIZE (in machine words: for x[3456]86
* processors a machine word is 4 bytes)
*/
for ( /* First system call has index zero */
sys_call_idx = 0;
/* Go on until EOF or read zero bytes */
( (!feof(in))
&& (fgets(line, sizeof line, in) != NULL)
);
/* Next system call index */
sys_call_idx++
)
{
/*
* Remove, if present, the trailing CR.
* (os specific?)
*/
if ((s = (char *) strchr(line,'\r')) != NULL)
{
*s = '\0';
}
/*
* Skip comments (#) and empty lines.
*/
s = & line[0];
if ((*s) != '#' && (*s) != '\0')
{
/* Extract the NtXXX name */
name = (char *)strtok(s," \t");
/* Extract the ZwXXX name */
name2 = (char *)strtok(NULL," \t");
//value = strtok(NULL," \t");
/* Extract the stack size */
nr_args = (char *)strtok(NULL," \t");
/*
* Remove, if present, the trailing LF.
*/
if ((stmp = strchr(nr_args, '\n')) != NULL)
{
*stmp = '\0';
}
#ifdef VERBOSE
printf("%3d \"%s\"\n",sys_call_idx,name);
#endif
/*
* Write the NTDLL stub for the current
* system call: NtXXX and ZwXXX symbols
* are aliases.
*/
write_syscall_stub(out, out3, name, name2,
nr_args, sys_call_idx);
}
}
return(0);
}
void usage(char * argv0)
{
printf("Usage: %s sysfuncs.lst napi.c napi.h zw.c\n"
" sysfuncs.lst system functions database\n"
" napi.c NTDLL stubs\n"
" napi.h NTOSKRNL service table\n"
" zw.c NTOSKRNL Zw stubs\n",
argv0
);
}
int main(int argc, char* argv[])
{
FILE * in; /* System calls database */
FILE * out1; /* NTDLL stubs */
FILE * out2; /* SERVICE_TABLE */
FILE * out3; /* NTOSKRNL Zw stubs */
int ret;
if (argc != 5)
{
usage(argv[0]);
return(1);
}
in = fopen(argv[1],"rb");
if (in == NULL)
{
perror("Failed to open input file (system calls database)");
return(1);
}
out1 = fopen(argv[2],"wb");
if (out1 == NULL)
{
perror("Failed to open output file (NTDLL stubs)");
return(1);
}
out2 = fopen(argv[3],"wb");
if (out2 == NULL)
{
perror("Failed to open output file (NTOSKRNL service table)");
return(1);
}
out3 = fopen(argv[4],"wb");
if (out3 == NULL)
{
perror("Failed to open output file (NTOSKRNL Zw stubs)");
return(1);
}
ret = process(in,out1,out2,out3);
rewind(in);
ret = makeSystemServiceTable(in, out2);
fclose(in);
fclose(out1);
fclose(out2);
fclose(out3);
return(ret);
}

View File

@@ -1,22 +0,0 @@
# $Id: makefile,v 1.1 2004/02/06 08:21:56 fireball Exp $
#
# ReactOS Operating System - MSVC6 Zw functions stubs to call generator
#
SYSTEM_CALLS_DB = ..\..\..\reactos\iface\native\sysfuncs.lst
KERNEL_ZW_CALLS =..\..\ntoskrnl\nt_zw_msvc.c
all: genntdll.exe $(KERNEL_ZW_CALLS)
$(KERNEL_ZW_CALLS) : $(SYSTEM_CALLS_DB)
genntdll.exe $(SYSTEM_CALLS_DB) foo1 foo2 $(KERNEL_ZW_CALLS)
-@del foo1
-@del foo2
genntdll.exe : genntdll.c
clean:
-@del *.exe
-@del *.obj
-@del $(KERNEL_ZW_CALLS)

View File

@@ -1,4 +0,0 @@
Debug
Release
nt_zw_msvc.c
ntoskrnl.def

View File

@@ -1,167 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-25
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: ke_i386_bthread.c,v 1.1 2004/02/06 08:21:56 fireball Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: ntoskrnl/ke/i386/bthread.S
* PURPOSE: Trap handlers
* PROGRAMMER: David Welch (david.welch@seh.ox.ac.uk)
*/
/* INCLUDES ******************************************************************/
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
/* Values for contextflags */
#define CONTEXT_i386 0x10000
#ifndef CONTEXT_CONTROL
#define CONTEXT_CONTROL (CONTEXT_i386 | 1)
#endif
#ifndef CONTEXT_INTEGER
#define CONTEXT_INTEGER (CONTEXT_i386 | 2)
#endif
#ifndef CONTEXT_SEGMENTS
#define CONTEXT_SEGMENTS (CONTEXT_i386 | 4)
#endif
#ifndef CONTEXT_FLOATING_POINT
#define CONTEXT_FLOATING_POINT (CONTEXT_i386 | 8)
#endif
#ifndef CONTEXT_DEBUG_REGISTERS
#define CONTEXT_DEBUG_REGISTERS (CONTEXT_i386 | 0x10)
#endif
#ifndef CONTEXT_FULL
#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS)
#endif
/* FUNCTIONS *****************************************************************/
void KeReturnFromSystemCallWithHook();
VOID PiBeforeBeginThread(CONTEXT c);
/*
*
*/
__declspec(naked)
VOID PsBeginThread(PKSTART_ROUTINE StartRoutine, PVOID StartContext)
{
/*
* This isn't really a function, we are called as the return address
* of the context switch function
*/
/*
* Do the necessary prolog after a context switch
*/
__asm
{
call PiBeforeBeginThread
/*
* Call the actual start of the thread
*/
// We must NOT use the arguments by name. VC then uses EBP-relative
// addressing, and with an EBP of 0 you can imagine what happens.
mov ebx, 4[esp] // StartRoutine
mov eax, 8[esp] // StartContext
push eax
call ebx /* Call the start routine */
add esp, 4
/*
* Terminate the thread
*/
push eax
call PsTerminateSystemThread
add esp, 4
}
/* If that fails then bug check */
KeBugCheck(0);
/* And if that fails then loop */
for (;;)
; // forever
}
__declspec(naked)
VOID PsBeginThreadWithContextInternal(VOID)
{
/*
* This isn't really a function, we are called as the return
* address of a context switch
*/
/*
* Do the necessary prolog before the context switch
*/
__asm
{
call PiBeforeBeginThread
/*
* Load the context flags.
*/
pop ebx
/*
* Load the debugging registers
*/
test ebx, (CONTEXT_DEBUG_REGISTERS & ~CONTEXT_i386)
jz L1
pop eax __asm mov dr0, eax
pop eax __asm mov dr1, eax
pop eax __asm mov dr2, eax
pop eax __asm mov dr3, eax
pop eax __asm mov dr6, eax
pop eax __asm mov dr7, eax
jmp L3
L1:
add esp, 24
L3:
/*
* Load the floating point registers
*/
mov eax, HardwareMathSupport
test eax,eax
jz L2
test ebx, (CONTEXT_FLOATING_POINT & ~CONTEXT_i386)
jz L2
frstor [esp]
L2:
add esp, 112
/* Load the rest of the thread's user mode context. */
mov eax, 0
jmp KeReturnFromSystemCallWithHook
}
}

View File

@@ -1,114 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-26
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: ntoskrnl/ke/i386/vm86_sup.S
* PURPOSE: V86 mode support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
// no arg-list, but asm doesn't care anyway
void KiInterruptDispatch();
#define DEFINE_INT_HANDLER(N) \
__declspec(naked) \
void irq_handler_##N() \
{ \
__asm pushad \
__asm push ds \
__asm push es \
__asm push fs \
__asm mov eax, 0xceafbeef \
__asm push eax \
__asm mov ax, KERNEL_DS \
__asm mov ds, ax \
__asm mov es, ax \
__asm mov ax, PCR_SELECTOR \
__asm mov fs, ax \
__asm push esp \
__asm push N \
__asm call KiInterruptDispatch \
__asm pop eax \
__asm pop eax \
__asm pop eax \
__asm pop fs \
__asm pop es \
__asm pop ds \
__asm popad \
__asm iretd
// NOTE: The inline assembler can't deal with having the final brace,
// ending the function, on the same line as an __asm, why there is
// none here and it MUST be added when using the macro!
DEFINE_INT_HANDLER(0)
}
DEFINE_INT_HANDLER(1)
}
DEFINE_INT_HANDLER(2)
}
DEFINE_INT_HANDLER(3)
}
DEFINE_INT_HANDLER(4)
}
DEFINE_INT_HANDLER(5)
}
DEFINE_INT_HANDLER(6)
}
DEFINE_INT_HANDLER(7)
}
DEFINE_INT_HANDLER(8)
}
DEFINE_INT_HANDLER(9)
}
DEFINE_INT_HANDLER(10)
}
DEFINE_INT_HANDLER(11)
}
DEFINE_INT_HANDLER(12)
}
DEFINE_INT_HANDLER(13)
}
DEFINE_INT_HANDLER(14)
}
DEFINE_INT_HANDLER(15)
}

View File

@@ -1,655 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2003 Mike Nordell
* Based on multiboot.S (no copyright note present), but so heavily
* modified that it bears close to no resemblance to the original work.
*
* MSVC compatible combination of plain C and inline assembler to:
* 1 Relocated all the sections in the kernel - something I feel the
* bootloader should have done, but multiboot being just a "raw image"
* loader, it unfortunately had to be done here - in-place.
* 2 Set up page directories and stuff.
* 3 Load IDT, GDT and turn on paging, making us execute at the intended
* target address (as if the image was PE-loaded and parsed into that addr.)
* 4 Call _main, and let the rest of the startup run...
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
//
// TODO: Fix the MP parts
//
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <pe.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
#include <internal/ps.h>
#include <internal/ldr.h>
// some notes:
// The MSVC linker (by defult) emits no special .bss section, but uses the data
// section with a rawsize smaller than virtualsize. The "slack" is BSS.
//////////////////////////////////////////////////////////////////
// Some macros we need
// some stuff straight from freeloaders multiboot.h
#define MULTIBOOT_HEADER_MAGIC (0x1BADB002)
#define MULTIBOOT_HEADER_FLAGS (0x00010003)
#define TARGET_LOAD_ADDR 0x00200000
#define BASE_TO_PHYS_DIST (KERNEL_BASE - TARGET_LOAD_ADDR)
#define V2P(x) (x - BASE_TO_PHYS_DIST)
#ifdef MP
#define AP_MAGIC (0x12481020)
#endif /* MP */
void initialize_page_directory(void);
void* relocate_pointer_log_to_phys(const void* p)
{
// DON'T CALL this function until relocation of .data and/or .rdata,
// is completed - but still be sure that we have not yet enabled paging!
return (void*)((DWORD)p - BASE_TO_PHYS_DIST);
}
#ifdef _DEBUG
// Macro to emit one character to Bochs debug-port (0x9e).
// We need to do it this way, since at this point of the startup, obviously
// we have neither HAL nor DbgPrint support.
#define BOCHS_OUT_CHAR(c1) __asm push eax __asm push edx __asm mov dx, 0xe9 __asm mov al, c1 __asm out dx, al __asm pop edx __asm pop eax
void boch_out_hex_digit(unsigned char ch1)
{
if (ch1 <= 9) { ch1 += '0'; } else { ch1 += 'a' - 10; }
BOCHS_OUT_CHAR(ch1)
}
void bochs_dump_hex(DWORD p)
{
unsigned char ch3 = (unsigned char)((p >> 28) & 0x0f);
unsigned char cl3 = (unsigned char)((p >> 24) & 0x0f);
unsigned char ch2 = (unsigned char)((p >> 20) & 0x0f);
unsigned char cl2 = (unsigned char)((p >> 16) & 0x0f);
unsigned char ch1 = (unsigned char)((p >> 12) & 0x0f);
unsigned char cl1 = (unsigned char)((p >> 8) & 0x0f);
unsigned char ch0 = (unsigned char)((p >> 4) & 0x0f);
unsigned char cl0 = (unsigned char)((p >> 0) & 0x0f);
BOCHS_OUT_CHAR('0') BOCHS_OUT_CHAR('x')
boch_out_hex_digit(ch3);
boch_out_hex_digit(cl3);
boch_out_hex_digit(ch2);
boch_out_hex_digit(cl2);
boch_out_hex_digit(ch1);
boch_out_hex_digit(cl1);
boch_out_hex_digit(ch0);
boch_out_hex_digit(cl0);
BOCHS_OUT_CHAR('\n')
}
static void bochs_out_string(const char* s /* logical address! */)
{
s = relocate_pointer_log_to_phys(s);
__asm
{
pushad
mov dx, 0xe9
mov ebx, s
L1:
cmp byte ptr[ebx], 0
je end
mov al, [ebx]
out dx, al
inc ebx
jmp L1
end:
popad
}
}
#else
#define BOCHS_OUT_CHAR(c1)
#define bochs_dump_hex(VAL)
#define bochs_out_string(STR)
#endif // _DEBUG
//////////////////////////////////////////////////////////////////
typedef char kernel_page_t[4096];
// Use 4096 (pagesize) more bytes that actually needed for each *_holder,
// to be able to make sure that the other stuff is page aligned.
// No other way to do this portably... :-(
//
// TODO: Consider allocating just one large block of BSS memory here, align
// just the first pointer, and then get the other ones just as offsets from
// this (now-aligned) pointer. That way we could get away with wasting just
// one page of memory, instead of 4 (like 16KB would matter... but still)
static kernel_page_t* startup_pagedirectory_holder[1024 * 2];
static kernel_page_t* lowmem_pagetable_holder[1024 * 2];
static kernel_page_t* kernel_pagetable_holder[32*1024 + 1];
static __int32 kpcr_pagetable_holder[4096/4 * 2];
#ifdef MP
char apic_pagetable[4096];
#endif /* MP */
__int32 unmap_me[4096/4];
__int32 unmap_me2[4096/4];
__int32 unmap_me3[4096/4];
__int32 init_stack[3*4096/4];
int init_stack_top;
__int32 trap_stack[3*4096/4];
int trap_stack_top;
void _main();
// lie a bit about types - since C is basically typeless anyway, it
// doesn't really matter what type we say it is here...
extern int KiGdtDescriptor;
extern int KiIdtDescriptor;
/*
* This is called by the realmode loader, with protected mode
* enabled, paging disabled and the segment registers pointing
* a 4Gb, 32-bit segment starting at zero.
*
* EAX = Multiboot magic or application processor magic
*
* EBX = Points to a structure in lowmem with data from the
* loader
*/
#pragma intrinsic(memset)
// We need to implement this ourself, to be able to get to it by short call's
void our_memmove(void* pDest, const void* pSrc, DWORD size)
{
char* pD = (char*)pDest;
const char* pS = (char*)pSrc;
if (pDest < pSrc)
{
while (size--)
{
*pD++ = *pS++;
}
}
else if (pSrc < pDest)
{
while (size--)
{
pD[size] = pS[size];
}
}
}
void dummy_placeholder(void)
{
// NOTE: This function MUST be placed JUST AFTER MultibootStub in memory.
// Yes, it's BEFORE it in this file, but linkorder.txt fixes this for us.
}
// This one is needed, since the boot loader hasn't relocated us
__declspec(naked)
void MultibootStub()
{
__asm
{
jmp _multiboot_entry
// This sucks, I know...
#define EMIT_DWORD(x) __asm __emit ((x) >> 0) & 0xff __asm _emit ((x) >> 8) & 0xff __asm _emit ((x) >> 16) & 0xff __asm _emit ((x) >> 24) & 0xff
ALIGN 4
EMIT_DWORD(MULTIBOOT_HEADER_MAGIC)
EMIT_DWORD(MULTIBOOT_HEADER_FLAGS)
EMIT_DWORD(-(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS))
EMIT_DWORD(TARGET_LOAD_ADDR + 0x0400 + 0x04)
// Now just make something up, since there is no way we can know, beforehand,
// where any BSS data is...
EMIT_DWORD((TARGET_LOAD_ADDR))
EMIT_DWORD((TARGET_LOAD_ADDR + 1*1024*1024)) /* assume ntoskrnel.exe is < 1MB! */
EMIT_DWORD((TARGET_LOAD_ADDR + 2*1024*1024)) /* just to have something, let's say BSS is 1MB too */
/* This is *REALLY* ugly! If MultibootStub is *EVER* at */
/* any other offset, this will crash like crazy! */
/* 0x0400 is the file alignment of the binary (ntoskrnl.exe) */
EMIT_DWORD((TARGET_LOAD_ADDR + 0x0400)) // entry_addr
_multiboot_entry:
cld // just for good measure
}
{
/* Save the multiboot or application processor magic */
DWORD saved_eax;
DWORD saved_ebx;
__asm mov saved_eax, eax
__asm mov saved_ebx, ebx
// bochs_out_string("MultibootStub()\n");
// OK, time to relocate the brute-loaded image in-place...
// If we don't watch it, we will overwrite ourselves here - imagine
// the fireworks! :-) That's why the function dummy_placeholder()
// MUST be placed JUST JUST AFTER this function.
{
PIMAGE_NT_HEADERS NtHeader = RtlImageNtHeader((PVOID)TARGET_LOAD_ADDR);
PIMAGE_SECTION_HEADER Section = IMAGE_FIRST_SECTION(NtHeader);
const int count = NtHeader->FileHeader.NumberOfSections;
int i;
Section += count - 1; // make it point to the last section
// NOTE: We MUST walk the sections "backwards".
for (i = count-1; i >= 0; --i, --Section)
{
DWORD dwSrc = TARGET_LOAD_ADDR + Section->PointerToRawData;
DWORD dwDst = TARGET_LOAD_ADDR + Section->VirtualAddress;
DWORD dwSiz = Section->SizeOfRawData;
const char* pEndThisFunc;
if (dwSrc == dwDst)
{
continue;
}
//bochs_out_string("MultibootStub: relocating section\n");
if (Section->Characteristics & IMAGE_SCN_MEM_EXECUTE)
{
// can't get a pointer to a label from plain C :-(
__asm mov pEndThisFunc, offset dummy_placeholder
pEndThisFunc -= BASE_TO_PHYS_DIST;
if (dwDst < (DWORD)pEndThisFunc)
{
// We must not move the code from under our feet!
// This can only happen in the code segment - the first segment
DWORD diff = (DWORD)pEndThisFunc - dwDst;
dwDst += diff;
dwSrc += diff;
dwSiz -= diff;
}
}
// obviously we must use memmove, since memory can overlap
our_memmove((void*)dwDst, (void*)dwSrc, dwSiz);
// While at it, we might as well zero any uninitialized data in the section...
if (Section->SizeOfRawData < Section->Misc.VirtualSize)
{
memset((char*)(Section->VirtualAddress + Section->SizeOfRawData + TARGET_LOAD_ADDR),
0,
Section->Misc.VirtualSize - Section->SizeOfRawData);
}
}
// Now all sections are relocated to their intended in-memory layout,
// but we are still running int the low TARGET_LOAD_ADDR memory.
{
// Time to jump to the real startup, the entry-point function.
// We must do this using assembler, since both eax and ebx are assumed
// to hold some magic values.
typedef VOID (STDCALL* pfn_t)(PPEB);
pfn_t pfn = (pfn_t)(NtHeader->OptionalHeader.AddressOfEntryPoint + TARGET_LOAD_ADDR);
#if 1
__asm mov eax, saved_eax
__asm mov ebx, saved_ebx
__asm mov ecx, pfn
__asm jmp ecx
#else
__asm mov ebx, saved_ebx
(*pfn)((PPEB)saved_eax);
#endif
}
}
}
}
// TMN: TODO: Convert this to the extent possible to plain C code
// Due to the "magic" above, we enter this function with all kernel sections
// properly relocated wrt. offsets from start-of-mem. But, we are still running
// without paging, meaning that the address that is to be KERNEL_BASE+xyz is
// currently still TARGET_LOAD_ADDR+xyz.
// We get aways with a few of the functions call here since they are near calls
// (PC-relative), but don't even _think_ about calling any other functions
// until we have turned on paging!
VOID STDCALL
NtProcessStartup(
IN PPEB Peb
)
{
DWORD saved_ebx;
DWORD saved_eax;
__asm mov saved_ebx, ebx
__asm mov saved_eax, eax
bochs_out_string("NtProcessStartup: Just entered\n");
#ifdef MP
if (saved_eax != AP_MAGIC)
{
#endif /* MP */
bochs_out_string("NtProcessStartup: Calling initialize_page_directory()\n");
initialize_page_directory(); // Initialize the page directory
bochs_out_string("NtProcessStartup: Page directory initialized\n");
#ifdef MP
__asm
{
/*
* Initialize the page table that maps the APIC register address space
*/
/*
* FIXME: APIC register address space can be non-standard so do the
* mapping later
*/
mov esi, V2P(apic_pagetable)
mov edi, 0
mov eax, 0xFEC0001B
mov [esi+edi], eax
mov edi, 0x800
mov eax, 0xFEE0001B
mov [esi+edi], eax
}
}
#endif /* MP */
{
bochs_out_string("NtProcessStartup: Enabling paging...\n");
/*
* Enable paging and set write protect
* bit 31: PG, bit 16: WP
*/
__asm mov eax, cr0
__asm or eax, 0x80010000
__asm mov cr0, eax
bochs_out_string("NtProcessStartup: Paging enabled!\n");
bochs_out_string("NtProcessStartup: But we're still at the \"low\" address\n");
/*
* Do an absolute jump because we now want to execute above KERNEL_BASE
*/
__asm mov eax, offset l2_
__asm jmp eax
}
l2_:
bochs_out_string("We have now left \"low\" memory, and is flying at an altitude of...\n");
bochs_out_string("OK, we're not flying, we're just executing above KERNEL_BASE\n");
/*
* Load the GDTR and IDTR with new tables located above
* KERNEL_BASE
*/
#ifdef _DEBUG
{
DWORD val = (DWORD)&KiGdtDescriptor;
bochs_out_string("&KiGdtDescriptor: ");
bochs_dump_hex(val);
val = (DWORD)&KiIdtDescriptor;
bochs_out_string("&KiIdtDescriptor: ");
bochs_dump_hex(val);
}
#endif
bochs_out_string("Loading GDT and IDT...\n");
/* FIXME: Application processors should have their own GDT/IDT */
__asm lgdt KiGdtDescriptor
__asm lidt KiIdtDescriptor
bochs_out_string("GDT and IDT loaded\n");
__asm
{
/*
* Reload the data segment registers
*/
mov eax, KERNEL_DS
mov ds, ax
mov es, ax
mov gs, ax
mov ss, ax
mov eax, 0
mov fs, ax
}
bochs_out_string("NtProcessStartup: segment registers loaded\n");
#ifdef MP
if (saved_eax == AP_MAGIC)
{
__asm
{
/*
* This is an application processor executing
*/
/*
* Initialize EFLAGS
*/
push 0
popfd
/*
* Call the application processor initialization code
*/
push 0
push offset l7_
push KERNEL_CS
push KiSystemStartup
retf
/*
* Catch illegal returns from KiSystemStartup
*/
l7_:
pop eax
}
KeBugCheck(0);
for (;;)
; /*forever */
}
#endif /* MP */
bochs_out_string("Loading fs with PCR_SELECTOR\n");
/* Load the PCR selector */
__asm mov eax, PCR_SELECTOR
__asm mov fs, ax
bochs_out_string("Loading esp with init_stack_top : "); bochs_dump_hex((DWORD)&init_stack_top);
bochs_out_string("Just for interest, init_stack is at: "); bochs_dump_hex((DWORD)init_stack);
bochs_out_string("Meaing the init_stack in bytes is : "); bochs_dump_hex((DWORD)&init_stack_top - (DWORD)init_stack);
/* Load the initial kernel stack */
__asm mov esp, offset init_stack_top
bochs_out_string("Loaded esp with init_stack_top\n");
/*
* Initialize EFLAGS
*/
__asm push 0
__asm popfd
bochs_out_string("Loaded eflags\n");
/*
* Call the main kernel initialization
*/
bochs_out_string("TMN: Calling _main...\n");
__asm
{
xor ebp,ebp
push ebx
push edx
push offset l5_
push KERNEL_CS
push offset _main
retf
/*
* Catch illegal returns from main, try bug checking the system,
* if that fails then loop forever.
*/
l5_:
pop eax
pop eax
} // end of __asm block
bochs_out_string("TMN: Back from _main ?! Let's crash!\n");
KeBugCheck(0);
for (;;)
; /*forever */
}
void initialize_page_directory(void)
{
/*
* Initialize the page directory
*/
// First convert the pointers from the virtual address the compiler generated
// code thinks we are at, to the currently active physical address we actually
// got loaded into by the loader. At this point we have been relocated, so
// that there is a 1:1 mapping between KERNEL_BASE+n and TARGET_LOAD_ADDR+n.
kernel_page_t** startup_pagedirectory = startup_pagedirectory_holder;
kernel_page_t** lowmem_pagetable = lowmem_pagetable_holder;
kernel_page_t** kernel_pagetable = kernel_pagetable_holder;
__int32* kpcr_pagetable = kpcr_pagetable_holder;
bochs_out_string("startup_pagedirectory before reloc: ");
bochs_dump_hex((DWORD)startup_pagedirectory);
startup_pagedirectory = (kernel_page_t**)relocate_pointer_log_to_phys(startup_pagedirectory);
lowmem_pagetable = (kernel_page_t**)relocate_pointer_log_to_phys(lowmem_pagetable);
kernel_pagetable = (kernel_page_t**)relocate_pointer_log_to_phys(kernel_pagetable);
kpcr_pagetable = (__int32*) relocate_pointer_log_to_phys(kpcr_pagetable);
bochs_out_string("startup_pagedirectory after reloc : ");
bochs_dump_hex((DWORD)startup_pagedirectory);
// Now align the pointers to PAGE_SIZE...
startup_pagedirectory = (kernel_page_t**)(((ULONG_PTR)startup_pagedirectory + 4095) & ~4095);
lowmem_pagetable = (kernel_page_t**)(((ULONG_PTR)lowmem_pagetable + 4095) & ~4095);
kernel_pagetable = (kernel_page_t**)(((ULONG_PTR)kernel_pagetable + 4095) & ~4095);
kpcr_pagetable = (__int32* ) (((ULONG_PTR)kpcr_pagetable + 4095) & ~4095);
#ifdef _DEBUG
bochs_out_string("startup_pagedirectory aligned : ");
bochs_dump_hex((DWORD)startup_pagedirectory);
#endif
// Ugly macros, I know...
#define DEST(PAGE) startup_pagedirectory[(PAGE) + 0xc00 / 4]
#define SRC(PAGE) (kernel_page_t*)((char*)kernel_pagetable + (PAGE)*4096 + 0x7)
startup_pagedirectory[0] = (kernel_page_t*)((char*)lowmem_pagetable + 0x7);
{
unsigned int i;
for (i=0; i<32; ++i)
{
DEST(i) = SRC(i);
}
}
DEST( 64) = (kernel_page_t*)((char*)lowmem_pagetable + 0x7);
DEST(192) = (kernel_page_t*)((char*)startup_pagedirectory + 0x7);
#ifdef MP
DEST(251) = (kernel_page_t*)((char*)apic_pagetable + 0x7);
#endif /* MP */
DEST(252) = (kernel_page_t*)((char*)kpcr_pagetable + 0x7);
{
unsigned int i;
/* Initialize the page table that maps low memory */
for (i=0; i<1024; ++i) {
lowmem_pagetable[i] = (kernel_page_t*)(i*4096 + 7);
}
/* Initialize the page table that maps kernel memory */
for (i=0; i<6144/4 /* 1536 pages = 6MB */; ++i) {
kernel_pagetable[i] = (kernel_page_t*)(i*4096 + TARGET_LOAD_ADDR + 0x7);
}
/* Initialize the page table that maps the initial KPCR (at FF000000) */
kpcr_pagetable[0] = 0x1007;
}
/*
* Set up the PDBR
*/
__asm mov eax, startup_pagedirectory
__asm mov cr3, eax
}

View File

@@ -1,110 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-26
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: ntoskrnl/ke/i386/vm86_sup.S
* PURPOSE: V86 mode support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
//#include <ntos/service.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
void KeReturnFromSystemCall();
/*
* FUNCTION: KeStackSwitchAndRet
* PURPOSE: Switch to a new stack and return from the first frame on
* the new stack which was assumed to a stdcall function with
* 8 bytes of arguments and which saved edi, esi and ebx.
*/
__declspec(naked)
VOID STDCALL
KeStackSwitchAndRet(PVOID NewStack)
{
__asm
{
push ebp
mov ebp, esp
cli
mov esp, NewStack
sti
pop edi
pop esi
pop ebx
pop ebp
ret 8
}
}
__declspec(naked)
VOID STDCALL
KePushAndStackSwitchAndSysRet(ULONG Push, PVOID NewStack)
{
__asm
{
push ebp
mov ebp, esp
push ebx
push esi
push edi
cli
push 8[ebp]
mov ebx, fs:KPCR_CURRENT_THREAD
mov KTHREAD_CALLBACK_STACK[ebx], esp
mov esp, 12[ebp]
sti
push 0
call KeLowerIrql
jmp KeReturnFromSystemCall
}
}

View File

@@ -1,325 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Converted to MSVC-compatible inline assembler by Mike Nordell, 2003.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: MSVC6/ntoskrnl/ke_i386_syscall.c
* based on ntoskrnl/ke/i386/syscall.s
* PURPOSE: syscall dispatching and support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
//#include <ntos/service.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
#define KernelMode (0)
#define UserMode (1)
// TMN: Replicated here to reduce mess-time
#ifdef STATUS_INVALID_SYSTEM_SERVICE
#undef STATUS_INVALID_SYSTEM_SERVICE
#endif
#define STATUS_INVALID_SYSTEM_SERVICE 0xc000001c
/*
*
*/
void KiServiceCheck (ULONG Nr);
ULONG KiAfterSystemCallHook(ULONG NtStatus, PKTRAP_FRAME TrapFrame);
VOID KiSystemCallHook(ULONG Nr, ...);
void KeReturnFromSystemCallWithHook();
void KeReturnFromSystemCall();
__declspec(naked)
void interrupt_handler2e(void)
{
__asm
{
/* Construct a trap frame on the stack */
/* Error code */
push 0
push ebp
push ebx
push esi
push edi
push fs
/* Load PCR selector into fs */
mov ebx, PCR_SELECTOR
mov fs, bx
/* Save the old exception list */
mov ebx, fs:KPCR_EXCEPTION_LIST
push ebx
/* Set the exception handler chain terminator */
mov dword ptr fs:KPCR_EXCEPTION_LIST, 0xffffffff
/* Get a pointer to the current thread */
mov esi, fs:KPCR_CURRENT_THREAD
/* Save the old previous mode */
xor ebx,ebx
mov bl, ss:KTHREAD_PREVIOUS_MODE[esi]
push ebx
/* Set the new previous mode based on the saved CS selector */
mov ebx, 0x24[esp]
and ebx, 0x0000FFFF
cmp ebx, KERNEL_CS
#if 0
// TODO: Verify implementation change and use this code path
// to remove two conditional jumps.
setnz bl
mov ss:KTHREAD_PREVIOUS_MODE[esi], bl
#else
jne L1
mov ss:KTHREAD_PREVIOUS_MODE[esi], KernelMode
jmp L3
L1:
mov ss:KTHREAD_PREVIOUS_MODE[esi], UserMode
L3:
#endif
/* Save other registers */
push eax
push ecx
push edx
push ds
push es
push gs
push 0 /* DR7 */
push 0 /* DR6 */
push 0 /* DR3 */
push 0 /* DR2 */
push 0 /* DR1 */
push 0 /* DR0 */
push 0 /* XXX: TempESP */
push 0 /* XXX: TempCS */
push 0 /* XXX: DebugPointer */
push 0 /* XXX: DebugArgMark */
mov ebx, 0x60[esp]
push ebx /* DebugEIP */
push ebp /* DebugEBP */
/* Load the segment registers */
mov bx, KERNEL_DS
mov ds, bx
mov es, bx
mov gs, bx
/*
* Save the old trap frame pointer over where we would save the EDX
* register.
*/
mov ebx, KTHREAD_TRAP_FRAME[esi]
mov 0x3C[esp], ebx
/* Save a pointer to the trap frame in the TCB */
mov KTHREAD_TRAP_FRAME[esi], esp
/* Set ES to kernel segment */
mov bx, KERNEL_DS
mov es, bx
/* Allocate new Kernel stack frame */
mov ebp, esp
/* Users's current stack frame pointer is source */
mov esi, edx
/* Determine system service table to use */
cmp eax, 0x0fff
ja new_useShadowTable
/* Check to see if EAX is valid/inrange */
cmp eax, es:KeServiceDescriptorTable + 8
jbe new_serviceInRange
mov eax, STATUS_INVALID_SYSTEM_SERVICE
jmp KeReturnFromSystemCall
new_serviceInRange:
/* Allocate room for argument list from kernel stack */
mov ecx, es:KeServiceDescriptorTable + 12
mov ecx, es:[ecx + eax * 4]
sub esp, ecx
/* Copy the arguments from the user stack to the kernel stack */
mov edi, esp
cld
repe movsb
/* DS is now also kernel segment */
mov ds, bx
/* Call system call hook */
push eax
call KiSystemCallHook
pop eax
/* Make the system service call */
mov ecx, es:KeServiceDescriptorTable
mov eax, es:[ecx + eax * 4]
call eax
#if CHECKED
/* Bump Service Counter */
#endif
/* Deallocate the kernel stack frame */
mov esp, ebp
/* Call the post system call hook and deliver any pending APCs */
push ebp
push eax
call KiAfterSystemCallHook
add esp, 8
jmp KeReturnFromSystemCall
new_useShadowTable:
sub eax, 0x1000
/* Check to see if EAX is valid/inrange */
cmp eax, es:KeServiceDescriptorTableShadow + 24
jbe new_shadowServiceInRange
mov eax, STATUS_INVALID_SYSTEM_SERVICE
jmp KeReturnFromSystemCall
new_shadowServiceInRange:
/* Allocate room for argument list from kernel stack */
mov ecx, es:KeServiceDescriptorTableShadow + 28
mov ecx, es:[ecx + eax * 4]
sub esp, ecx
/* Copy the arguments from the user stack to the kernel stack */
mov edi, esp
cld
repe movsb
/* DS is now also kernel segment */
mov ds, bx
/* Call system call hook */
// pushl %eax
// call _KiSystemCallHook
// popl %eax
/* Call service check routine */
push eax
call KiServiceCheck
pop eax
/* Make the system service call */
mov ecx, es:KeServiceDescriptorTableShadow + 16
mov eax, es:[ecx + eax * 4]
call eax
#if CHECKED
/* Bump Service Counter */
#endif
/* Deallocate the kernel stack frame */
mov esp, ebp
// TMN: Added, to be able to separate this into different functions
jmp KeReturnFromSystemCallWithHook
}
}
__declspec(naked)
void KeReturnFromSystemCallWithHook()
{
__asm
{
/* Call the post system call hook and deliver any pending APCs */
push esp
push eax
call KiAfterSystemCallHook
add esp, 8
// TMN: Added, to be able to separate this into different functions
jmp KeReturnFromSystemCall
}
}
__declspec(naked)
void KeReturnFromSystemCall()
{
__asm
{
/* Restore the user context */
/* Get a pointer to the current thread */
mov esi, fs:0x124
/* Restore the old trap frame pointer */
mov ebx, 0x3c[esp]
mov KTHREAD_TRAP_FRAME[esi], ebx
/* Skip debug information and unsaved registers */
add esp, 0x30
pop gs
pop es
pop ds
pop edx
pop ecx
add esp, 4 /* Don't restore eax */
/* Restore the old previous mode */
pop ebx
mov ss:KTHREAD_PREVIOUS_MODE[esi], bl
/* Restore the old exception handler list */
pop ebx
mov fs:KPCR_EXCEPTION_LIST, ebx
pop fs
pop edi
pop esi
pop ebx
pop ebp
add esp, 4 /* Ignore error code */
iretd
}
}

View File

@@ -1,468 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-26
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: ntoskrnl/ke/i386/vm86_sup.S
* PURPOSE: V86 mode support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
void KiV86Complete(void);
void KiTrapHandler(void);
void KiDoubleFaultHandler(void);
extern int KiPcrInitDone;
/*
* Epilog for exception handlers
*/
__declspec(naked)
void KiTrapEpilog()
{
__asm
{
cmp eax, 1 /* Check for v86 recovery */
jne _KiTrapRet
jmp KiV86Complete
_KiTrapRet:
/* Skip debug information and unsaved registers */
add esp, 0x30
pop gs
pop es
pop ds
pop edx
pop ecx
pop eax
/* Restore the old previous mode */
pop ebx
mov ss:KTHREAD_PREVIOUS_MODE[esi], bl
/* Restore the old exception handler list */
pop ebx
mov fs:KPCR_EXCEPTION_LIST, ebx
pop fs
pop edi
pop esi
pop ebx
pop ebp
add esp, 4 /* Ignore error code */
iretd
}
}
__declspec(naked)
void KiTrapProlog()
{
__asm
{
push edi
push fs
/*
* Check that the PCR exists, very early in the boot process it may
* not
*/
cmp ss:KiPcrInitDone, 0
je L5_
/* Load the PCR selector into fs */
mov ebx, PCR_SELECTOR
mov fs, bx
/* Save the old exception list */
mov ebx, fs:KPCR_EXCEPTION_LIST
push ebx
/* Put the exception handler chain terminator */
mov dword ptr fs:KPCR_EXCEPTION_LIST, 0xffffffff
/* Get a pointer to the current thread */
mov edi, fs:KPCR_CURRENT_THREAD
/* The current thread may be NULL early in the boot process */
cmp edi, 0
je L4_
/* Save the old previous mode */
xor ebx, ebx
mov bl, ss:KTHREAD_PREVIOUS_MODE[edi]
push ebx
/* Set the new previous mode based on the saved CS selector */
mov ebx, 0x24[esp]
and ebx, 0x0000FFFF
cmp ebx, KERNEL_CS
jne L1_
mov ss:KTHREAD_PREVIOUS_MODE[edi], KernelMode
jmp L3_
L1_:
mov ss:KTHREAD_PREVIOUS_MODE[edi], UserMode
L3_:
/* Save other registers */
push eax
push ecx
push edx
push ds
push es
push gs
push 0 /* DR7 */
push 0 /* DR6 */
push 0 /* DR3 */
push 0 /* DR2 */
push 0 /* DR1 */
push 0 /* DR0 */
push 0 /* XXX: TempESP */
push 0 /* XXX: TempCS */
push 0 /* XXX: DebugPointer */
push 0 /* XXX: DebugArgMark */
mov ebx, 0x60[esp]
push ebx /* XXX: DebugEIP */
push ebp /* XXX: DebugEBP */
/* Load the segment registers */
mov ebx, KERNEL_DS
mov ds, bx
mov es, bx
mov gs, bx
/* Set ES to kernel segment */
mov bx, KERNEL_DS
mov es, bx
mov ebx, esp
mov ebp, esp
/* Save the old trap frame. */
cmp edi, 0
je L7_
mov edx, ss:KTHREAD_TRAP_FRAME[edi]
push edx
jmp L8_
L7_:
push 0
L8_:
/* Save a pointer to the trap frame in the current KTHREAD */
cmp edi, 0
je L6_
mov ss:KTHREAD_TRAP_FRAME[edi], ebx
L6_:
/* Call the C exception handler */
push esi
push ebx
call KiTrapHandler
add esp, 8
/* Get a pointer to the current thread */
mov esi, fs:KPCR_CURRENT_THREAD
/* Restore the old trap frame pointer */
pop ebx
mov KTHREAD_TRAP_FRAME[esi], ebx
/* Return to the caller */
jmp KiTrapEpilog
/* Handle the no-pcr case out of line */
L5_:
push 0
/* Handle the no-thread case out of line */
L4_:
push 0
jmp L3_
} // end of __asm block
}
__declspec(naked)
void KiTrap0()
{
__asm
{
/* No error code */
push 0
push ebp
push ebx
push esi
mov esi, 0
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap1()
{
__asm
{
/* No error code */
push 0
push ebp
push ebx
push esi
mov esi, 1
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap2()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 2
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap3()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 3
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap4()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 4
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap5()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 5
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap6()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 6
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap7()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 7
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap8()
{
__asm
{
call KiDoubleFaultHandler
iretd
}
}
__declspec(naked)
void KiTrap9()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 9
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap10()
{
__asm
{
push ebp
push ebx
push esi
mov esi, 10
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap11()
{
__asm
{
push ebp
push ebx
push esi
mov esi, 11
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap12()
{
__asm
{
push ebp
push ebx
push esi
mov esi, 12
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap13()
{
__asm
{
push ebp
push ebx
push esi
mov esi, 13
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap14()
{
__asm
{
push ebp
push ebx
push esi
mov esi, 14
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap15()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 15
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap16()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 16
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrapUnknown()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 255
jmp KiTrapProlog
}
}
/* EOF */

View File

@@ -1,217 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-26
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: ntoskrnl/ke/i386/vm86_sup.S
* PURPOSE: V86 mode support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
//#include <ntos/service.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
extern KSPIN_LOCK PiThreadListLock;
extern ULONG PiNrThreadsAwaitingReaping;
extern ULONG MmGlobalKernelPageDirectory[1024];
VOID STDCALL PiWakeupReaperThread(VOID);
VOID KeSetBaseGdtSelector(ULONG Entry, PVOID Base);
/*
* FUNCTIONS: Switches to another thread's context
* ARGUMENTS:
* Thread = Thread to switch to
* OldThread = Thread to switch from
*/
__declspec(naked)
VOID
Ki386ContextSwitch(struct _KTHREAD* NewThread, struct _KTHREAD* OldThread)
{
__asm
{
push ebp
mov ebp, esp
/* Save callee save registers. */
push ebx
push esi
push edi
cli /* This is a critical section for this processor. */
/* Get the pointer to the new thread. */
mov ebx, NewThread
/*
* Set the base of the TEB selector to the base of the TEB for
* this thread.
*/
push ebx
push KTHREAD_TEB[ebx]
push TEB_SELECTOR
call KeSetBaseGdtSelector
add esp, 8
pop ebx
/*
* Load the PCR selector.
*/
mov eax, PCR_SELECTOR
mov fs, ax
/*
* Set the current thread information in the PCR.
*/
mov fs:KPCR_CURRENT_THREAD, ebx
/*
* Set the current LDT
*/
xor eax, eax
mov edi, ETHREAD_THREADS_PROCESS[ebx]
test word ptr KPROCESS_LDT_DESCRIPTOR0[edi], 0xFFFF
jz L4
push KPROCESS_LDT_DESCRIPTOR1[edi]
push KPROCESS_LDT_DESCRIPTOR0[edi]
push LDT_SELECTOR
call KeSetGdtSelector
add esp, 12
mov eax, LDT_SELECTOR
L4:
lldt ax
/*
* Load up the iomap offset for this thread in
* preparation for setting it below.
*/
mov eax, KPROCESS_IOPM_OFFSET[edi]
/*
* FIXME: Save debugging state.
*/
/*
* FIXME: Save floating point state.
*/
/*
* Switch stacks
*/
mov ebx, 12[ebp]
mov KTHREAD_KERNEL_STACK[ebx], esp
mov ebx, 8[ebp]
mov esp, KTHREAD_KERNEL_STACK[ebx]
mov edi, KTHREAD_STACK_LIMIT[ebx]
/*
* Set the stack pointer in this processors TSS
*/
mov esi, fs:KPCR_TSS
/*
* Set current IOPM offset in the TSS
*/
mov KTSS_IOMAPBASE[esi], ax
mov eax, KTHREAD_INITIAL_STACK[ebx]
mov KTSS_ESP0[esi], eax
/*
* Change the address space
*/
mov ebx, ETHREAD_THREADS_PROCESS[ebx]
mov eax, KPROCESS_DIRECTORY_TABLE_BASE[ebx]
mov cr3, eax
/*
* Set up the PDE for the top of the new stack.
*/
mov ebx, 0
L2:
mov esi, edi
shr esi, 22
mov eax, 0xF03C0000[esi*4]
cmp eax, 0
jne L1
mov eax, MmGlobalKernelPageDirectory[esi*4]
mov 0xF03C0000[esi*4], eax
L1:
add edi, 4096
inc ebx
cmp ebx, (MM_STACK_SIZE / 4096)
jl L2
/*
* FIXME: Restore floating point state
*/
/*
* FIXME: Restore debugging state
*/
/*
* Exit the critical section
*/
sti
}
KeReleaseSpinLockFromDpcLevel(&PiThreadListLock);
if (PiNrThreadsAwaitingReaping) {
PiWakeupReaperThread();
}
__asm
{
/*
* Restore the saved register and exit
*/
pop edi
pop esi
pop ebx
pop ebp
ret
}
}

View File

@@ -1,256 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-25
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: ntoskrnl/ke/i386/vm86_sup.S
* PURPOSE: V86 mode support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
#include <internal/ps.h>
// Taken from ntoskrnl/include/internal/v86m.h, since that one must be fixed
// a bit before it could be used from here.
#define KV86M_REGISTERS_EBP (0x0)
#define KV86M_REGISTERS_EDI (0x4)
#define KV86M_REGISTERS_ESI (0x8)
#define KV86M_REGISTERS_EDX (0xC)
#define KV86M_REGISTERS_ECX (0x10)
#define KV86M_REGISTERS_EBX (0x14)
#define KV86M_REGISTERS_EAX (0x18)
#define KV86M_REGISTERS_DS (0x1C)
#define KV86M_REGISTERS_ES (0x20)
#define KV86M_REGISTERS_FS (0x24)
#define KV86M_REGISTERS_GS (0x28)
#define KV86M_REGISTERS_EIP (0x2C)
#define KV86M_REGISTERS_CS (0x30)
#define KV86M_REGISTERS_EFLAGS (0x34)
#define KV86M_REGISTERS_ESP (0x38)
#define KV86M_REGISTERS_SS (0x3C)
void KiV86Complete();
/*
* Starts in v86 mode with the registers set to the
* specified values.
*/
__declspec(naked)
VOID Ki386RetToV86Mode(KV86M_REGISTERS* InRegs,
KV86M_REGISTERS* OutRegs)
{
__asm
{
/*
* Setup a stack frame
*/
push ebp
mov ebp, esp
pushad /* Save registers */
mov ebx, InRegs
/*
* Save ebp
*/
push ebp
/*
* Save a pointer to IN_REGS which the v86m exception handler will
* use to handle exceptions
*/
push ebx
/*
* Since we are going to fiddle with the stack pointer this must be
* a critical section for this processor
*/
/*
* Save the old initial stack
*/
mov esi, fs:KPCR_CURRENT_THREAD
mov edi, KTHREAD_INITIAL_STACK[esi]
push edi
/*
* We also need to set the stack in the kthread structure
*/
mov KTHREAD_INITIAL_STACK[esi], esp
/*
* The stack used for handling exceptions from v86 mode in this thread
* will be the current stack adjusted so we don't overwrite the
* existing stack frames
*/
mov esi, fs:KPCR_TSS
mov KTSS_ESP0[esi], esp
/*
* Create the stack frame for an iret to v86 mode
*/
push KV86M_REGISTERS_GS[ebx]
push KV86M_REGISTERS_FS[ebx]
push KV86M_REGISTERS_DS[ebx]
push KV86M_REGISTERS_ES[ebx]
push KV86M_REGISTERS_SS[ebx]
push KV86M_REGISTERS_ESP[ebx]
push KV86M_REGISTERS_EFLAGS[ebx]
push KV86M_REGISTERS_CS[ebx]
push KV86M_REGISTERS_EIP[ebx]
/*
* Setup the CPU registers
*/
mov eax, KV86M_REGISTERS_EAX[ebx]
mov ecx, KV86M_REGISTERS_ECX[ebx]
mov edx, KV86M_REGISTERS_EDX[ebx]
mov esi, KV86M_REGISTERS_ESI[ebx]
mov edi, KV86M_REGISTERS_EDI[ebx]
mov ebp, KV86M_REGISTERS_EBP[ebx]
mov ebx, KV86M_REGISTERS_EBX[ebx]
/*
* Go to v86 mode
*/
iretd
/*
* Handle the completion of a vm86 routine. We are called from
* an exception handler with the registers at the point of the
* exception on the stack.
*/
jmp KiV86Complete // TMN: Function-splitting
}
}
__declspec(naked)
void KiV86Complete()
{
__asm
{
/* Restore the original ebp */
mov ebp, TF_ORIG_EBP[esp]
/* Get a pointer to the OUT_REGS structure */
mov ebx, 12[ebp] // OutRegs
/* Skip debug information and unsaved registers */
add esp, 0x30
/* Ignore 32-bit segment registers */
add esp, 12
/* Save the vm86 registers into the OUT_REGS structure */
pop dword ptr KV86M_REGISTERS_EDX[ebx]
pop dword ptr KV86M_REGISTERS_ECX[ebx]
pop dword ptr KV86M_REGISTERS_EAX[ebx]
/* Restore the old previous mode */
pop eax
mov ss:KTHREAD_PREVIOUS_MODE[esi], al
/* Restore the old exception handler list */
pop eax
mov fs:KPCR_EXCEPTION_LIST, eax
/* Ignore the 32-bit fs register */
add esp, 4
pop dword ptr KV86M_REGISTERS_EDI[ebx]
pop dword ptr KV86M_REGISTERS_ESI[ebx]
pop dword ptr KV86M_REGISTERS_EBX[ebx]
pop dword ptr KV86M_REGISTERS_EBP[ebx]
/* Ignore error code */
add esp, 4
pop dword ptr KV86M_REGISTERS_EIP[ebx]
pop dword ptr KV86M_REGISTERS_CS[ebx]
pop dword ptr KV86M_REGISTERS_EFLAGS[ebx]
pop dword ptr KV86M_REGISTERS_ESP[ebx]
pop dword ptr KV86M_REGISTERS_SS[ebx]
pop dword ptr KV86M_REGISTERS_ES[ebx]
pop dword ptr KV86M_REGISTERS_DS[ebx]
pop dword ptr KV86M_REGISTERS_FS[ebx]
pop dword ptr KV86M_REGISTERS_GS[ebx]
/*
* We are going to fiddle with the stack so this must be a critical
* section for this process
*/
cli
/*
* Restore the initial stack
*/
pop eax
mov esi, fs:KPCR_TSS
mov KTSS_ESP0[esi], eax
/*
* We also need to set the stack in the kthread structure
*/
mov esi, fs:KPCR_CURRENT_THREAD
mov edi, KTHREAD_INITIAL_STACK[esi]
mov KTHREAD_INITIAL_STACK[esi], eax
/* Exit the critical section */
sti
/* Ignore IN_REGS pointer */
add esp, 4
/* Ignore ebp restored above */
add esp, 4
/* Return to caller */
popad
mov esp, ebp
pop ebp
ret
} // end of __asm block
}

View File

@@ -1,15 +0,0 @@
; This file is vital. It tells the linker how to order some functions
; and some data, that unfortunately is assumed to be at low location
; and in known order to eachother respectively?
MultibootStub
our_memmove
dummy_placeholder
NtProcessStartup@4
initialize_page_directory
relocate_pointer_log_to_phys
; Order some data that there is some assumptions about...
init_stack
init_stack_top
trap_stack
trap_stack_top

View File

@@ -1,126 +0,0 @@
#include <ddk/ntddk.h>
void MmSafeCopyToUserRestart();
void MmSafeCopyToUserUnsafeStart();
void MmSafeCopyFromUserUnsafeStart();
void MmSafeCopyFromUserRestart();
/*
* NTSTATUS MmSafeCopyFromUser(PVOID Dest, PVOID Src,
* ULONG NumberOfBytes)
*/
__declspec(naked)
NTSTATUS MmSafeCopyFromUser(PVOID Dest, const VOID *Src, ULONG Count)
{
__asm
{
push ebp
mov ebp,esp
push esi
push edi
push ecx
mov edi, 8[ebp]
mov esi, 12[ebp]
mov ecx, 16[ebp]
/*
* Default return code
*/
xor eax,eax
jmp MmSafeCopyFromUserUnsafeStart
}
}
__declspec(naked)
void MmSafeCopyFromUserUnsafeStart()
{
__asm
{
/*
* This is really a synthetic instruction since if we incur a
* pagefault then eax will be set to an appropiate STATUS code
*/
cld
rep movsb
jmp MmSafeCopyFromUserRestart
}
}
__declspec(naked)
void MmSafeCopyFromUserRestart()
{
__asm
{
pop ecx
pop edi
pop esi
pop ebp
ret
}
}
/*****************************************************************************/
/*
* NTSTATUS MmSafeCopyToUser(PVOID Dest, PVOID Src,
* ULONG NumberOfBytes)
*/
NTSTATUS MmSafeCopyToUser(PVOID Dest, const VOID *Src, ULONG Count)
{
__asm
{
push ebp
mov esp,ebp
push esi
push edi
push ecx
mov edi, 8[ebp]
mov esi, 12[ebp]
mov ecx, 16[ebp]
/*
* Default return code
*/
xor eax,eax
jmp MmSafeCopyToUserUnsafeStart
}
}
__declspec(naked)
void MmSafeCopyToUserUnsafeStart()
{
__asm
{
/*
* This is really a synthetic instruction since if we incur a
* pagefault then eax will be set to an appropiate STATUS code
*/
cld
rep movsb
jmp MmSafeCopyToUserRestart
}
}
__declspec(naked)
void MmSafeCopyToUserRestart()
{
__asm
{
pop ecx
pop edi
pop esi
pop ebp
ret
}
}

View File

@@ -1,574 +0,0 @@
/* $Id: mm_mminit_msvc.c,v 1.1 2004/02/06 08:22:01 fireball Exp $
*
* COPYRIGHT: See COPYING in the top directory
* PROJECT: ReactOS kernel
* FILE: ntoskrnl/mm/mminit.c
* PURPOSE: kernel memory managment initialization functions
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 9/4/98
*/
/* INCLUDES *****************************************************************/
#include <ddk/ntddk.h>
#include <roscfg.h>
#include <internal/i386/segment.h>
#include <internal/mm.h>
#include <internal/ntoskrnl.h>
#include <internal/io.h>
#include <internal/ps.h>
#include <internal/pool.h>
#define NDEBUG
#include <internal/debug.h>
/* GLOBALS *****************************************************************/
/*
* Size of extended memory (kb) (fixed for now)
*/
#define EXTENDED_MEMORY_SIZE (3*1024*1024)
/*
* Compiler defined symbols
*/
#if defined(_MSC_VER)
#pragma intrinsic(strcmp)
static PIMAGE_SECTION_HEADER FindSection(const char* szSeg)
{
PIMAGE_NT_HEADERS NtHeader = RtlImageNtHeader((PVOID)KERNEL_BASE);
PIMAGE_SECTION_HEADER Section = IMAGE_FIRST_SECTION(NtHeader);
const int count = NtHeader->FileHeader.NumberOfSections;
int i;
for (i = 0; i < count; ++i, ++Section)
{
if (!strcmp(szSeg, Section->Name))
{
return Section;
}
}
return NULL;
}
static void* FindSegmentStart(const char* szSeg)
{
PIMAGE_SECTION_HEADER Section = FindSection(szSeg);
if (Section)
{
return (void*)(KERNEL_BASE + Section->VirtualAddress);
}
return NULL;
}
static void* FindSegmentEnd(const char* szSeg)
{
PIMAGE_SECTION_HEADER Section = FindSection(szSeg);
if (Section)
{
return (void*)(KERNEL_BASE + Section->VirtualAddress + Section->Misc.VirtualSize);
}
return NULL;
}
#endif // defined(_MSC_VER)
static BOOLEAN IsThisAnNtAsSystem = FALSE;
static MM_SYSTEM_SIZE MmSystemSize = MmSmallSystem;
static MEMORY_AREA* kernel_text_desc = NULL;
static MEMORY_AREA* kernel_init_desc = NULL;
static MEMORY_AREA* kernel_map_desc = NULL;
static MEMORY_AREA* kernel_kpcr_desc = NULL;
static MEMORY_AREA* kernel_data_desc = NULL;
static MEMORY_AREA* kernel_param_desc = NULL;
static MEMORY_AREA* kernel_pool_desc = NULL;
static MEMORY_AREA* kernel_shared_data_desc = NULL;
static MEMORY_AREA* kernel_mapped_low_mem_desc = NULL;
static MEMORY_AREA* MiKernelMapDescriptor = NULL;
static MEMORY_AREA* MiPagedPoolDescriptor = NULL;
PHYSICAL_ADDRESS MmSharedDataPagePhysicalAddress;
PVOID MiNonPagedPoolStart;
ULONG MiNonPagedPoolLength;
PVOID MiKernelMapStart;
ULONG MiKernelMapLength;
/* FUNCTIONS ****************************************************************/
/*
* @implemented
*/
BOOLEAN STDCALL MmIsThisAnNtAsSystem(VOID)
{
return(IsThisAnNtAsSystem);
}
/*
* @implemented
*/
MM_SYSTEM_SIZE STDCALL MmQuerySystemSize(VOID)
{
return(MmSystemSize);
}
VOID MiShutdownMemoryManager(VOID)
{
}
VOID INIT_FUNCTION
MmInitVirtualMemory(ULONG LastKernelAddress,
ULONG KernelLength)
/*
* FUNCTION: Intialize the memory areas list
* ARGUMENTS:
* bp = Pointer to the boot parameters
* kernel_len = Length of the kernel
*/
{
PVOID BaseAddress;
ULONG Length;
ULONG ParamLength = KernelLength;
NTSTATUS Status;
PHYSICAL_ADDRESS BoundaryAddressMultiple;
//ULONG i;
DPRINT("MmInitVirtualMemory(%x, %x)\n",LastKernelAddress, KernelLength);
BoundaryAddressMultiple.QuadPart = 0;
LastKernelAddress = PAGE_ROUND_UP(LastKernelAddress);
MmInitMemoryAreas();
/* Don't change the start of kernel map. Pte's must always exist for this region. */
MiKernelMapStart = (char*)LastKernelAddress + PAGE_SIZE;
MiKernelMapLength = MM_KERNEL_MAP_SIZE;
MiNonPagedPoolStart = (char*)MiKernelMapStart + MiKernelMapLength + PAGE_SIZE;
MiNonPagedPoolLength = MM_NONPAGED_POOL_SIZE;
MmPagedPoolBase = (char*)MiNonPagedPoolStart + MiNonPagedPoolLength + PAGE_SIZE;
MmPagedPoolSize = MM_PAGED_POOL_SIZE;
MiInitKernelMap();
MiInitializeNonPagedPool();
/*
* Setup the system area descriptor list
*/
BaseAddress = (PVOID)0xf0000000;
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
0x400000,
0,
&kernel_map_desc,
FALSE,
FALSE,
BoundaryAddressMultiple);
BaseAddress = (PVOID)KPCR_BASE;
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
PAGE_SIZE * MAXIMUM_PROCESSORS,
0,
&kernel_kpcr_desc,
FALSE,
FALSE,
BoundaryAddressMultiple);
BaseAddress = (PVOID)0xd0000000;
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
0x100000,
0,
&kernel_mapped_low_mem_desc,
FALSE,
FALSE,
BoundaryAddressMultiple);
BaseAddress = (PVOID)KERNEL_BASE;
Length = PAGE_ROUND_UP(((ULONG)FindSegmentEnd(".text"))) - KERNEL_BASE;
ParamLength = ParamLength - Length;
/*
* No need to lock the address space at this point since no
* other threads are running.
*/
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
Length,
0,
&kernel_text_desc,
FALSE,
FALSE,
BoundaryAddressMultiple);
// TODO: Here we REALLY should iterate the PE's sections and set protection
// accordingly for each and every one of them.
// NOTE This code ONLY works because of the assumption that the .text
// segment is the first in the PE, and the .reloc segment is the last.
// Link in a way to make this assumtion false, and the kernel won't work.
BaseAddress = (PVOID)PAGE_ROUND_UP(((ULONG)FindSegmentEnd(".text")));
Length = PAGE_ROUND_UP(((ULONG)FindSegmentStart(".reloc"))) - (ULONG_PTR)BaseAddress;
ParamLength = ParamLength - Length;
DPRINT1("Data Length %x\n",Length);
DPRINT1("Data BaseAddress %x\n",BaseAddress);
/*
* No need to lock the address space at this point since we are
* the only thread running.
*/
// For GCC-compiled, kernel_data_desc contains:
// .data, .edata, .idata, .bss and .rsrc. E.i. all but .text and .reloc
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
Length,
0,
&kernel_data_desc,
FALSE,
FALSE,
BoundaryAddressMultiple);
// BaseAddress = (PVOID)PAGE_ROUND_UP(((ULONG)FindSegmentEnd(".edata")));
BaseAddress = (PVOID)PAGE_ROUND_UP(((ULONG)FindSegmentStart(".reloc")));
Length = LastKernelAddress - (ULONG)BaseAddress;
// For GCC-compiled, kernel_param_desc contains .reloc
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
Length,
0,
&kernel_param_desc,
FALSE,
FALSE,
BoundaryAddressMultiple);
BaseAddress = MiNonPagedPoolStart;
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
MiNonPagedPoolLength,
0,
&kernel_pool_desc,
FALSE,
FALSE,
BoundaryAddressMultiple);
BaseAddress = MiKernelMapStart;
Status = MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
MiKernelMapLength,
0,
&MiKernelMapDescriptor,
FALSE,
FALSE,
BoundaryAddressMultiple);
BaseAddress = MmPagedPoolBase;
Status = MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_PAGED_POOL,
&BaseAddress,
MmPagedPoolSize,
0,
&MiPagedPoolDescriptor,
FALSE,
FALSE,
BoundaryAddressMultiple);
MmInitializePagedPool();
/*
* Create the kernel mapping of the user/kernel shared memory.
*/
BaseAddress = (PVOID)KI_USER_SHARED_DATA;
Length = PAGE_SIZE;
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
Length,
0,
&kernel_shared_data_desc,
FALSE,
FALSE,
BoundaryAddressMultiple);
Status = MmRequestPageMemoryConsumer(MC_NPPOOL, TRUE,
&MmSharedDataPagePhysicalAddress);
Status = MmCreateVirtualMapping(NULL,
(PVOID)KI_USER_SHARED_DATA,
PAGE_READWRITE,
MmSharedDataPagePhysicalAddress,
TRUE);
if (!NT_SUCCESS(Status))
{
DbgPrint("Unable to create virtual mapping\n");
KEBUGCHECK(0);
}
RtlZeroMemory(BaseAddress, Length);
/*
*
*/
MmInitializeMemoryConsumer(MC_USER, MmTrimUserMemory);
}
VOID INIT_FUNCTION
MmInit1(ULONG FirstKrnlPhysAddr,
ULONG LastKrnlPhysAddr,
ULONG LastKernelAddress,
PADDRESS_RANGE BIOSMemoryMap,
ULONG AddressRangeCount,
ULONG MaxMem)
/*
* FUNCTION: Initalize memory managment
*/
{
ULONG i;
ULONG kernel_len;
#ifndef MP
extern unsigned int unmap_me, unmap_me2, unmap_me3;
#endif
DPRINT("MmInit1(FirstKrnlPhysAddr, %x, LastKrnlPhysAddr %x, LastKernelAddress %x)\n",
FirstKrnlPhysAddr,
LastKrnlPhysAddr,
LastKernelAddress);
if ((BIOSMemoryMap != NULL) && (AddressRangeCount > 0))
{
// If we have a bios memory map, recalulate the memory size
ULONG last = 0;
for (i = 0; i < AddressRangeCount; i++)
{
if (BIOSMemoryMap[i].Type == 1
&& (BIOSMemoryMap[i].BaseAddrLow + BIOSMemoryMap[i].LengthLow + PAGE_SIZE -1) / PAGE_SIZE > last)
{
last = (BIOSMemoryMap[i].BaseAddrLow + BIOSMemoryMap[i].LengthLow + PAGE_SIZE -1) / PAGE_SIZE;
}
}
if ((last - 256) * 4 > KeLoaderBlock.MemHigher)
{
KeLoaderBlock.MemHigher = (last - 256) * 4;
}
}
if (KeLoaderBlock.MemHigher >= (MaxMem - 1) * 1024)
{
KeLoaderBlock.MemHigher = (MaxMem - 1) * 1024;
}
/*
* FIXME: Set this based on the system command line
*/
MmSystemRangeStart = (PVOID)KERNEL_BASE; // 0xC0000000
MmUserProbeAddress = (PVOID)0x7fff0000;
MmHighestUserAddress = (PVOID)0x7ffeffff;
MmInitGlobalKernelPageDirectory();
/*
* Initialize memory managment statistics
*/
MmStats.NrTotalPages = 0;
MmStats.NrSystemPages = 0;
MmStats.NrUserPages = 0;
MmStats.NrReservedPages = 0;
MmStats.NrUserPages = 0;
MmStats.NrFreePages = 0;
MmStats.NrLockedPages = 0;
MmStats.PagingRequestsInLastMinute = 0;
MmStats.PagingRequestsInLastFiveMinutes = 0;
MmStats.PagingRequestsInLastFifteenMinutes = 0;
/*
* Initialize the kernel address space
*/
MmInitializeKernelAddressSpace();
/*
* Unmap low memory
*/
#ifndef MP
/* In SMP mode we unmap the low memory in MmInit3.
The APIC needs the mapping of the first pages
while the processors are starting up. */
MmDeletePageTable(NULL, 0);
#endif
/*
* Free all pages not used for kernel memory
* (we assume the kernel occupies a continuous range of physical
* memory)
*/
DPRINT("first krnl %x\nlast krnl %x\n",FirstKrnlPhysAddr,
LastKrnlPhysAddr);
/*
* Free physical memory not used by the kernel
*/
MmStats.NrTotalPages = KeLoaderBlock.MemHigher/4;
if (!MmStats.NrTotalPages)
{
DbgPrint("Memory not detected, default to 8 MB\n");
MmStats.NrTotalPages = 2048;
}
else
{
/* add 1MB for standard memory (not extended) */
MmStats.NrTotalPages += 256;
}
#ifdef BIOS_MEM_FIX
MmStats.NrTotalPages += 16;
#endif
DbgPrint("Used memory %dKb\n", (MmStats.NrTotalPages * PAGE_SIZE) / 1024);
LastKernelAddress = (ULONG)MmInitializePageList((PVOID)FirstKrnlPhysAddr,
(PVOID)LastKrnlPhysAddr,
MmStats.NrTotalPages,
PAGE_ROUND_UP(LastKernelAddress),
BIOSMemoryMap,
AddressRangeCount);
kernel_len = LastKrnlPhysAddr - FirstKrnlPhysAddr;
/*
* Create a trap for null pointer references and protect text
* segment
*/
CHECKPOINT;
#if defined(_MSC_VER)
DPRINT(".text start: %x, .data start: %x\n",
(int)FindSegmentStart(".text"),
(int)FindSegmentStart(".data"));
{
const char* pCode = FindSegmentStart(".text");
const char* pData = FindSegmentEnd(".text");
while (pCode < pData)
{
MmSetPageProtect(NULL, (PVOID)pCode, PAGE_EXECUTE_READ);
pCode += PAGE_SIZE;
}
}
#else
DPRINT("_text_start__ %x _init_end__ %x\n",(int)&_text_start__,(int)&_init_end__);
for (i=PAGE_ROUND_DOWN(((int)&_text_start__));
i<PAGE_ROUND_UP(((int)&_init_end__));i=i+PAGE_SIZE)
{
MmSetPageProtect(NULL,
(PVOID)i,
PAGE_EXECUTE_READ);
}
#endif
DPRINT("Invalidating between %x and %x\n",
LastKernelAddress, 0xc0600000);
for (i=(LastKernelAddress); i<0xc0600000; i+=PAGE_SIZE)
{
MmRawDeleteVirtualMapping((PVOID)(i));
}
DPRINT("Invalidating between %x and %x\n",
0xd0100000, 0xd0400000);
for (i=0xd0100000; i<0xd0400000; i+=PAGE_SIZE)
{
MmRawDeleteVirtualMapping((PVOID)(i));
}
DPRINT("Almost done MmInit()\n");
#ifndef MP
/* FIXME: This is broken in SMP mode */
#if !defined(_MSC_VER) // FIXME: I don't trust using this from MSVC yet!
MmDeleteVirtualMapping(NULL, (PVOID)&unmap_me, TRUE, NULL, NULL);
MmDeleteVirtualMapping(NULL, (PVOID)&unmap_me2, TRUE, NULL, NULL);
MmDeleteVirtualMapping(NULL, (PVOID)&unmap_me3, TRUE, NULL, NULL);
#endif // _MSC_VER
#endif
/*
* Intialize memory areas
*/
MmInitVirtualMemory(LastKernelAddress, kernel_len);
MmInitializeMdlImplementation();
}
VOID INIT_FUNCTION
MmInit2(VOID)
{
MmInitializeRmapList();
MmInitializePageOp();
MmInitSectionImplementation();
MmInitPagingFile();
}
VOID INIT_FUNCTION
MmInit3(VOID)
{
/*
* Unmap low memory
*/
#ifdef MP
/* In SMP mode we can unmap the low memory
if all processors are started. */
MmDeletePageTable(NULL, 0);
#endif
MmInitZeroPageThread();
MmCreatePhysicalMemorySection();
MiInitBalancerThread();
/*
* Initialise the modified page writer.
*/
MmInitMpwThread();
/* FIXME: Read parameters from memory */
}
VOID STATIC
MiFreeInitMemoryPage(PVOID Context, MEMORY_AREA* MemoryArea, PVOID Address,
PHYSICAL_ADDRESS PhysAddr, SWAPENTRY SwapEntry,
BOOLEAN Dirty)
{
assert(SwapEntry == 0);
if (PhysAddr.QuadPart != 0)
{
MmReleasePageMemoryConsumer(MC_NPPOOL, PhysAddr);
}
}
VOID
MiFreeInitMemory(VOID)
{
#if defined(_MSC_VER)
DPRINT1("Can not yet free .init memory for MSVC compiled kernel\n");
#else
MmLockAddressSpace(MmGetKernelAddressSpace());
MmFreeMemoryArea(MmGetKernelAddressSpace(),
(PVOID)&_init_start__,
PAGE_ROUND_UP((ULONG)&_init_end__) - (ULONG)_init_start__,
MiFreeInitMemoryPage,
NULL);
MmUnlockAddressSpace(MmGetKernelAddressSpace());
#endif
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,299 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-26
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: ntoskrnl/ke/i386/vm86_sup.S
* PURPOSE: V86 mode support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
//#include <ntos/service.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
#define EXCEPTION_UNWINDING 0x02
#define EREC_FLAGS 0x04
#define ExceptionContinueExecution 0
#define ExceptionContinueSearch 1
#define ExceptionNestedException 2
#define ExceptionCollidedUnwind 3
//.globl _RtlpExecuteHandlerForException
//.globl _RtlpExecuteHandlerForUnwind
#define CONTEXT_FLAGS 0x00
#define CONTEXT_SEGGS 0x8C
#define CONTEXT_SEGFS 0x90
#define CONTEXT_SEGES 0x94
#define CONTEXT_SEGDS 0x98
#define CONTEXT_EDI 0x9C
#define CONTEXT_ESI 0xA0
#define CONTEXT_EBX 0xA4
#define CONTEXT_EDX 0xA8
#define CONTEXT_ECX 0xAC
#define CONTEXT_EAX 0xB0
#define CONTEXT_EBP 0xB4
#define CONTEXT_EIP 0xB8
#define CONTEXT_SEGCS 0xBC
#define CONTEXT_EFLAGS 0xC0
#define CONTEXT_ESP 0xC4
#define CONTEXT_SEGSS 0xC8
#define RCC_CONTEXT 0x08
VOID STDCALL
AsmDebug(ULONG Value);
// EAX = value to print
__declspec(naked)
void do_debug()
{
__asm
{
pusha
push eax
call AsmDebug
popa
ret
}
}
#define REH_ERECORD 0x08
#define REH_RFRAME 0x0C
#define REH_CONTEXT 0x10
#define REH_DCONTEXT 0x14
#define REH_EROUTINE 0x18
// Parameters:
// None
// Registers:
// [EBP+08h] - PEXCEPTION_RECORD ExceptionRecord
// [EBP+0Ch] - PEXCEPTION_REGISTRATION RegistrationFrame
// [EBP+10h] - PVOID Context
// [EBP+14h] - PVOID DispatcherContext
// [EBP+18h] - PEXCEPTION_HANDLER ExceptionRoutine
// EDX - Address of protecting exception handler
// Returns:
// EXCEPTION_DISPOSITION
// Notes:
// Setup the protecting exception handler and call the exception
// handler in the right context.
__declspec(naked)
void RtlpExecuteHandler()
{
__asm
{
push ebp
mov ebp, esp
push REH_RFRAME[ebp]
push edx
push fs:0x0
mov fs:0x0, esp
// Prepare to call the exception handler
push REH_DCONTEXT[ebp]
push REH_CONTEXT[ebp]
push REH_RFRAME[ebp]
push REH_ERECORD[ebp]
// Now call the exception handler
mov eax, REH_EROUTINE[ebp]
call eax
cmp fs:0x0, -1
jne reh_stack_looks_ok
// This should not happen
push 0
push 0
push 0
push 0
call RtlAssert
reh_loop:
jmp reh_loop
reh_stack_looks_ok:
mov esp, fs:0x0
// Return to the 'front-end' for this function
pop dword ptr fs:0x0
mov esp, ebp
pop ebp
ret
}
}
#if 0
#endif // 0
#define REP_ERECORD 0x04
#define REP_RFRAME 0x08
#define REP_CONTEXT 0x0C
#define REP_DCONTEXT 0x10
// Parameters:
// [ESP+04h] - PEXCEPTION_RECORD ExceptionRecord
// [ESP+08h] - PEXCEPTION_REGISTRATION RegistrationFrame
// [ESP+0Ch] - PCONTEXT Context
// [ESP+10h] - PVOID DispatcherContext
// Registers:
// None
// Returns:
// EXCEPTION_DISPOSITION
// Notes:
// This exception handler protects the exception handling
// mechanism by detecting nested exceptions.
__declspec(naked)
void RtlpExceptionProtector()
{
__asm
{
mov eax, ExceptionContinueSearch
mov ecx, REP_ERECORD[esp]
test EREC_FLAGS[ecx], EXCEPTION_UNWINDING
jnz rep_end
// Unwinding is not taking place, so return ExceptionNestedException
// Set DispatcherContext field to the exception registration for the
// exception handler that executed when a nested exception occurred
mov ecx, REP_DCONTEXT[esp]
mov eax, REP_RFRAME[esp]
mov [ecx], eax
mov eax, ExceptionNestedException
rep_end:
ret
}
}
// Parameters:
// [ESP+04h] - PEXCEPTION_RECORD ExceptionRecord
// [ESP+08h] - PEXCEPTION_REGISTRATION RegistrationFrame
// [ESP+0Ch] - PCONTEXT Context
// [ESP+10h] - PVOID DispatcherContext
// [ESP+14h] - PEXCEPTION_HANDLER ExceptionHandler
// Registers:
// None
// Returns:
// EXCEPTION_DISPOSITION
// Notes:
// Front-end
__declspec(naked)
void RtlpExecuteHandlerForException()
{
__asm
{
mov edx, RtlpExceptionProtector
jmp RtlpExecuteHandler
}
}
#define RUP_ERECORD 0x04
#define RUP_RFRAME 0x08
#define RUP_CONTEXT 0x0C
#define RUP_DCONTEXT 0x10
// Parameters:
// [ESP+04h] - PEXCEPTION_RECORD ExceptionRecord
// [ESP+08h] - PEXCEPTION_REGISTRATION RegistrationFrame
// [ESP+0Ch] - PCONTEXT Context
// [ESP+10h] - PVOID DispatcherContext
// Registers:
// None
// Returns:
// EXCEPTION_DISPOSITION
// Notes:
// This exception handler protects the exception handling
// mechanism by detecting collided unwinds.
__declspec(naked)
void RtlpUnwindProtector()
{
__asm
{
mov eax, ExceptionContinueSearch
mov RUP_ERECORD[esp], ecx
test EREC_FLAGS[ecx], EXCEPTION_UNWINDING
jz rup_end
// Unwinding is taking place, so return ExceptionCollidedUnwind
mov ecx, RUP_RFRAME[esp]
mov edx, RUP_DCONTEXT[esp]
// Set DispatcherContext field to the exception registration for the
// exception handler that executed when a collision occurred
mov eax, RUP_RFRAME[ecx]
mov [edx], eax
mov eax, ExceptionCollidedUnwind
rup_end:
ret
}
}
// Parameters:
// [ESP+04h] - PEXCEPTION_RECORD ExceptionRecord
// [ESP+08h] - PEXCEPTION_REGISTRATION RegistrationFrame
// [ESP+0Ch] - PCONTEXT Context
// [ESP+10h] - PVOID DispatcherContext
// [ESP+14h] - PEXCEPTION_HANDLER ExceptionHandler
// Registers:
// None
// Returns:
// EXCEPTION_DISPOSITION
__declspec(naked)
void RtlpExecuteHandlerForUnwind()
{
__asm mov edx, RtlpUnwindProtector
__asm jmp RtlpExecuteHandler
}

View File

@@ -1,37 +0,0 @@
# $Id: Makefile,v 1.2 2003/01/07 16:23:10 robd Exp $
#
#
PATH_TO_TOP = ../../../reactos
PATH_TO_OS2_TOP = ../..
TARGET_TYPE = program
TARGET_NORC = yes
#TARGET_APPTYPE = console
TARGET_APPTYPE = windows
TARGET_NAME = bepslep
TARGET_CFLAGS = -D__SUBSYSTEM_WINDOWS__
TARGET_LFLAGS = -nostartfiles
TARGET_SDKLIBS = doscalls.a
TARGET_GCCLIBS = stdc++
#TARGET_LIBS = $(PATH_TO_OS2_TOP)/lib/crt0w32.o \
# $(PATH_TO_TOP)/dk/psx/lib/psxdll.a
# $(PATH_TO_OS2_TOP)/dll/doscalls.dll
TARGET_OBJECTS = $(TARGET_NAME).o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -1,20 +0,0 @@
#define INCL_DOSPROCESS
#include "../../include/os2.h"
//#include "../../include/ros2.h"
void Eingang()
{
DosBeep(3000,300);
DosSleep(1000);
DosBeep(4000,200);
DosExit(0,0);
}
void WinMainCRTStartup()
{
int a, b;
a= b+3;
b=a+3;
Eingang();
}

View File

@@ -1,5 +0,0 @@
<group>
<directory name="bepslep">
<xi:include href="bepslep/bepslep.xml" />
</directory>
</group>

View File

@@ -1,340 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

View File

@@ -1,11 +0,0 @@
<group>
<directory name="apps">
<xi:include href="apps/directory.xml" />
</directory>
<directory name="lib">
<xi:include href="lib/directory.xml" />
</directory>
<directory name="server">
<xi:include href="server/os2srv.xml" />
</directory>
</group>

View File

@@ -1,50 +0,0 @@
Win32 and os2ss sight to the system partition
+C < contains under os2ss a autogenerated config.sys
|
+-ROS
+-NATIVE < NTDLL, ntoskrnl, hal.dll, csrss.exe os2.exe psx.exe ...
| +-DRIVERS < *.SYS
| +-CONFIG < registry
+-WIN32
| +-SYSTEM < user32.dll kernel32.dll ...
| +-FONTS
| +...
+-OS2
| +-DLL < doscalls.dll ....
| +-SYSTEM
| +-...
+-PSX
+-etc < mountpoint for posix apps
+-bin
+-dev
+-lib < posix.dll
+-tmp
+-var
+-mnt < empty
posix sight to the system partition
/
+-etc < mountpoint for posix apps
+-bin
+-dev < link to OB-mans Devices
+-lib < posix.dll
+-tmp < alias to systemtemp
+-var
+-mnt
+-C < win32-driveletters
| |
| +-ROS
| +-NATIVE < NTDLL, ntoskrnl, hal.dll, csrss.exe os2.exe psx.exe ...
| | +-DRIVERS < *.SYS
| | +-CONFIG < registry
| +-WIN32
| | +-SYSTEM < user32.dll kernel32.dll ...
| | +-FONTS
| | +...
| +-OS2 <some apps
| | +-DLL < doscalls.dll ....
| | +-SYSTEM
| | +-...
| +-PSX < empty
+-D
+-E...

View File

@@ -1,16 +0,0 @@
Beginning ROS/2-Developement
============================
ROS/2-Developement means building the OS/2 subsystem for ReactOS. In order to start the developement you should have CVS-access. For the CVS-access see the reactos-Homepage.
Setting up a build environment
------------------------------
For the native components (OS2SS.EXE and OS2.EXE) you'll need the same compiler and tools as you need for the rest of ReactOS. If you haven't already set it up, go to the reactos home and see the description there. For now this is the only compiler you need. At some point you'll need a compiler that can generate LX-EXEs. But now also the core dlls and even programs are compiled as PE-win32.
Getting documentation
---------------------
I'm not the inventor of OS/2. IBM still did the work, and they did also good work in terms of documentation. If you plan to do core-dll work, you'll also need NT-Native-API documentation. There exists a book called "The Native API", but there should be a preliminary PDF-file floating around. OS/2-API documentation is available on the CDs belonging to your OS/2-compiler. If you develope under OS/2 you have an INF-viewer on board. If your developementsystem is NT, I recomend you OVIEW (http://hobbes.nmsu.edu/pub/windows/win_inf.zip). This two 'books' should be, what you need.
Contacting me
-------------
Bevore you start, have a talk with me. We don't want to do useless work or do work twice. So write to ros2@dantepark.de

View File

@@ -1,67 +0,0 @@
<html>
<head>
<title>OS/2 subsystem for ReactOS</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<h1><b>OS/2 subsystem for ReactOS (ROS/2)</b></h1>
<h2><font color="#009966">Introduction</font></h2>
<p>The OS/2 subsystem is being developed to enable NT-like systems (like WinNT
and ReactOS) to run 32-Bit OS/2 applications natively. With this it shall provide
binary compatiblility on x86-Based systems. It is intended to port the ROS/2
also to other platforms supported by ReactOS / NT. It is planned to provide
source code compatibility on these platforms. Yeeahh, OS/2 for PowerPC is in
sight.</p>
<h2><font color="#009966">Components</font></h2>
<p>ROS/2 consists of the following components:</p>
<ul>
<li>OS2SS.EXE - A native application that implements the personality of the
OS/2 kernel.</li>
<li>OS2.EXE - A win32 application that does the interaction of the OS/2 apps
with the desktop.</li>
<li>Core DLLs - These DLLs that make OS/2 programs interface with the kernel/sub
system (i.E. DOSCALLS.DLL). </li>
<li>Additional DLLs - DLLs that provide additional APIs for OS/2 apps. This
includes Presentation Manager.</li>
</ul>
<h2><font color="#009966">Current state</font></h2>
<p>Up to now just a fragment of DOSCALLS.DLL exists. The biggest problem are the
os2 API headers which are (C) by IBM. So help is still welcome.</p>
<h2><font color="#009966">16-Bit issues</font></h2>
<p>It is not intended to support 16-bit OS/2 applications. This would make the
system inconsistent and produce much more work that use. But there is still
one issue: Current textmode applications are either 16-bit or use thunking to
call the 16-bit APIs. These 32-Bit thunking applications have to be supported.
We are still thinking how to accomplish that. </p>
<h2><font color="#009966">32-Bit issues</font></h2>
<p>It is planned to replace the current MOU- KBD- MSG- and VIO- subsystems with
the <a href="http://homepages.tesco.net/%7EJ.deBoynePollard/Softwares/conapi.html">Unicode
Console API</a>. This is also the foundation for other platforms we want to
provide source code compatibility with. So nearly every 32-Bit processor can
be supported. It sould even be possible to implement a 64-bit OS/2 API.</p>
<h2><font color="#009966">Architecture</font></h2>
<p>To understand the architecture of ReactOS or WinNT read a book from the &quot;Inside
Windows NT&quot;-series. The architecture of ROS/2 is like every normal subsystem.
When OS2SS.EXE starts, it creates an object directory named os2 and therein
it creates a port object with the name Os2API. A port is something like a socket.
Two programs can comunicate with each other via a port. The port Os2API provides
the LPC API of the OS2SS.EXE - the actual subsystem. <br>
Every OS/2 program that is loaded, is linked with DOSCALLS.DLL and NTDLL.DLL
- the interface to the NT-kernel. Since DOSCALLS is implemented using NTDLL.DLL,
every OS/2 app has it in its adress space. Many functions in DOSCALLS.DLL are
implemented by just wrapping NTDLL.DLL functions. Some functions however need
assistance by the subsystem. For this reason the app makes an LPC to OS2SS.EXE.
LPC means local procedure call and it is a very fast version of RPC. Together
with the first application also OS2.EXE starts up. OS2.EXE runs in the win32
subsystem with the security of the current user. OS2.EXE is used to gather keyboard
and mouse input and to show console windows and PM-windows of all OS/2 programms
of the current user. In order to accomplish this OS2.EXE creates a port object
in the os2 object directory named Os2Interact. OS/2 applications have a connection
to OS2.EXE, too. OS2SS.EXE and OS2.EXE also talk to each other. An OS/2 application
then makes LPCs either to OS2.EXE directly or if required via OS2SS.EXE.</p>
<p>Details</p>
<p>&nbsp;</p>
<p>LPC Documentation</p>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -1,91 +0,0 @@
/* $ $
*/
/*
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS OS/2 sub system
* FILE: dll/doscalls.c
* PURPOSE: supportheader for Kernelservices.
* Use this file if your dll or application
* is going to use both, the os2 base services
* as well as the native API of NTDLL.DLL
* PROGRAMMER: Robert K. nonvolatil@yahoo.de
* REVISION HISTORY:
* 1-08-2002 Created
*/
/* How to use:
History got us another time. If you want to write a module
that uses either native-api or os2-services...no problem.
But if you want to use both of them you run into type conflicts.
BOOL is not very surprising. But there are many other types
whose names are equal. This results from the fact that NT
should originally become OS/2 3.0.
So your solution lies in including this file instead of os2.h
and ntddk.h. What this file here does is, it puts the os2-types+
functions into the namespace OS2 while the nt-types+functions are
put into the namespace NT. The still conflicting #defines are handled
like this: If ntddk.h defintes a symbol FOO and os2.h does the same,
this file here undefines the ntddk.h-one and renames it to NT_FOO.
This is only done for conflicting symbols. Of course, this list is a
source for errors. But is there a better solution than renaming
all of the symbols?
*/
#ifndef __ROS2_H__
#define __ROS2_H__
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
namespace NT
{
#include <ddk/ntddk.h>
#include <napi/types.h>
}
/* rename all the symbols */
#define NT_FILE_CREATE FILE_CREATE
#undef FILE_CREATE
#define NT_CREATE_SUSPENDED CREATE_SUSPENDED
#undef CREATE_SUSPENDED
namespace OS2
{
#include "os2.h"
}
using namespace OS2;
APIRET STDCALL Dos32Open(PSZ pszFileName, PHFILE pHf,
PULONG pulAction, ULONG cbFile,
ULONG ulAttribute, ULONG fsOpenFlags,
ULONG fsOpenMode, PVOID reserved ); //ULONGPEAOP2 peaop2)
APIRET STDCALL Dos32Close(HFILE hFile);
APIRET STDCALL Dos32Read(HFILE hFile, PVOID pBuffer,
ULONG cbRead, PULONG pcbActual);
APIRET STDCALL Dos32Write(HFILE hFile, PVOID pBuffer,
ULONG cbWrite, PULONG pcbActual);
ULONG STDCALL DosSleep (ULONG ulInterval);
ULONG STDCALL DosBeep (ULONG ulFrequency, ULONG ulDuration);
VOID STDCALL DosExit (ULONG ulAction, ULONG ulResult);
//ULONG STDCALL DosDevIOCtl (HFILE hDevice, ULONG ulCategory, ULONG ulFunction,
// PVOID pParams, ULONG ulParamsLengthMax, PULONG pulParamsLength,
// PVOID pData, ULONG ulDataLengthMax, PULONG pulDataLength);
typedef ULONG foo_TID;
typedef foo_TID* foo_PTID;
typedef void (*foo_PFNTHREAD)(ULONG ulThreadArg);
ULONG STDCALL DosCreateThread (foo_PTID ptidThreadID, foo_PFNTHREAD pfnThreadAddr,
ULONG ulThreadArg, ULONG ulFlags, ULONG ulStackSize);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __ROS2_H__ */

View File

@@ -1,20 +0,0 @@
@echo off
if "%1" == "" goto NoParameter
set ROS_INSTALL=%1
goto Install
:NoParameter
set ROS_INSTALL=c:\reactos
:Install
echo Installing to %ROS_INSTALL%
@echo off
md %ROS_INSTALL%
md %ROS_INSTALL%\bin
md %ROS_INSTALL%\symbols
md %ROS_INSTALL%\system32
copy ..\os2\apps\bepslep\bepslep.exe %ROS_INSTALL%\bin
copy ..\os2\lib\doscalls\doscalls.dll %ROS_INSTALL%\system32
copy ..\os2\lib\doscalls\doscalls.sym %ROS_INSTALL%\symbols
copy ..\os2\server\os2ss.exe %ROS_INSTALL%\system32
copy ..\os2\server\os2ss.sym %ROS_INSTALL%\symbols

View File

@@ -1,5 +0,0 @@
<group>
<directory name="doscalls">
<xi:include href="doscalls/doscalls.xml" />
</directory>
</group>

View File

@@ -1,65 +0,0 @@
/* $Id$
*/
/*
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS OS/2 sub system
* PART: doscalls.dll
* FILE: devices.cpp
* CONTAINS: device io ctl main function.
* PURPOSE: Kernelservices for OS/2 apps
* PROGRAMMER: Robert K. nonvolatil@yahoo.de
* REVISION HISTORY:
* 13-03-2002 Created
* 25-07-2002 Work to make it compile
* 10-11-2002 Done som little things
*/
#define INCL_DOSDEVICES
#define INCL_DOSERRORS
#include "ros2.h"
/*******************************************/
/* DosDevIOCtl performs control functions */
/* on a device specified by an opened */
/* device handle. */
/*******************************************/
/*HFILE hDevice; Device handle returned by DosOpen, or a standard (open) device handle. */
/*ULONG category; Device category. */
/*ULONG function; Device-specific function code. */
/*PVOID pParams; Address of the command-specific argument list. */
/*ULONG cbParmLenMax; Length, in bytes, of pParams. */
/*PULONG pcbParmLen; Pointer to the length of parameters. */
/*PVOID pData; Address of the data area. */
/*ULONG cbDataLenMax; Length, in bytes, of pData. */
/*PULONG pcbDataLen; Pointer to the length of data. */
/*APIRET ulrc; Return Code.
ulrc (APIRET) - returns
Return Code.
DosDevIOCtl returns one of the following values:
0 NO_ERROR
1 ERROR_INVALID_FUNCTION
6 ERROR_INVALID_HANDLE
15 ERROR_INVALID_DRIVE
31 ERROR_GEN_FAILURE
87 ERROR_INVALID_PARAMETER
111 ERROR_BUFFER_OVERFLOW
115 ERROR_PROTECTION_VIOLATION
117 ERROR_INVALID_CATEGORY
119 ERROR_BAD_DRIVER_LEVEL
163 ERROR_UNCERTAIN_MEDIA
165 ERROR_MONITORS_NOT_SUPPORTED
*/
APIRET STDCALL DosDevIOCtl(HFILE hDevice, ULONG category, ULONG function,
PVOID pParams,ULONG cbParmLenMax,PULONG pcbParmLen,
PVOID pData,ULONG cbDataLenMax,PULONG pcbDataLen)
{
return ERROR_CALL_NOT_IMPLEMENTED;
}
/* EOF */

View File

@@ -1,97 +0,0 @@
/* $Id: ioctl_async.cpp,v 1.2 2004/01/31 01:29:11 robertk Exp $
*/
/*
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS OS/2 sub system
* PART: doscalls.dll
* FILE: ipctl_async.cpp
* PURPOSE: This file is to be directly included into devices.cpp
* CONTAINS: implementation of the category 1 (async I/O)
* ioctl functioncodes.
* PROGRAMMER: Robert K. nonvolatil@yahoo.de
* REVISION HISTORY:
* 10-11-2002 Created
*/
/* This function implements the async ioctls. It
is called from the real DosIOCtl function. This
function implies that it is only called, if the
cathegory was 0x01.
All other parameters are the same as DosIoCtl.
FIXME: implement me
*/
APIRET EvaluateAsyncIoCtl( HFILE hDevice, ULONG function,
PVOID pParams, ULONG cbParmLenMax, PULONG pcbParmLen,
PVOID pData, ULONG cbDataLenMax, PULONG pcbDataLen)
{
switch( function )
{
case 0x41: //ASYNC_SETBAUDRATE
//+------------------------------------+
//|Field Length C Datatype |
//|------------------------------------|
//|Bit Rate WORD USHORT |
//+------------------------------------+
break;
case 0x42: // Set Line Characteristics (stop, parity, data bits)
return ERROR_INVALID_PARAMETER; // example
break;
case 0x43: // Extended Set Bit Rate .
break;
case 0x44: // Transmit Byte Immediate .
break;
case 0x45: // Set Break OFF .
break;
case 0x46: // Set Modem Control Signals .
break;
case 0x47: // Behave as if XOFF Received (stop transmit) .
break;
case 0x48: // Behave as if XON Received (start transmit) .
break;
case 0x49: // Reserved .
break;
case 0x53: // Set Device Control Block (DCB) Parameters .
break;
case 0x54: // Set Enhanced Mode Parameters .
break;
case 0x61: // Query Current Bit Rate .
break;
case 0x62: // Query Line Characteristics .
break;
case 0x63: // Extended Query Bit Rate .
break;
case 0x64: // Query COM Status .
break;
case 0x65: // Query Transmit Data Status .
break;
case 0x66: // Query Modem Control Output Signals .
break;
case 0x67: // Query Current Modem Input Signals .
break;
case 0x68: // Query Number of Characters in Receive Queue .
break;
case 0x69: // Query Number of Characters in Transmit Queue .
break;
case 0x72: // Query COM Event Information .
break;
case 0x73: // Query Device Control Block (DCB) Parameters .
break;
case 0x74: // Query Enhanced Mode Parameters .
break;
default:
return ERROR_INVALID_FUNCTION;
break;
}
return ERROR_INVALID_FUNCTION;
}
/* EOF */

View File

@@ -1,35 +0,0 @@
; $Id: doscalls.def,v 1.6 2004/01/31 01:29:11 robertk Exp $
;
; Def for doscalls.dll - part of the OS/2-sub system
; for ReactOS. Provides Access to OS/2 kernel services.
LIBRARY doscalls.dll
DESCRIPTION "Part of the ReactOS OS/2 sub system, provides base kernel services to OS/2-apps"
EXPORTS
; FIXME: fill in all exports
<<<<<<< doscalls.def
DosSleep
DosClose
DosOpen
DosRead
DosWrite
DosDevIOCtl
DosBeep
DosExit
DosCreateThread
=======
DosSleep
Dos32Close
Dos32Open
Dos32Read
Dos32Write
;DosDevIOCtl
DosBeep
DosExit
DosCreateThread
>>>>>>> 1.5
; EOF

View File

@@ -1,23 +0,0 @@
; $Id: doscalls.def.bak,v 1.1 2002/09/04 22:19:47 robertk Exp $
;
; Def for doscalls.dll - part of the OS/2-sub system
; for ReactOS. Provides Access to OS/2 kernel services.
LIBRARY doscalls.dll
DESCRIPTION "Part of the ReactOS OS/2 sub system, provides base kernel services to OS/2-apps"
EXPORTS
; FIXME: fill in all exports
Dos32Sleep@4 @229
Dos32Close@4 @257
Dos32Open@32 @273
Dos32Read@16 @281
Dos32Write@16 @282
Dos32DevIOCtl@36 @284
Dos32Beep@8 @286
Dos32Exit@8 @234
Dos32CreateThread@20 @311
; EOF

View File

@@ -1,35 +0,0 @@
; $Id: doscalls.edf,v 1.4 2004/01/31 01:29:11 robertk Exp $
;
; Def for doscalls.dll - part of the OS/2-sub system
; for ReactOS. Provides Access to OS/2 kernel services.
LIBRARY doscalls.dll
DESCRIPTION "Part of the ReactOS OS/2 sub system, provides base kernel services to OS/2-apps"
EXPORTS
; FIXME: fill in all exports
<<<<<<< doscalls.edf
DosSleep=DosSleep
DosClose=DosClose
DosOpen=DosOpen
DosRead=DosRead
DosWrite=DosWrite
DosDevIOCtl=DosDevIOCtl
DosBeep=DosBeep
DosExit=DosExit
DosCreateThread=DosCreateThread
=======
DosSleep=DosSleep@4 @229
Dos32Close=Dos32Close@4 @257
Dos32Open=Dos32Open@32 @273
Dos32Read=Dos32Read@16 @281
Dos32Write=Dos32Write@16 @282
;DosDevIOCtl=DosDevIOCtl@36 @284
DosBeep=DosBeep@8 @286
DosExit=DosExit@8 @234
DosCreateThread=DosCreateThread@20 @311
>>>>>>> 1.3
; EOF

View File

@@ -1,4 +0,0 @@
#define REACTOS_STR_FILE_DESCRIPTION "ReactOS-OS/2 subsystem base services\0"
#define REACTOS_STR_INTERNAL_NAME "doscalls\0"
#define REACTOS_STR_ORIGINAL_FILENAME "doscalls.dll\0"
#include <reactos/version.rc>

View File

@@ -1,23 +0,0 @@
<module name="doscalls" type="nativedll">
<importlibrary definition="doscalls.def" />
<include base="doscalls">../../include</include>
<linkerflag>-lgcc</linkerflag>
<directory name="devices">
<file>devices.cpp</file>
<file>ioctl_async.cpp</file>
</directory>
<directory name="file">
<file>directory.cpp</file>
<file>openclose.cpp</file>
</directory>
<directory name="memory">
<file>memory.cpp</file>
</directory>
<directory name="misc">
<file>doscalls.cpp</file>
<file>error.cpp</file>
</directory>
<directory name="run">
<file>process.cpp</file>
</directory>
</module>

View File

@@ -1,179 +0,0 @@
/* $Id$
*/
/*
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS OS/2 sub system
* PART: doscalls.dll
* FILE: directory.cpp
* PURPOSE: Kernelservices for OS/2 apps
* CONTAINS: Directory related CP-functions.
* PROGRAMMER: Robert K. nonvolatil@yahoo.de
* REVISION HISTORY:
* 10-11-2002 Created
*/
#define INCL_DOSFILEMGR
#define INCL_DOSERRORS
#include "ros2.h"
/******************************************
DosDelete removes a file name from a
directory. The deleted file may be
recoverable.
pszFile (PSZ) - input
Address of the name of the file to be deleted.
ulrc (APIRET) - returns
Return Code.
DosDelete returns one of the following values:
0 NO_ERROR
2 ERROR_FILE_NOT_FOUND
3 ERROR_PATH_NOT_FOUND
5 ERROR_ACCESS_DENIED
26 ERROR_NOT_DOS_DISK
32 ERROR_SHARING_VIOLATION
36 ERROR_SHARING_BUFFER_EXCEEDED
87 ERROR_INVALID_PARAMETER
206 ERROR_FILENAME_EXCED_RANGE
*******************************************/
APIRET DosDelete(PSZ pszFile)
{
return ERROR_CALL_NOT_IMPLEMENTED;
}
/******************************************
DosDeleteDir removes a subdirectory
from the specified disk.
pszDir (PSZ) - input
Address of the fully qualified path name of the subdirectory to be removed.
ulrc (APIRET) - returns
Return Code.
DosDeleteDir returns one of the following values:
0 NO_ERROR
2 ERROR_FILE_NOT_FOUND
3 ERROR_PATH_NOT_FOUND
5 ERROR_ACCESS_DENIED
16 ERROR_CURRENT_DIRECTORY
26 ERROR_NOT_DOS_DISK
87 ERROR_INVALID_PARAMETER
108 ERROR_DRIVE_LOCKED
206 ERROR_FILENAME_EXCED_RANGE
******************************************/
APIRET DosDeleteDir(PSZ pszDir)
{
return ERROR_CALL_NOT_IMPLEMENTED;
}
/*******************************************
DosCopy copies the source file or
subdirectory to the destination file or
subdirectory.
pszOld (PSZ) - input
Address of the ASCIIZ path name of the source file,
subdirectory, or character device.
Global file-name characters are not allowed.
pszNew (PSZ) - input
Address of the ASCIIZ path name of the target file,
subdirectory, or character device.
Global file-name characters are not allowed.
option (ULONG) - input
ULONG bit flags that define how the DosCopy
function is done.
Bit Description
31-3 Reserved. These bits must be set to
zero.
2 DCPY_FAILEAS (0x00000004)
Discard the EAs if the source file
contains EAs and the destination file
system does not support EAs.
0 Discard the EAs (extended attributes) if
the destination file system does not
support EAs.
1 Fail the copy if the destination file
system does not support EAs.
1 DCPY_APPEND (x00000002)
Append the source file to the target
file's end of data.
0 Replace the target file with the source
file.
1 Append the source file to the target file's
end of data.
This is ignored when copying a
directory, or if the target file does not
exist.
0 DCPY_EXISTING (0x00000001)
Existing Target File Disposition.
0 Do not copy the source file to the target
if the file name already exists within the
target directory. If a single file is being
copied and the target already exists, an
error is returned.
1 Copy the source file to the target even if
the file name already exists within the
target directory.
Bit flag DCPY_FAILEAS can be used in
combination with bit flag DCPY_APPEND or
DCPY_EXISTING.
ulrc (APIRET) - returns
Return Code.
DosCopy returns one of the following values:
0 NO_ERROR
2 ERROR_FILE_NOT_FOUND
3 ERROR_PATH_NOT_FOUND
5 ERROR_ACCESS_DENIED
26 ERROR_NOT_DOS_DISK
32 ERROR_SHARING_VIOLATION
36 ERROR_SHARING_BUFFER_EXCEEDED
87 ERROR_INVALID_PARAMETER
108 ERROR_DRIVE_LOCKED
112 ERROR_DISK_FULL
206 ERROR_FILENAME_EXCED_RANGE
267 ERROR_DIRECTORY
282 ERROR_EAS_NOT_SUPPORTED
283 ERROR_NEED_EAS_FOUND
*******************************************/
APIRET DosCopy(PSZ pszOld,PSZ pszNew, ULONG option)
{
return ERROR_CALL_NOT_IMPLEMENTED;
}
/* EOF */

View File

@@ -1,199 +0,0 @@
/* $Id$
*/
/*
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS OS/2 sub system
* PART: doscalls.dll
* FILE: openclose.cpp
* PURPOSE: Kernelservices for OS/2 apps
* CONTAINS: Open close write and handle related stuff.
* PROGRAMMER: Robert K. nonvolatil@yahoo.de
* REVISION HISTORY:
* 13-03-2002 Created
* 25-07-2002 Work to make it compile
*/
#define INCL_DOSFILEMGR
#define INCL_DOSERRORS
#include "ros2.h"
<<<<<<< openclose.cpp
APIRET STDCALL DosOpen(PSZ pszFileName, PHFILE pHf,
=======
APIRET STDCALL Dos32Open(PSZ pszFileName, PHFILE pHf,
>>>>>>> 1.4
PULONG pulAction, ULONG cbFile,
ULONG ulAttribute, ULONG fsOpenFlags,
ULONG fsOpenMode, PVOID reserved ) //ULONGPEAOP2 peaop2)
{
/* NTAPI
ZwCreateFile(
OUT PHANDLE FileHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
OUT PIO_STATUS_BLOCK IoStatusBlock,
IN PLARGE_INTEGER AllocationSize OPTIONAL,
IN ULONG FileAttributes,
IN ULONG ShareAccess,
IN ULONG CreateDisposition,
IN ULONG CreateOptions,
IN PVOID EaBuffer OPTIONAL,
IN ULONG EaLength
);*/
/*
OBJECT_ATTRIBUTES ObjectAttributes;
IO_STATUS_BLOCK IoStatusBlock;
UNICODE_STRING NtPathU;
HANDLE FileHandle;
NTSTATUS Status;
ULONG Flags = 0;
switch (dwCreationDisposition)
{
case CREATE_NEW:
dwCreationDisposition = FILE_CREATE;
break;
case CREATE_ALWAYS:
dwCreationDisposition = FILE_OVERWRITE_IF;
break;
case OPEN_EXISTING:
dwCreationDisposition = FILE_OPEN;
break;
case OPEN_ALWAYS:
dwCreationDisposition = OPEN_ALWAYS;
break;
case TRUNCATE_EXISTING:
dwCreationDisposition = FILE_OVERWRITE;
}
DPRINT("CreateFileW(lpFileName %S)\n",lpFileName);
if (dwDesiredAccess & GENERIC_READ)
dwDesiredAccess |= FILE_GENERIC_READ;
if (dwDesiredAccess & GENERIC_WRITE)
dwDesiredAccess |= FILE_GENERIC_WRITE;
if (!(dwFlagsAndAttributes & FILE_FLAG_OVERLAPPED))
{
Flags |= FILE_SYNCHRONOUS_IO_ALERT;
}
if (!RtlDosPathNameToNtPathName_U ((LPWSTR)lpFileName,
&NtPathU,
NULL,
NULL))
return INVALID_HANDLE_VALUE;
DPRINT("NtPathU \'%S\'\n", NtPathU.Buffer);
ObjectAttributes.Length = sizeof(OBJECT_ATTRIBUTES);
ObjectAttributes.RootDirectory = NULL;
ObjectAttributes.ObjectName = &NtPathU;
ObjectAttributes.Attributes = OBJ_CASE_INSENSITIVE;
ObjectAttributes.SecurityDescriptor = NULL;
ObjectAttributes.SecurityQualityOfService = NULL;
Status = NtCreateFile (&FileHandle,
dwDesiredAccess,
&ObjectAttributes,
&IoStatusBlock,
NULL,
dwFlagsAndAttributes,
dwShareMode,
dwCreationDisposition,
Flags,
NULL,
0);
if (!NT_SUCCESS(Status))
{
SetLastErrorByStatus (Status);
return INVALID_HANDLE_VALUE;
}
return FileHandle;*/
return ERROR_CALL_NOT_IMPLEMENTED;
}
/* close a Handle. seems finished */
APIRET STDCALL DosClose(HFILE hFile)
{
NT::NTSTATUS nErrCode;
nErrCode = NT::ZwClose( (NT::HANDLE)hFile );
switch( nErrCode )
{
/*
case STATUS_SUCCESS:
return NO_ERROR;
case STATUS_INVALID_HANDLE:
return ERROR_INVALID_HANDLE;
case STATUS_HANDLE_NOT_CLOSABLE:
return ERROR_FILE_NOT_FOUND;
*/
}
return nErrCode;
}
APIRET STDCALL DosRead(HFILE hFile, PVOID pBuffer,
ULONG cbRead, PULONG pcbActual)
{
NT::NTSTATUS nErrCode;
NT::IO_STATUS_BLOCK isbStatus;
// read data from file
nErrCode = NT::ZwReadFile( (NT::HANDLE)hFile, NULL, NULL, NULL,
&isbStatus, pBuffer, cbRead,
NULL, NULL );
// contains the # bytes actually read.
*pcbActual = isbStatus.Information;
switch(nErrCode)
{
/*
case STATUS_INVALID_HANDLE:
return ERROR_INVALID_HANDLE;
// FIXME: complete this
*/
}
return NO_ERROR;
}
/* Generic write to a stream given by hFile */
APIRET STDCALL DosWrite(HFILE hFile, PVOID pBuffer,
ULONG cbWrite, PULONG pcbActual)
{
NT::NTSTATUS nErrCode;
NT::IO_STATUS_BLOCK StatusBlk;
nErrCode = NtWriteFile( (NT::HANDLE)hFile, NULL, NULL, NULL,
&StatusBlk, pBuffer, cbWrite, 0, NULL );
// FIXME *pcbActual = StatusBlk.Information;
// do an errorcode translation FIXME: correct
return ERROR_CALL_NOT_IMPLEMENTED;
switch(nErrCode)
{
/*
case STATUS_SUCCESS:
case STATUS_PENDING:
case STATUS_ACCESS_DENIED:
case STATUS_INVALID_HANDLE:
case STATUS_FILE_LOCK_CONFLICT:
return 0;
*/
}
return 0;
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,61 +0,0 @@
# $Id: makefile,v 1.7 2004/01/31 01:29:11 robertk Exp $
PATH_TO_TOP = ../../../reactos
PATH_TO_OS2_TOP = ../..
TARGET_TYPE = dynlink
#TARGET_DEFONLY = yes
TARGET_NAME = doscalls
TARGET_BASE = 0x68E00000
TARGET_CPPFLAGS =\
-Wall \
-I$(PATH_TO_OS2_TOP)/include \
-D__DOSCALLSDLL__
# removed CFLAGX
# -fno-builtin \
# -nostdinc \
# -nostdlib \
TARGET_ENTRY = _DllMain@12
TARGET_LFLAGS = -nostartfiles
TARGET_LIBS = doscalls.a
TARGET_SDKLIBS = ntdll.a
TARGET_GCCLIBS = stdc++
TARGET_OBJECTS = $(TARGET_NAME).o
MISC_OBJECTS = misc/doscalls.o misc/error.o
FILE_OBJECTS = file/openclose.o
RUN_OBJECTS = run/process.o
DEVICES_OBJECTS = devices/devices.o
OTHER_OBJECTS =
SYNC_OBJECTS =
TARGET_OBJECTS = $(FILE_OBJECTS) $(RUN_OBJECTS) $(DEVICES_OBJECTS) \
$(MISC_OBJECTS) $(OTHER_OBJECTS) $(SYNC_OBJECTS)
#TARGET_CLEAN = file/*.o vio/*.o sync/*.o mem/*.o \
# misc/*.o mou/*.o kbd/*.o run/*.o \
# doscalls.dll temp.exp
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -1,40 +0,0 @@
// TODO: HEader: To be pasted
// INCL_DOSMEMMGR || !INCL_NOCOMMON
#define INCL_DOSMEMMGR
#undefine INCL_NOCOMMON
#include <os2.h>
// TODO: Expain that this is for memory alloc/free funcs of Os2 api
// TODO: Implement functions and give them bodies
ULONG DosAllocMem (PPVOID pBaseAddress, ULONG ulObjectSize,
ULONG ulAllocationFlags);
ULONG DosAllocSharedMem (PPVOID pBaseAddress, PCSZ pszName,
ULONG ulObjectSize, ULONG ulAllocationFlags);
ULONG DosFreeMem (PVOID pBaseAddress);
ULONG DosGetNamedSharedMem (PPVOID pBaseAddress, PCSZ pszSharedMemName,
ULONG ulAttributeFlags);
ULONG DosGetSharedMem (CPVOID pBaseAddress, ULONG ulAttributeFlags);
ULONG DosGiveSharedMem (CPVOID pBaseAddress, PID idProcessId,
ULONG ulAttributeFlags);
ULONG DosQueryMem (CPVOID pBaseAddress, PULONG pulRegionSize,
PULONG pulAllocationFlags);
ULONG DosSetMem (CPVOID pBaseAddress, ULONG ulRegionSize,
ULONG ulAttributeFlags);
ULONG DosSubAllocMem (PVOID pOffset, PPVOID pBlockOffset, ULONG ulSize);
ULONG DosSubFreeMem (PVOID pOffset, PVOID pBlockOffset, ULONG ulSize);
ULONG DosSubSetMem (PVOID pOffset, ULONG ulFlags, ULONG ulSize);
ULONG DosSubUnsetMem (PVOID pOffset);
// TODO: Add file to makefile

View File

@@ -1,33 +0,0 @@
/* $Id$
*/
/*
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS OS/2 sub system
* FILE: dll/doscalls.c
* PURPOSE: Kernelservices for OS/2 apps
* PROGRAMMER: Robert K. nonvolatil@yahoo.de
* REVISION HISTORY:
* 13-03-2002 Created
*/
// here's only the NTDLL needet
#include <ddk/ntddk.h>
BOOL STDCALL DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved )
{
switch (ul_reason_for_call)
{
case 1://DLL_PROCESS_ATTACH:
case 2://DLL_THREAD_ATTACH:
case 3://DLL_THREAD_DETACH:
case 0://DLL_PROCESS_DETACH:
break;
}
return TRUE;
}

View File

@@ -1,165 +0,0 @@
/* $Id$
*/
/*
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS OS/2 sub system
* PART: doscalls.dll
* FILE: error.cpp
* CONTAINS: Error related CP-functions.
* PURPOSE: Kernelservices for OS/2 apps
* PROGRAMMER: Robert K. nonvolatil@yahoo.de
* REVISION HISTORY:
* 13-03-2002 Created
* 25-07-2002 Work to make it compile
*/
#define INCL_DOSPROCESS
#define INCL_DOSERRORS
#include "ros2.h"
// we need the extra definitions of this file
namespace NT {
#include <ddk/ntddbeep.h>
}
/*******************************************
DosBeep generates sound from the
speaker.
freq (ULONG) - input
Cycles per second (Hertz) in the range of 0x25 to
0x7FFF.
dur (ULONG) - input
The length of the sound in milliseconds.
ulrc (APIRET) - returns
Return Code.
DosBeep returns one of the following values:
0 NO_ERROR
395 ERROR_INVALID_FREQUENCY
*******************************************/
APIRET STDCALL DosBeep(ULONG freq, ULONG dur)
{
NT::BEEP_SET_PARAMETERS BeepSetParameters;
NT::HANDLE hBeep;
NT::IO_STATUS_BLOCK ComplStatus;
NT::UNICODE_STRING unistr;
NT::NTSTATUS stat;
NT::OBJECT_ATTRIBUTES oa = {sizeof oa, 0, &unistr, NT::OBJ_CASE_INSENSITIVE, 0, 0};
// init String still bevore use.
NT::RtlInitUnicodeString( &unistr, (NT::PWSTR)L"\\\\.\\Beep" );
if( freq<0x25 || freq>0x7FFF )
return ERROR_INVALID_FREQUENCY; //395; //
/* Set beep data */
BeepSetParameters.Frequency = freq;
BeepSetParameters.Duration = dur;
/* open the beep dirver */
stat = NT::ZwOpenFile( &hBeep,
FILE_READ_DATA | FILE_WRITE_DATA,
&oa,
&ComplStatus,
0, // no sharing
FILE_OPEN );
if ( stat<0 )
{
return ERROR_NOT_READY;
}
/* actually beep */
NT::ZwDeviceIoControlFile(hBeep, 0, // Event
0, // APC-routine
0, // UserAPCContext
&ComplStatus, IOCTL_BEEP_SET,
&BeepSetParameters,
sizeof(NT::BEEP_SET_PARAMETERS),
NULL,
0 );
NT::ZwClose(hBeep);
return NO_ERROR;
}
/******************************************
DosError disables or enables error
notification to end users.
error (ULONG) - input
Error and Exception pop-up flags.
The unused high-order bits are reserved, and must be zero. The following values can be specified
for this parameter. They can be combined using the "logical or" ( | ) operator.
FERR_DISABLEHARDERR (0x00000000)
Disable hard error pop-ups.
FERR_ENABLEHARDERR (0x00000001)
Enable hard error pop-ups.
FERR_ENABLEEXCEPTION (0x00000000)
Enable program exception and untrapped numeric-processor exception pop-ups.
FERR_DISABLEEXCEPTION (0x00000002)
Disable program exception and untrapped numeric-processor exception pop-ups.
ulrc (APIRET) - returns
Return Code.
DosError returns one of the following values:
0 NO_ERROR
87 ERROR_INVALID_PARAMETER
*******************************************/
APIRET DosError( ULONG error)
{
return ERROR_CALL_NOT_IMPLEMENTED;
}
/*******************************************
DosMove moves a file object to another
location, and changes its name.
pszOld (PSZ) - input
Address of the old path name of the file or
subdirectory to be moved.
pszNew (PSZ) - input
Address of the new path name of the file or
subdirectory.
ulrc (APIRET) - returns
Return Code.
DosMove returns the one of following values:
0 NO_ERROR
2 ERROR_FILE_NOT_FOUND
3 ERROR_PATH_NOT_FOUND
5 ERROR_ACCESS_DENIED
17 ERROR_NOT_SAME_DEVICE
26 ERROR_NOT_DOS_DISK
32 ERROR_SHARING_VIOLATION
36 ERROR_SHARING_BUFFER_EXCEEDED
87 ERROR_INVALID_PARAMETER
108 ERROR_DRIVE_LOCKED
206 ERROR_FILENAME_EXCED_RANGE
250 ERROR_CIRCULARITY_REQUESTED
251 ERROR_DIRECTORY_IN_CDS
*******************************************/
APIRET DosMove(PSZ pszOld, PSZ pszNew)
{
return ERROR_CALL_NOT_IMPLEMENTED;
}
/* EOF */

View File

@@ -1,58 +0,0 @@
/* $Id$
*/
/*
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS OS/2 sub system
* PART: doscalls.dll
* FILE: process.cpp
* CONTAINS: process and thread related CP-functions.
* PURPOSE: Kernelservices for OS/2 apps
* PROGRAMMER: Robert K. nonvolatil@yahoo.de
* REVISION HISTORY:
* 13-03-2002 Created
* 25-07-2002 Work to make it compile
*/
//#if defined (INCL_DOS)
#define INCL_DOSPROCESS
#define INCL_DOSERRORS
#include "ros2.h"
APIRET STDCALL DosSleep(ULONG msec)
{
NT::NTSTATUS stat;
NT::TIME Interv;
Interv.QuadPart= -(10000 * msec);
stat = NT::NtDelayExecution( TRUE, &Interv );
return 0;
}
/* $Id$ */
/* Terminates the current thread or the current Process.
Decission is made by action
FIXME: move this code to OS2.EXE */
VOID APIENTRY DosExit(ULONG action, ULONG result)
{
// decide what to do
if( action == EXIT_THREAD)
{
NT::NtTerminateThread( NULL, result );
}
else // EXIT_PROCESS
{
NT::NtTerminateProcess( NULL, result );
}
}
APIRET STDCALL DosCreateThread(PTID ptid, PFNTHREAD pfn,
ULONG param, ULONG flag, ULONG cbStack)
{
return ERROR_CALL_NOT_IMPLEMENTED;
}
/* EOF */

View File

@@ -1,14 +0,0 @@
all:
@echo To build "os2" there are two paths:
@echo ---
@echo 1. copy the os2 folder into the reactos\modules folder
@echo 2. link reactos/modules/os2 to os2
@echo UNIX
@echo cd $${ROS_SRC_ROOT}/reactos/modules
@echo ln -s $${ROS_SRC_ROOT}/os2 os2
@echo WINDOWS
@echo cd %%ROS_SRC_ROOT%%\reactos\modules
@echo junction os2 %%ROS_SRC_ROOT%%\os2
@echo ---
@echo Eventually you can run "make depends" in the %%ROS_SRC_ROOT%%\reactos
@echo directory to compile it.

View File

@@ -1,50 +0,0 @@
/* $Id$
*
* dllmain.c - OS/2 Enviroment Subsystem Server
*
* ReactOS Operating System
*
* --------------------------------------------------------------------
*
* This software is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this software; see the file COPYING.LIB. If not, write
* to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge,
* MA 02139, USA.
*
* --------------------------------------------------------------------
*/
#include "os2srv.h"
#define NDEBUG
#include <debug.h>
/* DLL entry point */
HANDLE Os2SrvDllHandle = 0;
/* FUNCTIONS *****************************************************************/
BOOL STDCALL
DllMain(HANDLE hDll,
DWORD dwReason,
LPVOID lpReserved)
{
if (DLL_PROCESS_ATTACH == dwReason)
{
Os2SrvDllHandle = hDll;
}
return TRUE;
}
/* EOF */

View File

@@ -1,3 +0,0 @@
LIBRARY os2srv.dll
EXPORTS
ServerDllInitialization@8

View File

@@ -1,13 +0,0 @@
#ifndef _OS2SS_H_INCLUDED_
#define _OS2SS_H_INCLUDED_
/* PSDK/NDK Headers */
#include <stdio.h>
#include <windows.h>
#define NTOS_MODE_USER
#include <ndk/ntndk.h>
#include <csr/server.h>
#endif /* ndef _OS2SS_H_INCLUDED_ */

View File

@@ -1,4 +0,0 @@
#define REACTOS_STR_FILE_DESCRIPTION "ReactOS-OS/2 Environment Subsystem Server\0"
#define REACTOS_STR_INTERNAL_NAME "os2srv\0"
#define REACTOS_STR_ORIGINAL_FILENAME "os2srv.dll\0"
#include <reactos/version.rc>

View File

@@ -1,11 +0,0 @@
<module name="os2srv" type="nativedll">
<importlibrary definition="os2srv.def" />
<include base="os2srv">.</include>
<define name="__USE_W32API" />
<define name="_DISABLE_TIDENTS" />
<library>ntdll</library>
<library>csrsrv</library>
<file>dllmain.c</file>
<file>server.c</file>
<file>os2srv.rc</file>
</module>

View File

@@ -1,84 +0,0 @@
/* $Id$
*
* server.c - OS/2 Enviroment Subsystem Server - Initialization
*
* ReactOS Operating System
*
* --------------------------------------------------------------------
*
* This software is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this software; see the file COPYING.LIB. If not, write
* to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge,
* MA 02139, USA.
*
* --------------------------------------------------------------------
*/
#include "os2srv.h"
//#define NDEBUG
#include <debug.h>
HANDLE Os2ApiPort = NULL;
/**********************************************************************
* NAME PRIVATE
* Os2StaticServerThread/1
*/
VOID STDCALL Os2StaticServerThread (PVOID x)
{
NTSTATUS Status = STATUS_SUCCESS;
PPORT_MESSAGE Request = (PPORT_MESSAGE) x;
PPORT_MESSAGE Reply = NULL;
ULONG MessageType = 0;
DPRINT("VMSSRV: %s called\n", __FUNCTION__);
MessageType = Request->u2.s2.Type;
DPRINT("VMSSRV: %s received a message (Type=%d)\n",
__FUNCTION__, MessageType);
switch (MessageType)
{
default:
Reply = Request;
Status = NtReplyPort (Os2ApiPort, Reply);
break;
}
}
/*=====================================================================
* PUBLIC API
*===================================================================*/
NTSTATUS STDCALL ServerDllInitialization (ULONG ArgumentCount,
LPWSTR *Argument)
{
NTSTATUS Status = STATUS_SUCCESS;
DPRINT("VMSSRV: %s called\n", __FUNCTION__);
// Get the listening port from csrsrv.dll
Os2ApiPort = CsrQueryApiPort ();
if (NULL == Os2ApiPort)
{
return STATUS_UNSUCCESSFUL;
}
// Register our message dispatcher
Status = CsrAddStaticServerThread (Os2StaticServerThread);
if (NT_SUCCESS(Status))
{
//TODO: perform the real OS/2 server internal initialization here
}
return Status;
}
/* EOF */

Binary file not shown.

View File

@@ -6,7 +6,7 @@ Andrew Greenwood <lists@silverblade.co.uk>
Andrew Munger <waxdragon@gmail.com>
Arindam Das
Art Yerkes <ayerkes@speakeasy.net>
Boudewijn Dekker <ariadne@xs4all.nl>
Ariadne
Brandon Turner (turnerb7@msu.edu)
Brian Palmer <brianp@sginet.com>
Casper S. Hornstrup <chorns@users.sourceforge.net>
@@ -46,6 +46,7 @@ Marty Dill <mdill@uvic.ca>
Matt Pyne
Mike Nordell ("tamlin")
Nathan Woods <npwoods@mess.org>
Pablo Borobia <pborobia@gmail.com>
Paolo Pantaleo <paolopan@freemail.it>
Phillip Susi <phreak@iag.net>
Rex Jolliff <rex@lvcablemodem.com>

View File

@@ -11,7 +11,7 @@ ReactOS from http://www.reactos.org/.
To build ReactOS run 'make' (without the quotes) if you are building on Linux
or 'mingw32-make' if you are building on Windows (or ReactOS) from the top
directory.
directory. If you are using RosBE, follow on-screen instructions.
2.2 Building a bootable CD image

View File

@@ -152,11 +152,15 @@ ifeq ($(word 1,$(shell gcc -dumpmachine)),mingw32)
ifeq ($(findstring msys,$(shell sh --version 2>nul)),msys)
export OSTYPE = msys
HOST=mingw32-linux
CFLAGS+=-fshort-wchar
CPPFLAGS+=-fshort-wchar
else
HOST=mingw32-windows
endif
else
HOST=mingw32-linux
CFLAGS+=-fshort-wchar
CPPFLAGS+=-fshort-wchar
endif
endif
@@ -398,6 +402,38 @@ universe:
ROS_OUTPUT=output-$(ARCH)-r \
world
sysregtest:
-mkdir $(OUTPUT_)cd$(SEP)reactos
$(cp) boot$(SEP)bootdata$(SEP)unattend.inf.sample boot$(SEP)bootdata$(SEP)unattend.inf
$(cp) boot$(SEP)bootdata$(SEP)unattend.inf.sample $(OUTPUT_)cd$(SEP)reactos$(SEP)unattend.inf
$(cp) boot$(SEP)bootdata$(SEP)bootcdregtest$(SEP)testboot.bat.sample boot$(SEP)bootdata$(SEP)bootcdregtest$(SEP)testboot.bat
$(MAKE) dbgprint
$(MAKE) bootcdregtest
$(MAKE) sysreg
$(OUTPUT_)tools$(SEP)sysreg$(SEP)sysreg$(EXEPOSTFIX) tools$(SEP)sysreg$(SEP)txtmode.cfg rosboot
$(OUTPUT_)tools$(SEP)sysreg$(SEP)sysreg$(EXEPOSTFIX) tools$(SEP)sysreg$(SEP)secstage.cfg rosboot
$(OUTPUT_)tools$(SEP)sysreg$(SEP)sysreg$(EXEPOSTFIX) tools$(SEP)sysreg$(SEP)runonce.cfg rosboot
sysregtest_clean:
$(rm) boot$(SEP)bootdata$(SEP)unattend.inf
$(rm) boot$(SEP)bootdata$(SEP)bootcdregtest$(SEP)testboot.bat
$(rm) $(OUTPUT_)cd$(SEP)reactos$(SEP)unattend.inf
regtest:
$(cp) boot$(SEP)bootdata$(SEP)unattend.inf.sample $(OUTPUT_)cd$(SEP)reactos$(SEP)unattend.inf
$(MAKE) bootcdregtest
$(rm) $(OUTPUT_)cd$(SEP)reactos$(SEP)unattend.inf
.PHONY: cb
cb: $(RBUILD_TARGET)
$(ECHO_RBUILD)
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) cb
.PHONY: depmap
depmap: $(RBUILD_TARGET)
$(ECHO_RBUILD)
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) depmap
.PHONY: msvc
msvc: $(RBUILD_TARGET)
$(ECHO_RBUILD)

View File

@@ -1,6 +1,6 @@
========================
ReactOS Version 0.3.x
Updated Aug 21rd, 2005
Updated Dec 16, 2006
========================
1. What is ReactOS?
@@ -8,10 +8,11 @@ Updated Aug 21rd, 2005
ReactOS is an Open Source effort to develop a quality operating system
that is compatible with Windows NT applications and drivers.
The ReactOS project, although currently focused on Windows NT 4.0
compatibility, is always keeping an eye toward compatibility with
future Windows NT releases, that is, Windows 2000 (NT 5.0) and
Windows XP (NT 5.1).
The ReactOS project, although currently focused on Windows XP/2003
drivers compatibility, is always keeping an eye toward compatibility with
older version of Windows NT family ( NT 4.0, 2000 (NT 5.0)) and new
Windows NT releases (Vista, etc). Applications (Win32 API) compatibility
focus is Windows XP.
More information is available at http://www.reactos.org/.
@@ -21,8 +22,8 @@ See the INSTALL file for more details.
3. More information
See the doc subdirectory for some sparse notes
See the media\doc subdirectory for some sparse notes.
4. Who is responsible
See the CREDITS file
See the CREDITS file.

View File

@@ -33,6 +33,7 @@
<compilerflag>-mpreferred-stack-boundary=2</compilerflag>
</if>
<compilerflag>-Wpointer-arith</compilerflag>
<linkerflag>-enable-stdcall-fixup</linkerflag>
<include>.</include>
<include>include</include>

View File

@@ -3,27 +3,27 @@
; COMPONENT_NAME - Name of the component. Eg. kernel32.dll.
; PATH_TO_COMPONENT_SOURCES - Relative path to sources (relative to
; where rgenstat is run from).
advapi32.dll reactos/lib/advapi32
crtdll.dll reactos/lib/crtdll
gdi32.dll reactos/lib/gdi32
gdiplus.dll reactos/lib/gdiplus
iphlpapi.dll reactos/lib/iphlpapi
kernel32.dll reactos/lib/kernel32
lz32.dll reactos/lib/lzexpand
msvcrt.dll reactos/lib/msvcrt
rpcrt4.dll reactos/lib/rpcrt4
secur32.dll reactos/lib/secur32
snmpapi.dll reactos/lib/snmpapi
user32.dll reactos/lib/user32
version.dll reactos/lib/version
winspool.dll reactos/lib/winspool
ws2_32.dll reactos/lib/ws2_32
wsock32.dll reactos/lib/wsock32
advapi32.dll reactos/dll/win32/advapi32
crtdll.dll reactos/dll/win32/crtdll
gdi32.dll reactos/dll/win32/gdi32
gdiplus.dll reactos/dll/win32/gdiplus
iphlpapi.dll reactos/dll/win32/iphlpapi
kernel32.dll reactos/dll/win32/kernel32
lz32.dll reactos/dll/win32/lzexpand
msvcrt.dll reactos/dll/win32/msvcrt
rpcrt4.dll reactos/dll/win32/rpcrt4
secur32.dll reactos/dll/win32/secur32
snmpapi.dll reactos/dll/win32/snmpapi
user32.dll reactos/dll/win32/user32
version.dll reactos/dll/win32/version
winspool.dll reactos/dll/win32/winspool
ws2_32.dll reactos/dll/win32/ws2_32
wsock32.dll reactos/dll/win32/wsock32
videoprt.dll reactos/drivers/video/videoprt
ndis.sys reactos/drivers/net/ndis
tdi.sys reactos/drivers/net/tdi
ndis.sys reactos/drivers/network/ndis
tdi.sys reactos/drivers/network/tdi
class2.sys reactos/drivers/storage/class2
scsiport.sys reactos/drivers/storage/scsiport
ntoskrnl.exe reactos/ntoskrnl
ntoskrnl.exe reactos/lib/rtl
win32k.sys reactos/subsys/win32k
win32k.sys reactos/subsystems/win32/win32k

View File

@@ -10,15 +10,24 @@
<directory name="cmdutils">
<xi:include href="cmdutils/cmdutils.rbuild" />
</directory>
<directory name="devmgmt">
<xi:include href="devmgmt/devmgmt.rbuild" />
</directory>
<directory name="devmgr">
<xi:include href="devmgr/devmgr.rbuild" />
</directory>
<directory name="downloader">
<xi:include href="downloader/downloader.rbuild" />
</directory>
<directory name="games">
<xi:include href="games/games.rbuild" />
</directory>
<directory name="getfirefox">
<xi:include href="getfirefox/getfirefox.rbuild" />
</directory>
<directory name="gettype">
<xi:include href="gettype/gettype.rbuild" />
</directory>
<directory name="hostname">
<xi:include href="hostname/hostname.rbuild" />
</directory>

View File

@@ -507,18 +507,8 @@ PrintSpecialAccess:
}
#ifdef _UNICODE
int __cdecl main(void)
#else
int __cdecl _main (int argc, char *argv[])
#endif
int __cdecl _tmain(int argc, const TCHAR *argv[])
{
#ifdef _UNICODE
PWCHAR *argv;
int argc = 0;
argv = CommandLineToArgvW(GetCommandLineW(), &argc);
#endif
if (argc < 2)
{
PrintHelp();
@@ -606,3 +596,4 @@ Error:
return 0;
}

View File

@@ -1,14 +1,14 @@
<module name="cacls" type="win32cui" installbase="system32" installname="cacls.exe">
<module name="cacls" type="win32cui" installbase="system32" installname="cacls.exe" unicode="true">
<include base="cacls">.</include>
<define name="__USE_W32API" />
<define name="UNICODE" />
<define name="_UNICODE" />
<define name="_WIN32_IE">0x0500</define>
<define name="_WIN32_WINNT">0x0600</define>
<define name="WINVER">0x0600</define>
<library>kernel32</library>
<library>advapi32</library>
<library>ntdll</library>
<library>user32</library>
<library>shell32</library>
<file>cacls.c</file>
<file>lang/cacls.rc</file>
<pch>precomp.h</pch>

View File

@@ -1,79 +1,79 @@
/*
* German language file by Daniel Reimer <EmuandCo> 2006-06-15
*/
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
{
IDS_HELP, "Ändert Datei-ACLs (Access Control List) oder zeigt sie an.\n\n\
CACLS Dateiname [/T] [/E] [/C] [/G Benutzer:Zugriff] [/R Benutzer [...]]\n\
[/P Benutzer:Zugriff [...]] [/D Benutzer [...]]\n\
Dateiname ACLs für angegebene Datei anzeigen.\n\
/T ACLs der angegebenen Datei im aktuellen Verzeichnis\n\
und allen Unterverzeichnissen ändern.\n\
/E ACL bearbeiten anstatt sie zu ersetzen.\n\
/C Ändern der ACLs bei Zugriffsverletzung fortsetzen.\n\
/G Benutzer:Zugriff Angegebene Zugriffsarten zulassen.\n\
Zugriff kann sein: R Lesen\n\
W Schreiben\n\
C Ändern (Schreiben)\n\
F Vollzugriff\n\
/R Benutzer Zugriffsrechte des Benutzers aufheben (gültig mit /E).\n\
/P Benutzer:Zugriff Zugriffsrechte des Benutzers ersetzen.\n\
Zugriff kann sein: N Kein\n\
R Lesen\n\
W Schreiben\n\
C Ändern (Schreiben)\n\
F Vollzugriff\n\
/D Benutzer Zugriff für Benutzer verweigern.\n\
Platzhalterzeichen (Wildcards) werden für Dateiname unterstützt.\n\
Mehrere Benutzer können in einem Befehl angegeben werden.\n\n\
Abkürzungen:\n\
CI - Containervererbung.\n\
Der ACE-Eintrag wird von Verzeichnissen geerbt.\n\
OI - Objektvererbung.\n\
Der ACE-Eintrag wird von Dateien geerbt.\n\
IO - Nur vererben.\n\
Der ACE-Eintrag bezieht sich nicht auf\n\
die aktuelle Datei/das aktuelle Verzeichnis.\n"
IDS_ABBR_CI, "(CI)"
IDS_ABBR_OI, "(OI)"
IDS_ABBR_IO, "(IO)"
IDS_ABBR_FULL, "F"
IDS_ABBR_READ, "R"
IDS_ABBR_WRITE, "W"
IDS_ABBR_CHANGE, "C"
IDS_ABBR_NONE, "N"
IDS_ALLOW, ""
IDS_DENY, "(DENY)"
IDS_SPECIAL_ACCESS, "(special access:)"
IDS_GENERIC_READ, "GENERIC_READ"
IDS_GENERIC_WRITE, "GENERIC_WRITE"
IDS_GENERIC_EXECUTE, "GENERIC_EXECUTE"
IDS_GENERIC_ALL, "GENERIC_ALL"
IDS_FILE_GENERIC_EXECUTE, "FILE_GENERIC_EXECUTE"
IDS_FILE_GENERIC_READ, "FILE_GENERIC_READ"
IDS_FILE_GENERIC_WRITE, "FILE_GENERIC_WRITE"
IDS_FILE_READ_DATA, "FILE_READ_DATA"
IDS_FILE_WRITE_DATA, "FILE_WRITE_DATA"
IDS_FILE_APPEND_DATA, "FILE_APPEND_DATA"
IDS_FILE_READ_EA, "FILE_READ_EA"
IDS_FILE_WRITE_EA, "FILE_WRITE_EA"
IDS_FILE_EXECUTE, "FILE_EXECUTE"
IDS_FILE_DELETE_CHILD, "FILE_DELETE_CHILD"
IDS_FILE_READ_ATTRIBUTES, "FILE_READ_ATTRIBUTES"
IDS_FILE_WRITE_ATTRIBUTES, "FILE_WRITE_ATTRIBUTES"
IDS_MAXIMUM_ALLOWED, "MAXIMUM_ALLOWED"
IDS_ACCESS_SYSTEM_SECURITY, "ACCESS_SYSTEM_SECURITY"
IDS_SPECIFIC_RIGHTS_ALL, "SPECIFIC_RIGHTS_ALL"
IDS_STANDARD_RIGHTS_REQUIRED, "STANDARD_RIGHTS_REQUIRED"
IDS_SYNCHRONIZE, "SYNCHRONIZE"
IDS_WRITE_OWNER, "WRITE_OWNER"
IDS_WRITE_DAC, "WRITE_DAC"
IDS_READ_CONTROL, "READ_CONTROL"
IDS_DELETE, "DELETE"
IDS_STANDARD_RIGHTS_ALL, "STANDARD_RIGHTS_ALL"
}
/*
* German language file by Daniel Reimer <EmuandCo> 2006-06-15
*/
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
STRINGTABLE DISCARDABLE
{
IDS_HELP, "Ändert Datei-ACLs (Access Control List) oder zeigt sie an.\n\n\
CACLS Dateiname [/T] [/E] [/C] [/G Benutzer:Zugriff] [/R Benutzer [...]]\n\
[/P Benutzer:Zugriff [...]] [/D Benutzer [...]]\n\
Dateiname ACLs für angegebene Datei anzeigen.\n\
/T ACLs der angegebenen Datei im aktuellen Verzeichnis\n\
und allen Unterverzeichnissen ändern.\n\
/E ACL bearbeiten anstatt sie zu ersetzen.\n\
/C Ändern der ACLs bei Zugriffsverletzung fortsetzen.\n\
/G Benutzer:Zugriff Angegebene Zugriffsarten zulassen.\n\
Zugriff kann sein: R Lesen\n\
W Schreiben\n\
C Ändern (Schreiben)\n\
F Vollzugriff\n\
/R Benutzer Zugriffsrechte des Benutzers aufheben (gültig mit /E).\n\
/P Benutzer:Zugriff Zugriffsrechte des Benutzers ersetzen.\n\
Zugriff kann sein: N Kein\n\
R Lesen\n\
W Schreiben\n\
C Ändern (Schreiben)\n\
F Vollzugriff\n\
/D Benutzer Zugriff für Benutzer verweigern.\n\
Platzhalterzeichen (Wildcards) werden für Dateiname unterstützt.\n\
Mehrere Benutzer können in einem Befehl angegeben werden.\n\n\
Abkürzungen:\n\
CI - Containervererbung.\n\
Der ACE-Eintrag wird von Verzeichnissen geerbt.\n\
OI - Objektvererbung.\n\
Der ACE-Eintrag wird von Dateien geerbt.\n\
IO - Nur vererben.\n\
Der ACE-Eintrag bezieht sich nicht auf\n\
die aktuelle Datei/das aktuelle Verzeichnis.\n"
IDS_ABBR_CI, "(CI)"
IDS_ABBR_OI, "(OI)"
IDS_ABBR_IO, "(IO)"
IDS_ABBR_FULL, "F"
IDS_ABBR_READ, "R"
IDS_ABBR_WRITE, "W"
IDS_ABBR_CHANGE, "C"
IDS_ABBR_NONE, "N"
IDS_ALLOW, ""
IDS_DENY, "(DENY)"
IDS_SPECIAL_ACCESS, "(special access:)"
IDS_GENERIC_READ, "GENERIC_READ"
IDS_GENERIC_WRITE, "GENERIC_WRITE"
IDS_GENERIC_EXECUTE, "GENERIC_EXECUTE"
IDS_GENERIC_ALL, "GENERIC_ALL"
IDS_FILE_GENERIC_EXECUTE, "FILE_GENERIC_EXECUTE"
IDS_FILE_GENERIC_READ, "FILE_GENERIC_READ"
IDS_FILE_GENERIC_WRITE, "FILE_GENERIC_WRITE"
IDS_FILE_READ_DATA, "FILE_READ_DATA"
IDS_FILE_WRITE_DATA, "FILE_WRITE_DATA"
IDS_FILE_APPEND_DATA, "FILE_APPEND_DATA"
IDS_FILE_READ_EA, "FILE_READ_EA"
IDS_FILE_WRITE_EA, "FILE_WRITE_EA"
IDS_FILE_EXECUTE, "FILE_EXECUTE"
IDS_FILE_DELETE_CHILD, "FILE_DELETE_CHILD"
IDS_FILE_READ_ATTRIBUTES, "FILE_READ_ATTRIBUTES"
IDS_FILE_WRITE_ATTRIBUTES, "FILE_WRITE_ATTRIBUTES"
IDS_MAXIMUM_ALLOWED, "MAXIMUM_ALLOWED"
IDS_ACCESS_SYSTEM_SECURITY, "ACCESS_SYSTEM_SECURITY"
IDS_SPECIFIC_RIGHTS_ALL, "SPECIFIC_RIGHTS_ALL"
IDS_STANDARD_RIGHTS_REQUIRED, "STANDARD_RIGHTS_REQUIRED"
IDS_SYNCHRONIZE, "SYNCHRONIZE"
IDS_WRITE_OWNER, "WRITE_OWNER"
IDS_WRITE_DAC, "WRITE_DAC"
IDS_READ_CONTROL, "READ_CONTROL"
IDS_DELETE, "DELETE"
IDS_STANDARD_RIGHTS_ALL, "STANDARD_RIGHTS_ALL"
}

View File

@@ -24,7 +24,7 @@ CACLS filename [/T] [/E] [/C] [/G user:perm [...]] [/R user [...]]\n\
C Change (write)\n\
F Full control\n\
/D user Deny specified user access.\n\
Wildcards can be used to specify more that one file in a command.\n\
Wildcards can be used to specify more than one file in a command.\n\
You can specify more than one user in a command.\n\n\
Abbreviations:\n\
CI - Container Inherit.\n\

View File

@@ -0,0 +1,75 @@
LANGUAGE LANG_ITALIAN, SUBLANG_ITALIAN
STRINGTABLE DISCARDABLE
{
IDS_HELP, "Visualizza o modifica le liste di controllo di accesso ai file.\n\
(access control lists ACLs)\n\n\
CACLS nomefile [/T] [/E] [/C] [/G utente:perm [...]] [/R utente [...]]\n\
[/P utente:perm [...]] [/D utente [...]]\n\
nomefile Visualizza ACLs.\n\
/T Modifica la ACLs dei file specificati nella\n\
cartella corrente e in tutte le sottocartelle.\n\
/E Modifica ACL invece di sostituirla.\n\
/C Prosegue in caso di errori di accesso negato.\n\
/G utente:perm Assegna i diritti di accesso per l'utente specificato.\n\
Perm vale: R Lettura\n\
W Scrittura\n\
C Modifica (Scrittura)\n\
F Controllo completo\n\
/R utente Toglie i diritti di accesso all'utente indicato (valido solo con /E).\n\
/P utente:perm Sostituisce i diritti di accesso dell'utente indicato.\n\
Perm vale: N Nessuno\n\
R Lettura\n\
W Scrittura\n\
C Modifica (Scrittura)\n\
F Controllo completo\n\
/D utente Nega l'accesso all'utente indicato.\n\
I caratteri jolly possono essere usati per indicare piu' di un file in un comando.\n\
Si pu<70> indicare piu' di un utente in un comando.\n\n\
Abbreviazioni:\n\
CI - Contenitore eredita.\n\
ACE verr<72> ereditato dalle cartelle.\n\
OI - Oggetto eredita.\n\
ACE verr<72> ereditato dai file.\n\
IO - Solo eredi.\n\
ACE non <20> applicato ai file/cartelle correnti.\n"
IDS_ABBR_CI, "(CI)"
IDS_ABBR_OI, "(OI)"
IDS_ABBR_IO, "(IO)"
IDS_ABBR_FULL, "F"
IDS_ABBR_READ, "R"
IDS_ABBR_WRITE, "W"
IDS_ABBR_CHANGE, "C"
IDS_ABBR_NONE, "N"
IDS_ALLOW, ""
IDS_DENY, "(DENY)"
IDS_SPECIAL_ACCESS, "(special access:)"
IDS_GENERIC_READ, "GENERIC_READ"
IDS_GENERIC_WRITE, "GENERIC_WRITE"
IDS_GENERIC_EXECUTE, "GENERIC_EXECUTE"
IDS_GENERIC_ALL, "GENERIC_ALL"
IDS_FILE_GENERIC_EXECUTE, "FILE_GENERIC_EXECUTE"
IDS_FILE_GENERIC_READ, "FILE_GENERIC_READ"
IDS_FILE_GENERIC_WRITE, "FILE_GENERIC_WRITE"
IDS_FILE_READ_DATA, "FILE_READ_DATA"
IDS_FILE_WRITE_DATA, "FILE_WRITE_DATA"
IDS_FILE_APPEND_DATA, "FILE_APPEND_DATA"
IDS_FILE_READ_EA, "FILE_READ_EA"
IDS_FILE_WRITE_EA, "FILE_WRITE_EA"
IDS_FILE_EXECUTE, "FILE_EXECUTE"
IDS_FILE_DELETE_CHILD, "FILE_DELETE_CHILD"
IDS_FILE_READ_ATTRIBUTES, "FILE_READ_ATTRIBUTES"
IDS_FILE_WRITE_ATTRIBUTES, "FILE_WRITE_ATTRIBUTES"
IDS_MAXIMUM_ALLOWED, "MAXIMUM_ALLOWED"
IDS_ACCESS_SYSTEM_SECURITY, "ACCESS_SYSTEM_SECURITY"
IDS_SPECIFIC_RIGHTS_ALL, "SPECIFIC_RIGHTS_ALL"
IDS_STANDARD_RIGHTS_REQUIRED, "STANDARD_RIGHTS_REQUIRED"
IDS_SYNCHRONIZE, "SYNCHRONIZE"
IDS_WRITE_OWNER, "WRITE_OWNER"
IDS_WRITE_DAC, "WRITE_DAC"
IDS_READ_CONTROL, "READ_CONTROL"
IDS_DELETE, "DELETE"
IDS_STANDARD_RIGHTS_ALL, "STANDARD_RIGHTS_ALL"
}

View File

@@ -1,4 +1,4 @@
LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL
LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL
STRINGTABLE DISCARDABLE
{

View File

@@ -1,75 +1,75 @@
LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
{
IDS_HELP, "ACL's (Access Control Lists, toegangslijsten) van bestanden weergeven\nof bewerken\n\nCACLS bestandsnaam [/T] [/E] [/C] [/G gebr:toeg] [/R gebruiker [...]]\n\
[/P gebr:toeg [...]] [/D gebruiker [...]]\n\
bestandsnaam ACL's weergeven.\n\
/T ACL's wijzigen van opgegeven bestanden in\n\
de huidige map en alle submappen.\n\
/E ACL bewerken in plaats van vervangen.\n\
/C Doorgaan bij toegang geweigerd.\n\
/G gebr:toeg Opgegeven gebruiker toegangsrechten verlenen.\n\
Toeg kan zijn: R Lezen\n\
W Schrijven\n\
C Wijzigen (schrijven)\n\
F Volledig beheer\n\
/R gebruiker Toegangsrechten van opgegeven gebruiker intrekken.\n\
[alleen geldig met /E].\n\
/P gebr:toeg Toegangsrechten van opgegeven gebruiker vervangen.\n\
Toeg kan zijn: N Geen\n\
R Lezen\n\
W Schrijven\n\
C Wijzigen (schrijven)\n\
F Volledig beheer\n\
/D gebruiker Opgegeven gebruiker toegang weigeren.\n\
U kunt jokertekens gebruiken om meerdere bestanden op te geven in een\n\
opdracht. U kunt meerdere gebruikers opgeven in een opdracht.\n\n\
Afkortingen:\n\
CI - Container Inherit.\n\
De toegangslijst wordt door mappen overgenomen.\n\
OI - Object Inherit.\n\
De toegangslijst wordt door bestanden overgenomen.\n\
IO - Inherit Only.\n\
De toegangslijst is niet van toepassing op het huidige bestand of\n\
de huidige map.\n"
IDS_ABBR_CI, "(CI)"
IDS_ABBR_OI, "(OI)"
IDS_ABBR_IO, "(IO)"
IDS_ABBR_FULL, "F"
IDS_ABBR_READ, "R"
IDS_ABBR_WRITE, "W"
IDS_ABBR_CHANGE, "C"
IDS_ABBR_NONE, "N"
IDS_ALLOW, ""
IDS_DENY, "(DENY)"
IDS_SPECIAL_ACCESS, "(speciale toegang:)"
IDS_GENERIC_READ, "GENERIC_READ"
IDS_GENERIC_WRITE, "GENERIC_WRITE"
IDS_GENERIC_EXECUTE, "GENERIC_EXECUTE"
IDS_GENERIC_ALL, "GENERIC_ALL"
IDS_FILE_GENERIC_EXECUTE, "FILE_GENERIC_EXECUTE"
IDS_FILE_GENERIC_READ, "FILE_GENERIC_READ"
IDS_FILE_GENERIC_WRITE, "FILE_GENERIC_WRITE"
IDS_FILE_READ_DATA, "FILE_READ_DATA"
IDS_FILE_WRITE_DATA, "FILE_WRITE_DATA"
IDS_FILE_APPEND_DATA, "FILE_APPEND_DATA"
IDS_FILE_READ_EA, "FILE_READ_EA"
IDS_FILE_WRITE_EA, "FILE_WRITE_EA"
IDS_FILE_EXECUTE, "FILE_EXECUTE"
IDS_FILE_DELETE_CHILD, "FILE_DELETE_CHILD"
IDS_FILE_READ_ATTRIBUTES, "FILE_READ_ATTRIBUTES"
IDS_FILE_WRITE_ATTRIBUTES, "FILE_WRITE_ATTRIBUTES"
IDS_MAXIMUM_ALLOWED, "MAXIMUM_ALLOWED"
IDS_ACCESS_SYSTEM_SECURITY, "ACCESS_SYSTEM_SECURITY"
IDS_SPECIFIC_RIGHTS_ALL, "SPECIFIC_RIGHTS_ALL"
IDS_STANDARD_RIGHTS_REQUIRED, "STANDARD_RIGHTS_REQUIRED"
IDS_SYNCHRONIZE, "SYNCHRONIZE"
IDS_WRITE_OWNER, "WRITE_OWNER"
IDS_WRITE_DAC, "WRITE_DAC"
IDS_READ_CONTROL, "READ_CONTROL"
IDS_DELETE, "DELETE"
IDS_STANDARD_RIGHTS_ALL, "STANDARD_RIGHTS_ALL"
}
LANGUAGE LANG_DUTCH, SUBLANG_DUTCH
STRINGTABLE DISCARDABLE
{
IDS_HELP, "ACL's (Access Control Lists, toegangslijsten) van bestanden weergeven\nof bewerken\n\nCACLS bestandsnaam [/T] [/E] [/C] [/G gebr:toeg] [/R gebruiker [...]]\n\
[/P gebr:toeg [...]] [/D gebruiker [...]]\n\
bestandsnaam ACL's weergeven.\n\
/T ACL's wijzigen van opgegeven bestanden in\n\
de huidige map en alle submappen.\n\
/E ACL bewerken in plaats van vervangen.\n\
/C Doorgaan bij toegang geweigerd.\n\
/G gebr:toeg Opgegeven gebruiker toegangsrechten verlenen.\n\
Toeg kan zijn: R Lezen\n\
W Schrijven\n\
C Wijzigen (schrijven)\n\
F Volledig beheer\n\
/R gebruiker Toegangsrechten van opgegeven gebruiker intrekken.\n\
[alleen geldig met /E].\n\
/P gebr:toeg Toegangsrechten van opgegeven gebruiker vervangen.\n\
Toeg kan zijn: N Geen\n\
R Lezen\n\
W Schrijven\n\
C Wijzigen (schrijven)\n\
F Volledig beheer\n\
/D gebruiker Opgegeven gebruiker toegang weigeren.\n\
U kunt jokertekens gebruiken om meerdere bestanden op te geven in een\n\
opdracht. U kunt meerdere gebruikers opgeven in een opdracht.\n\n\
Afkortingen:\n\
CI - Container Inherit.\n\
De toegangslijst wordt door mappen overgenomen.\n\
OI - Object Inherit.\n\
De toegangslijst wordt door bestanden overgenomen.\n\
IO - Inherit Only.\n\
De toegangslijst is niet van toepassing op het huidige bestand of\n\
de huidige map.\n"
IDS_ABBR_CI, "(CI)"
IDS_ABBR_OI, "(OI)"
IDS_ABBR_IO, "(IO)"
IDS_ABBR_FULL, "F"
IDS_ABBR_READ, "R"
IDS_ABBR_WRITE, "W"
IDS_ABBR_CHANGE, "C"
IDS_ABBR_NONE, "N"
IDS_ALLOW, ""
IDS_DENY, "(DENY)"
IDS_SPECIAL_ACCESS, "(speciale toegang:)"
IDS_GENERIC_READ, "GENERIC_READ"
IDS_GENERIC_WRITE, "GENERIC_WRITE"
IDS_GENERIC_EXECUTE, "GENERIC_EXECUTE"
IDS_GENERIC_ALL, "GENERIC_ALL"
IDS_FILE_GENERIC_EXECUTE, "FILE_GENERIC_EXECUTE"
IDS_FILE_GENERIC_READ, "FILE_GENERIC_READ"
IDS_FILE_GENERIC_WRITE, "FILE_GENERIC_WRITE"
IDS_FILE_READ_DATA, "FILE_READ_DATA"
IDS_FILE_WRITE_DATA, "FILE_WRITE_DATA"
IDS_FILE_APPEND_DATA, "FILE_APPEND_DATA"
IDS_FILE_READ_EA, "FILE_READ_EA"
IDS_FILE_WRITE_EA, "FILE_WRITE_EA"
IDS_FILE_EXECUTE, "FILE_EXECUTE"
IDS_FILE_DELETE_CHILD, "FILE_DELETE_CHILD"
IDS_FILE_READ_ATTRIBUTES, "FILE_READ_ATTRIBUTES"
IDS_FILE_WRITE_ATTRIBUTES, "FILE_WRITE_ATTRIBUTES"
IDS_MAXIMUM_ALLOWED, "MAXIMUM_ALLOWED"
IDS_ACCESS_SYSTEM_SECURITY, "ACCESS_SYSTEM_SECURITY"
IDS_SPECIFIC_RIGHTS_ALL, "SPECIFIC_RIGHTS_ALL"
IDS_STANDARD_RIGHTS_REQUIRED, "STANDARD_RIGHTS_REQUIRED"
IDS_SYNCHRONIZE, "SYNCHRONIZE"
IDS_WRITE_OWNER, "WRITE_OWNER"
IDS_WRITE_DAC, "WRITE_DAC"
IDS_READ_CONTROL, "READ_CONTROL"
IDS_DELETE, "DELETE"
IDS_STANDARD_RIGHTS_ALL, "STANDARD_RIGHTS_ALL"
}

View File

@@ -1,75 +1,75 @@
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
{
IDS_HELP, "Отображает или изменяет списки доступа (ACLs) к файлам\n\n\
CACLS имя_Файла [/T] [/E] [/C] [/G имя:право [...]] [/R имя [...]]\n\
[/P имя:право[...]] [/D имя [...]]\n\
имя_файла Вывод списков ACL.\n\
/T Замена списков ACL для указанных файлов в текущем каталоге\n\
и всех подкаталогах.\n\
/E Редактирование списка ACL вместо его замены.\n\
/C Продолжать при ошибках отказа доступа.\n\
/G имя:право Предоставление указанному пользователю прав доступа.\n\
Право может быть: R Чтение\n\
W Запись\n\
C Изменение (запись)\n\
F Полный контроль\n\
/R имя Отозвать права доступа для указанного пользователя\n\
(верно только с /E).\n\
/P имя:право Заменить права указанного пользователя.\n\
Право может быть: N Нет доступа\n\
R Чтение\n\
W Запись\n\
C Изменение (запись)\n\
F Полный доступ\n\
/D имя Запретить доступ для указанного пользователя.\n\
В команде можно использовать шаблоны для обработки более одного файла.\n\
В команде можно указывать более одного пользователя.\n\n\
Сокращения:\n\
CI - Наследование контейнерами.\n\
ACE будет унаследован папками.\n\
OI - Наследование объектами.\n\
ACE будет унаследован файлами.\n\
IO - Только наследованное.\n\
ACE не будет применён к данному файлу/папке.\n"
IDS_ABBR_CI, "(CI)"
IDS_ABBR_OI, "(OI)"
IDS_ABBR_IO, "(IO)"
IDS_ABBR_FULL, "F"
IDS_ABBR_READ, "R"
IDS_ABBR_WRITE, "W"
IDS_ABBR_CHANGE, "C"
IDS_ABBR_NONE, "N"
IDS_ALLOW, ""
IDS_DENY, "(DENY)"
IDS_SPECIAL_ACCESS, "(специальный доступ:)"
IDS_GENERIC_READ, "GENERIC_READ"
IDS_GENERIC_WRITE, "GENERIC_WRITE"
IDS_GENERIC_EXECUTE, "GENERIC_EXECUTE"
IDS_GENERIC_ALL, "GENERIC_ALL"
IDS_FILE_GENERIC_EXECUTE, "FILE_GENERIC_EXECUTE"
IDS_FILE_GENERIC_READ, "FILE_GENERIC_READ"
IDS_FILE_GENERIC_WRITE, "FILE_GENERIC_WRITE"
IDS_FILE_READ_DATA, "FILE_READ_DATA"
IDS_FILE_WRITE_DATA, "FILE_WRITE_DATA"
IDS_FILE_APPEND_DATA, "FILE_APPEND_DATA"
IDS_FILE_READ_EA, "FILE_READ_EA"
IDS_FILE_WRITE_EA, "FILE_WRITE_EA"
IDS_FILE_EXECUTE, "FILE_EXECUTE"
IDS_FILE_DELETE_CHILD, "FILE_DELETE_CHILD"
IDS_FILE_READ_ATTRIBUTES, "FILE_READ_ATTRIBUTES"
IDS_FILE_WRITE_ATTRIBUTES, "FILE_WRITE_ATTRIBUTES"
IDS_MAXIMUM_ALLOWED, "MAXIMUM_ALLOWED"
IDS_ACCESS_SYSTEM_SECURITY, "ACCESS_SYSTEM_SECURITY"
IDS_SPECIFIC_RIGHTS_ALL, "SPECIFIC_RIGHTS_ALL"
IDS_STANDARD_RIGHTS_REQUIRED, "STANDARD_RIGHTS_REQUIRED"
IDS_SYNCHRONIZE, "SYNCHRONIZE"
IDS_WRITE_OWNER, "WRITE_OWNER"
IDS_WRITE_DAC, "WRITE_DAC"
IDS_READ_CONTROL, "READ_CONTROL"
IDS_DELETE, "DELETE"
IDS_STANDARD_RIGHTS_ALL, "STANDARD_RIGHTS_ALL"
}
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
{
IDS_HELP, "Отображает или изменяет списки доступа (ACLs) к файлам\n\n\
CACLS имя_Файла [/T] [/E] [/C] [/G имя:право [...]] [/R имя [...]]\n\
[/P имя:право[...]] [/D имя [...]]\n\
имя_файла Вывод списков ACL.\n\
/T Замена списков ACL для указанных файлов в текущем каталоге\n\
и всех подкаталогах.\n\
/E Редактирование списка ACL вместо его замены.\n\
/C Продолжать при ошибках отказа доступа.\n\
/G имя:право Предоставление указанному пользователю прав доступа.\n\
Право может быть: R Чтение\n\
W Запись\n\
C Изменение (запись)\n\
F Полный контроль\n\
/R имя Отозвать права доступа для указанного пользователя\n\
(верно только с /E).\n\
/P имя:право Заменить права указанного пользователя.\n\
Право может быть: N Нет доступа\n\
R Чтение\n\
W Запись\n\
C Изменение (запись)\n\
F Полный доступ\n\
/D имя Запретить доступ для указанного пользователя.\n\
В команде можно использовать шаблоны для обработки более одного файла.\n\
В команде можно указывать более одного пользователя.\n\n\
Сокращения:\n\
CI - Наследование контейнерами.\n\
ACE будет унаследован папками.\n\
OI - Наследование объектами.\n\
ACE будет унаследован файлами.\n\
IO - Только наследованное.\n\
ACE не будет применён к данному файлу/папке.\n"
IDS_ABBR_CI, "(CI)"
IDS_ABBR_OI, "(OI)"
IDS_ABBR_IO, "(IO)"
IDS_ABBR_FULL, "F"
IDS_ABBR_READ, "R"
IDS_ABBR_WRITE, "W"
IDS_ABBR_CHANGE, "C"
IDS_ABBR_NONE, "N"
IDS_ALLOW, ""
IDS_DENY, "(DENY)"
IDS_SPECIAL_ACCESS, "(специальный доступ:)"
IDS_GENERIC_READ, "GENERIC_READ"
IDS_GENERIC_WRITE, "GENERIC_WRITE"
IDS_GENERIC_EXECUTE, "GENERIC_EXECUTE"
IDS_GENERIC_ALL, "GENERIC_ALL"
IDS_FILE_GENERIC_EXECUTE, "FILE_GENERIC_EXECUTE"
IDS_FILE_GENERIC_READ, "FILE_GENERIC_READ"
IDS_FILE_GENERIC_WRITE, "FILE_GENERIC_WRITE"
IDS_FILE_READ_DATA, "FILE_READ_DATA"
IDS_FILE_WRITE_DATA, "FILE_WRITE_DATA"
IDS_FILE_APPEND_DATA, "FILE_APPEND_DATA"
IDS_FILE_READ_EA, "FILE_READ_EA"
IDS_FILE_WRITE_EA, "FILE_WRITE_EA"
IDS_FILE_EXECUTE, "FILE_EXECUTE"
IDS_FILE_DELETE_CHILD, "FILE_DELETE_CHILD"
IDS_FILE_READ_ATTRIBUTES, "FILE_READ_ATTRIBUTES"
IDS_FILE_WRITE_ATTRIBUTES, "FILE_WRITE_ATTRIBUTES"
IDS_MAXIMUM_ALLOWED, "MAXIMUM_ALLOWED"
IDS_ACCESS_SYSTEM_SECURITY, "ACCESS_SYSTEM_SECURITY"
IDS_SPECIFIC_RIGHTS_ALL, "SPECIFIC_RIGHTS_ALL"
IDS_STANDARD_RIGHTS_REQUIRED, "STANDARD_RIGHTS_REQUIRED"
IDS_SYNCHRONIZE, "SYNCHRONIZE"
IDS_WRITE_OWNER, "WRITE_OWNER"
IDS_WRITE_DAC, "WRITE_DAC"
IDS_READ_CONTROL, "READ_CONTROL"
IDS_DELETE, "DELETE"
IDS_STANDARD_RIGHTS_ALL, "STANDARD_RIGHTS_ALL"
}

View File

@@ -8,9 +8,9 @@
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
/* include localised resources */
#include "lang/En.rc"
#include "lang/Nl.rc"
#include "lang/Ru.rc"
#include "lang/De.rc"
#include "lang/No.rc"
#include "lang/de-DE.rc"
#include "lang/en-US.rc"
#include "lang/it-IT.rc"
#include "lang/nb-NO.rc"
#include "lang/nl-NL.rc"
#include "lang/ru-RU.rc"

View File

@@ -1,155 +0,0 @@
/*
* WineCalc (Ru.rc)
*
* Copyright 2003 James Briggs
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "windows.h"
#include "resource.h"
#include "winecalc.h"
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
{
IDS_APPNAME, "Calculator"
IDS_COPYRIGHT1, "Calculator 5.0. Licensed under LGPL 2"
IDS_COPYRIGHT2 "Copyright 2003, James Briggs"
IDS_COPYRIGHT3 "San Jose, California, USA"
IDS_COPYRIGHT4 "james@ActionMessage.com"
IDS_COPYRIGHT5 "http://www.ActionMessage.com/winecalc/"
IDS_BTN_BACKSPACE, "Backspace"
IDS_BTN_CLEAR_ENTRY, "CE"
IDS_BTN_CLEAR_ALL, "C"
IDS_BTN_MEM_CLEAR, "MC"
IDS_BTN_MEM_RECALL, "MR"
IDS_BTN_MEM_STORE, "MS"
IDS_BTN_MEM_PLUS, "M+"
IDS_BTN_MEM_STATUS_M, "M"
IDS_BTN_SQRT, "sqrt"
IDS_ERR_INVALID_INPUT, "Invalid input for function."
IDS_ERR_DIVIDE_BY_ZERO, "Cannot divide by zero."
IDS_ERR_UNDEFINED, "Result of function is undefined."
}
MAIN_MENU MENU DISCARDABLE
{
POPUP "&Edit" {
MENUITEM "&Copy Ctrl+C", IDM_COPY
MENUITEM "&Paste Ctrl+V", IDM_PASTE
}
POPUP "&View" {
MENUITEM "Standard", IDM_MODE_STANDARD
MENUITEM "Scientific", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Digit Grouping", IDM_DIGIT_GROUPING
}
POPUP "&Help" {
MENUITEM "Help Topics", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "About Calculator", IDM_ABOUT
}
}
SCIMS_MENU MENU DISCARDABLE
{
POPUP "&Edit" {
MENUITEM "&Copy Ctrl+C", IDM_COPY
MENUITEM "&Paste Ctrl+V", IDM_PASTE
}
POPUP "&View" {
MENUITEM "Standard", IDM_MODE_STANDARD
MENUITEM "Scientific", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Hex\tF5", ID_CALC_NS_HEX
MENUITEM "Decimal\tF6", ID_CALC_NS_DEC
MENUITEM "Octal\tF7", ID_CALC_NS_OCT
MENUITEM "Binary\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "Degrees\tF2", ID_CALC_MS_DEGREES
MENUITEM "Radians\tF3", ID_CALC_MS_RADIANS
MENUITEM "Grads\tF4", ID_CALC_MS_GRADS
MENUITEM SEPARATOR
MENUITEM "Digit Grouping", IDM_DIGIT_GROUPING
}
POPUP "&Help" {
MENUITEM "Help Topics", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "About Calculator", IDM_ABOUT
}
}
SCIWS_MENU MENU DISCARDABLE
{
POPUP "&Edit" {
MENUITEM "&Copy Ctrl+C", IDM_COPY
MENUITEM "&Paste Ctrl+V", IDM_PASTE
}
POPUP "&View" {
MENUITEM "Standard", IDM_MODE_STANDARD
MENUITEM "Scientific", IDM_MODE_SCIENTIFIC
MENUITEM SEPARATOR
MENUITEM "Hex\tF5", ID_CALC_NS_HEX
MENUITEM "Decimal\tF6", ID_CALC_NS_DEC
MENUITEM "Octal\tF7", ID_CALC_NS_OCT
MENUITEM "Binary\tF8", ID_CALC_NS_BIN
MENUITEM SEPARATOR
MENUITEM "Qword\tF12", ID_CALC_WS_QWORD
MENUITEM "Dword\tF2", ID_CALC_WS_DWORD
MENUITEM "Word\tF3", ID_CALC_WS_WORD
MENUITEM "Byte\tF4", ID_CALC_WS_BYTE
MENUITEM SEPARATOR
MENUITEM "Digit Grouping", IDM_DIGIT_GROUPING
}
POPUP "&Help" {
MENUITEM "Help Topics", IDM_HELP_TOPICS
MENUITEM SEPARATOR
MENUITEM "About Calculator", IDM_ABOUT
}
}
MAIN_MENU ACCELERATORS
BEGIN
VK_F1, IDV_HELP, VIRTKEY
END
WHATS_THIS_MENU MENU DISCARDABLE
{
POPUP "" {
MENUITEM "What's This?", IDM_WHATS_THIS
}
}
DLG_ABOUT DIALOG 12,0,120,82
CAPTION "About GNU winecalc"
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
BEGIN
DEFPUSHBUTTON "OK", IDOK, 42, 60, 30, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
DLG_STATS DIALOG 12,0,125,78
CAPTION "Statistics Box"
FONT 9, "Tahoma"
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
BEGIN
DEFPUSHBUTTON "&RET", ID_STATS_RET, 4, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&LOAD", ID_STATS_LOAD, 34, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "&CD" ID_STATS_CD, 64, 52, 25, 13, WS_TABSTOP | WS_GROUP
PUSHBUTTON "C&AD", ID_STATS_CAD, 94, 52, 25, 13, WS_TABSTOP | WS_GROUP
END

View File

@@ -22,7 +22,7 @@
#include "resource.h"
#include "winecalc.h"
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
STRINGTABLE DISCARDABLE
{

Some files were not shown because too many files have changed in this diff Show More