Commit graph

22401 commits

Author SHA1 Message Date
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