- 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
* 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
- 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
- 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
- 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
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
- 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
- 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
- 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
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
- 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
- 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
- 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