Art Yerkes [Mon, 4 Sep 2006 05:52:23 +0000 (05:52 +0000)]
Big merge: thanks alex and greatlord. Not a complete merge but most
relevant things for ppc right now.
hal
ntoskrnl
include
lib/rtl
lib/cmlib
some freeldr components
svn path=/branches/powerpc/; revision=23907
James Tabor [Mon, 4 Sep 2006 03:08:18 +0000 (03:08 +0000)]
User32 bitmap.c:
- Patch by Michael Kaufmann
- CopyImage: Handle the flags LR_COPYDELETEORG, LR_CREATEDIBSECTION, and LR_MONOCHROME.
svn path=/trunk/; revision=23906
James Tabor [Mon, 4 Sep 2006 03:03:14 +0000 (03:03 +0000)]
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
Magnus Olsen [Sun, 3 Sep 2006 22:54:22 +0000 (22:54 +0000)]
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
Alex Ionescu [Sun, 3 Sep 2006 21:06:30 +0000 (21:06 +0000)]
- 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
Hervé Poussineau [Sun, 3 Sep 2006 21:02:09 +0000 (21:02 +0000)]
Reorder the file
Add some more defines/typdefs from Wine sspi.h
Fix a few typos
svn path=/trunk/; revision=23902
Alex Ionescu [Sun, 3 Sep 2006 19:57:55 +0000 (19:57 +0000)]
- 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
Aleksey Bragin [Sun, 3 Sep 2006 19:38:16 +0000 (19:38 +0000)]
Add comptypeDIB definition to headers
svn path=/trunk/; revision=23900
Magnus Olsen [Sun, 3 Sep 2006 18:16:08 +0000 (18:16 +0000)]
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
Alex Ionescu [Sun, 3 Sep 2006 17:18:08 +0000 (17:18 +0000)]
- 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
Hervé Poussineau [Sun, 3 Sep 2006 12:32:15 +0000 (12:32 +0000)]
Allow setup to detect extended partitions
svn path=/trunk/; revision=23896
Alex Ionescu [Sun, 3 Sep 2006 07:13:02 +0000 (07:13 +0000)]
- 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
Alex Ionescu [Sun, 3 Sep 2006 06:51:03 +0000 (06:51 +0000)]
- 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
Art Yerkes [Sun, 3 Sep 2006 03:37:20 +0000 (03:37 +0000)]
Fixed, separated mmu related functions. We now get correct translations
in every case.
fat.c: workaround for now. Need to figure out why the fs is b0rked.
svn path=/branches/powerpc/; revision=23893
Magnus Olsen [Sat, 2 Sep 2006 23:58:53 +0000 (23:58 +0000)]
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
Magnus Olsen [Sat, 2 Sep 2006 21:02:03 +0000 (21:02 +0000)]
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
Aleksey Bragin [Sat, 2 Sep 2006 20:32:50 +0000 (20:32 +0000)]
Separate Device Manager code (what was left from it in hub.c) from Hub code
svn path=/trunk/; revision=23890
Alex Ionescu [Sat, 2 Sep 2006 19:53:24 +0000 (19:53 +0000)]
- 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
Alex Ionescu [Sat, 2 Sep 2006 19:12:31 +0000 (19:12 +0000)]
- 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
Alex Ionescu [Sat, 2 Sep 2006 16:36:48 +0000 (16:36 +0000)]
- Fix a bug in RtlFillMemory.
- Fix overlap check comments.
svn path=/trunk/; revision=23887
Alex Ionescu [Sat, 2 Sep 2006 16:19:00 +0000 (16:19 +0000)]
- 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
Aleksey Bragin [Sat, 2 Sep 2006 11:27:36 +0000 (11:27 +0000)]
Add forgotten "xs-native.cpp" to the MSVC project of ROS Explorer
svn path=/trunk/; revision=23885
The Wine Synchronizer [Sat, 2 Sep 2006 06:27:09 +0000 (06:27 +0000)]
Autosyncing with Wine HEAD
svn path=/trunk/; revision=23883
The Wine Synchronizer [Sat, 2 Sep 2006 06:24:20 +0000 (06:24 +0000)]
Autosyncing with Wine HEAD
svn path=/trunk/; revision=23882
Alex Ionescu [Sat, 2 Sep 2006 05:10:16 +0000 (05:10 +0000)]
- 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
Alex Ionescu [Sat, 2 Sep 2006 04:40:09 +0000 (04:40 +0000)]
- 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
Alex Ionescu [Sat, 2 Sep 2006 02:59:44 +0000 (02:59 +0000)]
- More kernel initialization changes and cleanups.
- Start support for an initial boot thread.
svn path=/trunk/; revision=23879
Thomas Bluemel [Fri, 1 Sep 2006 23:18:23 +0000 (23:18 +0000)]
Fix creating the console system menu items
svn path=/trunk/; revision=23878
Hervé Poussineau [Fri, 1 Sep 2006 23:06:32 +0000 (23:06 +0000)]
Add softpub.h header
svn path=/trunk/; revision=23877
The Wine Synchronizer [Fri, 1 Sep 2006 22:47:57 +0000 (22:47 +0000)]
Autosyncing with Wine HEAD
svn path=/trunk/; revision=23876
Hervé Poussineau [Fri, 1 Sep 2006 22:41:31 +0000 (22:41 +0000)]
Add a stub sensapi.dll. This is a step to fix bug 1751
svn path=/trunk/; revision=23875
Hervé Poussineau [Fri, 1 Sep 2006 22:10:56 +0000 (22:10 +0000)]
Add some error codes (taken from Wine)
svn path=/trunk/; revision=23874
Thomas Bluemel [Fri, 1 Sep 2006 21:53:31 +0000 (21:53 +0000)]
Don't call BeginPaint/EndPaint while processing a WM_DRAWITEM message
svn path=/trunk/; revision=23873
Thomas Bluemel [Fri, 1 Sep 2006 18:56:06 +0000 (18:56 +0000)]
disable code that dereferences a random pointer
svn path=/trunk/; revision=23871
Thomas Bluemel [Fri, 1 Sep 2006 18:41:00 +0000 (18:41 +0000)]
Don't leak a reference in NtReleaseSemaphore() in case KeReleaseSemaphore() raises and exception
svn path=/trunk/; revision=23870
Thomas Bluemel [Fri, 1 Sep 2006 18:20:44 +0000 (18:20 +0000)]
remove superfluous dereference
svn path=/trunk/; revision=23869
Ged Murphy [Fri, 1 Sep 2006 16:55:36 +0000 (16:55 +0000)]
- 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
Eric Kohl [Fri, 1 Sep 2006 15:49:50 +0000 (15:49 +0000)]
Fix indentation, no code changes.
svn path=/trunk/; revision=23867
Alex Ionescu [Fri, 1 Sep 2006 13:13:08 +0000 (13:13 +0000)]
- More initialization cleanup.
svn path=/trunk/; revision=23866
Hervé Poussineau [Fri, 1 Sep 2006 12:58:56 +0000 (12:58 +0000)]
Fix build when compilation units are enabled for usetup.c
svn path=/trunk/; revision=23865
Alex Ionescu [Fri, 1 Sep 2006 12:38:57 +0000 (12:38 +0000)]
- Fix bugs in RtlCompareMemory, RtlCompareMemoryULong
svn path=/trunk/; revision=23864
Eric Kohl [Fri, 1 Sep 2006 11:16:32 +0000 (11:16 +0000)]
Remove trailing whitespace
svn path=/trunk/; revision=23863
Hervé Poussineau [Fri, 1 Sep 2006 09:53:33 +0000 (09:53 +0000)]
Fix option selection in bootcd
Fix SetupOpenFileQueue, SetupCloseFileQueue and SetupCommitFileQueueW prototypes to match setupapi.dll ones
svn path=/trunk/; revision=23862
Art Yerkes [Fri, 1 Sep 2006 09:46:44 +0000 (09:46 +0000)]
Most of an implementation of page lookup for PPC. Written for
understanding and also to provide a way to inspect virtual to phyiscal
translations. We should and will do this with ofw most of the time, but
we'll have to do it ourselves in the delicate time before jumping to
ntoskrnl.
svn path=/branches/powerpc/; revision=23861
Art Yerkes [Fri, 1 Sep 2006 06:53:49 +0000 (06:53 +0000)]
Adding methods to inquire about virtual memory setup.
svn path=/branches/powerpc/; revision=23858
Alex Ionescu [Fri, 1 Sep 2006 03:19:25 +0000 (03:19 +0000)]
- Add back defines accidentaly removed.
svn path=/trunk/; revision=23854
Alex Ionescu [Fri, 1 Sep 2006 03:15:32 +0000 (03:15 +0000)]
- Fix bug in RtlZero, Fill, Move memory where the last 1-3 bytes weren't being copied.
svn path=/trunk/; revision=23853
Alex Ionescu [Fri, 1 Sep 2006 03:05:30 +0000 (03:05 +0000)]
- 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
Ged Murphy [Thu, 31 Aug 2006 22:51:28 +0000 (22:51 +0000)]
forgot to turn debugging off
svn path=/trunk/; revision=23850
Alex Ionescu [Thu, 31 Aug 2006 18:10:11 +0000 (18:10 +0000)]
- 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
Ged Murphy [Thu, 31 Aug 2006 17:59:02 +0000 (17:59 +0000)]
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
Eric Kohl [Thu, 31 Aug 2006 17:16:19 +0000 (17:16 +0000)]
Pass additional arguments to a service when it is started by a call to StartService.
svn path=/trunk/; revision=23846
Alex Ionescu [Thu, 31 Aug 2006 17:10:58 +0000 (17:10 +0000)]
- Remove some deprecated code and custom ROS exports/code.
svn path=/trunk/; revision=23845
Thomas Bluemel [Thu, 31 Aug 2006 16:56:49 +0000 (16:56 +0000)]
Add stubs for the condition variable functions
svn path=/trunk/; revision=23844
Aleksey Bragin [Thu, 31 Aug 2006 16:08:17 +0000 (16:08 +0000)]
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
Aleksey Bragin [Thu, 31 Aug 2006 14:14:42 +0000 (14:14 +0000)]
Sylvain Petreolle: Partly fix unicode build of cmd (a typo)
svn path=/trunk/; revision=23842
Hervé Poussineau [Thu, 31 Aug 2006 14:11:33 +0000 (14:11 +0000)]
Add ATTACH_PARENT_PROCESS constant
svn path=/trunk/; revision=23841
Hervé Poussineau [Thu, 31 Aug 2006 12:35:39 +0000 (12:35 +0000)]
Remove some code duplication when calling PopupError
Add ConAttachConsole stub
svn path=/trunk/; revision=23840
Hervé Poussineau [Thu, 31 Aug 2006 12:31:34 +0000 (12:31 +0000)]
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
Hervé Poussineau [Thu, 31 Aug 2006 11:09:05 +0000 (11:09 +0000)]
Fix Linux build (filename case problem...) Thanks gregj on IRC
svn path=/trunk/; revision=23837
Hervé Poussineau [Thu, 31 Aug 2006 09:13:03 +0000 (09:13 +0000)]
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
Art Yerkes [Thu, 31 Aug 2006 08:01:30 +0000 (08:01 +0000)]
Some intermediate work. We start loading the kernel now.
Working on early boot memory mapping. We'll rely heavily on open
firmware until we're on our own page table.
svn path=/branches/powerpc/; revision=23835
Hervé Poussineau [Thu, 31 Aug 2006 06:14:25 +0000 (06:14 +0000)]
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
Alex Ionescu [Thu, 31 Aug 2006 05:25:58 +0000 (05:25 +0000)]
- 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
Alex Ionescu [Thu, 31 Aug 2006 04:10:33 +0000 (04:10 +0000)]
- 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
Pablo Borobia [Thu, 31 Aug 2006 03:12:14 +0000 (03:12 +0000)]
Testing commit
svn path=/trunk/; revision=23831
Alex Ionescu [Thu, 31 Aug 2006 01:20:55 +0000 (01:20 +0000)]
- 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
Thomas Bluemel [Wed, 30 Aug 2006 21:47:38 +0000 (21:47 +0000)]
Fix difference in signedness warnings
svn path=/trunk/; revision=23829
Thomas Bluemel [Wed, 30 Aug 2006 21:45:17 +0000 (21:45 +0000)]
Use the new ProbeForWriteIoStatusBlock macro
svn path=/trunk/; revision=23828
Thomas Bluemel [Wed, 30 Aug 2006 21:44:12 +0000 (21:44 +0000)]
- 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
Magnus Olsen [Wed, 30 Aug 2006 21:17:53 +0000 (21:17 +0000)]
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
Thomas Bluemel [Wed, 30 Aug 2006 20:59:32 +0000 (20:59 +0000)]
Revert r23824. This needs to go into the clipboard branch for now.
svn path=/trunk/; revision=23825
Pablo Borobia [Wed, 30 Aug 2006 20:56:17 +0000 (20:56 +0000)]
* added GetLayout definition
* added Clipboards definitions
* added GetLastInputInfo definition
svn path=/trunk/; revision=23824
Thomas Bluemel [Wed, 30 Aug 2006 20:40:07 +0000 (20:40 +0000)]
Revert r23810, r23811, r23813. The clipboard changes are in the clipboard branch for now.
svn path=/trunk/; revision=23823
Hervé Poussineau [Wed, 30 Aug 2006 20:37:56 +0000 (20:37 +0000)]
mpr.dll can now be autosynced with Wine
svn path=/trunk/; revision=23822
Ged Murphy [Wed, 30 Aug 2006 20:37:49 +0000 (20:37 +0000)]
update msi wine regtest
svn path=/trunk/; revision=23821
Ged Murphy [Wed, 30 Aug 2006 20:28:33 +0000 (20:28 +0000)]
update comctl32 winetest
svn path=/trunk/; revision=23818
Hervé Poussineau [Wed, 30 Aug 2006 20:16:11 +0000 (20:16 +0000)]
avifil32.dll can now be autosynced with Wine
svn path=/trunk/; revision=23816
Hervé Poussineau [Wed, 30 Aug 2006 20:01:42 +0000 (20:01 +0000)]
wineimport.cmd (>= r23814) is now able to handle msi.dll autosync. Mark it as such.
svn path=/trunk/; revision=23815
Pablo Borobia [Wed, 30 Aug 2006 19:46:40 +0000 (19:46 +0000)]
* Added more clipboard regression tests
svn path=/trunk/; revision=23813
Hervé Poussineau [Wed, 30 Aug 2006 19:41:09 +0000 (19:41 +0000)]
Add msi_ros.diff
svn path=/trunk/; revision=23812
Pablo Borobia [Wed, 30 Aug 2006 19:35:54 +0000 (19:35 +0000)]
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
Pablo Borobia [Wed, 30 Aug 2006 19:35:22 +0000 (19:35 +0000)]
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
Alex Ionescu [Wed, 30 Aug 2006 19:29:16 +0000 (19:29 +0000)]
- 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
Hervé Poussineau [Wed, 30 Aug 2006 19:24:26 +0000 (19:24 +0000)]
Update MSI to current Wine version.
Autosync will be put in place very soon for this dll.
svn path=/trunk/; revision=23808
Ged Murphy [Wed, 30 Aug 2006 19:18:49 +0000 (19:18 +0000)]
[WINESYNC]
update comctl32 to Wine_0.9.20
svn path=/trunk/; revision=23807
Thomas Bluemel [Wed, 30 Aug 2006 19:02:42 +0000 (19:02 +0000)]
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
Hervé Poussineau [Wed, 30 Aug 2006 18:08:21 +0000 (18:08 +0000)]
Fix MsiGetFeatureStateA/W and MsiGetComponentStateA/W prototypes
svn path=/trunk/; revision=23805
Magnus Olsen [Wed, 30 Aug 2006 17:51:36 +0000 (17:51 +0000)]
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
Alex Ionescu [Wed, 30 Aug 2006 17:01:58 +0000 (17:01 +0000)]
- Fix KeRaiseUserException (can't use "return" from SEH_HANDLE).
svn path=/trunk/; revision=23803
Alex Ionescu [Wed, 30 Aug 2006 16:58:12 +0000 (16:58 +0000)]
- 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
Eric Kohl [Wed, 30 Aug 2006 10:53:37 +0000 (10:53 +0000)]
- fix indentation and remove trailing whitespace
- StartServiceA/W: terminate argument buffer with a double zero.
svn path=/trunk/; revision=23801
Hervé Poussineau [Wed, 30 Aug 2006 10:40:59 +0000 (10:40 +0000)]
Add missing includes in .rc file
Sort them in alphabetical order
svn path=/trunk/; revision=23800
Magnus Olsen [Wed, 30 Aug 2006 10:13:01 +0000 (10:13 +0000)]
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
Johannes Anderwald [Wed, 30 Aug 2006 09:45:08 +0000 (09:45 +0000)]
* remove useless cast
svn path=/trunk/; revision=23798
Johannes Anderwald [Wed, 30 Aug 2006 09:17:47 +0000 (09:17 +0000)]
- fix definition of FONTENUMPROC
svn path=/trunk/; revision=23797
Alex Ionescu [Wed, 30 Aug 2006 06:56:06 +0000 (06:56 +0000)]
- Update kernel fun.
svn path=/trunk/; revision=23796
Alex Ionescu [Wed, 30 Aug 2006 06:52:10 +0000 (06:52 +0000)]
- 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
Alex Ionescu [Wed, 30 Aug 2006 05:22:56 +0000 (05:22 +0000)]
- 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
Alex Ionescu [Wed, 30 Aug 2006 01:22:41 +0000 (01:22 +0000)]
- Jesus Christ... will Hell freeze over before someone finally listens and implements a proper PE loader in Freeloader?
svn path=/trunk/; revision=23793