Sir Richard [Tue, 9 Feb 2010 02:00:52 +0000 (02:00 +0000)]
[NTOS]: Sync up KiDispatchException with x86 code (and going back to C comment formatting).
svn path=/trunk/; revision=45509
Sir Richard [Tue, 9 Feb 2010 02:00:15 +0000 (02:00 +0000)]
[NTOS]: Get rid of fixed TLB entries on ARM, I don't think that idea makes sense (unlike IA64 or MIPS where they are lot more flexible), since they only allow 1MB sections, not pages.
svn path=/trunk/; revision=45508
Sir Richard [Tue, 9 Feb 2010 01:54:14 +0000 (01:54 +0000)]
[NTOS]: Forgot to setup an IRQ stack, the kernel was working by magic since in previous incarnations of the ARM port, 0xFFFFyyyy was mapped, so a stack of 0 worked (going downwards).
[NTOS]: Now FreeLDR just calls the KiSystemStartup routine correctly, without any "magic", so fix the code to use a1 instead of a2 (argument 1/2).
svn path=/trunk/; revision=45507
Sir Richard [Tue, 9 Feb 2010 01:47:54 +0000 (01:47 +0000)]
[ARM SDK]: Use real Versatile base addresses instead of the old hacked FreeLDR base addresses.
svn path=/trunk/; revision=45506
Sir Richard [Tue, 9 Feb 2010 01:46:01 +0000 (01:46 +0000)]
[ARMLLB]: PutChar should be a UCHAR routine, this way we can print characters above 127 (extended ASCII). This is needed for the progress bar, for example.
svn path=/trunk/; revision=45505
Sir Richard [Tue, 9 Feb 2010 01:44:26 +0000 (01:44 +0000)]
[ARMLLB]: Fix typo.
svn path=/trunk/; revision=45504
Daniel Reimer [Mon, 8 Feb 2010 19:35:26 +0000 (19:35 +0000)]
Giant German Language Fix Patch by "tux."
I skipped xcopy, winhlp32 and wordpad because they are wine synched and expand, because its not translated anymore.
Fix some BOMs i did not see at wine synching.
svn path=/trunk/; revision=45501
Daniel Reimer [Mon, 8 Feb 2010 16:38:41 +0000 (16:38 +0000)]
Fix build breakage
svn path=/trunk/; revision=45500
Daniel Reimer [Mon, 8 Feb 2010 10:49:41 +0000 (10:49 +0000)]
Sync winfile to Wine 1.1.38
svn path=/trunk/; revision=45496
Daniel Reimer [Mon, 8 Feb 2010 10:49:03 +0000 (10:49 +0000)]
Sync wordpad, write and xcopy to Wine 1.1.38
svn path=/trunk/; revision=45495
Dmitry Gorbachev [Sun, 7 Feb 2010 19:56:49 +0000 (19:56 +0000)]
Simplify a bit, remove unused macros.
svn path=/trunk/; revision=45492
Dmitry Gorbachev [Sun, 7 Feb 2010 19:56:06 +0000 (19:56 +0000)]
Fix bug #5156.
svn path=/trunk/; revision=45491
Dmitry Gorbachev [Sun, 7 Feb 2010 19:52:10 +0000 (19:52 +0000)]
Fix formatting.
svn path=/trunk/; revision=45490
Eric Kohl [Sun, 7 Feb 2010 17:01:57 +0000 (17:01 +0000)]
Fix LSAPR_POLICY_INFORMATION and associated types.
svn path=/trunk/; revision=45489
Johannes Anderwald [Sun, 7 Feb 2010 15:57:25 +0000 (15:57 +0000)]
[DSOUND]
- Fix broken assert
- Fix calculation of length for the first locked audio buffer
svn path=/trunk/; revision=45488
Johannes Anderwald [Sun, 7 Feb 2010 15:35:00 +0000 (15:35 +0000)]
[PORTCLS]
- Reset number of mappings and available data when a reset request arrives
- Handle case where a get position request appears before an audio buffer arrives which results in divide by zero exception
svn path=/trunk/; revision=45487
Eric Kohl [Sun, 7 Feb 2010 13:51:25 +0000 (13:51 +0000)]
Implement LsaEnumerateAccountRights.
svn path=/trunk/; revision=45484
Sir Richard [Sun, 7 Feb 2010 03:01:19 +0000 (03:01 +0000)]
[NTOS]: Add a branch-to-self to start testing kernel code.
[ARMLLB]: Fix incorrect frame buffer size calculation.
[FREELDR]: Finish paging setup. Now we're able to boot to the kernel entrypoint at 0x808D3000, but I'm not happy with the memory descriptors.
svn path=/trunk/; revision=45480
Christoph von Wittich [Sun, 7 Feb 2010 00:28:22 +0000 (00:28 +0000)]
[AVIFIL32]
sync avifil32 to wine 1.1.38
svn path=/trunk/; revision=45479
Christoph von Wittich [Sun, 7 Feb 2010 00:13:49 +0000 (00:13 +0000)]
[MSVCRT_WINETEST]
sync msvcrt_winetest to wine 1.1.38
svn path=/trunk/; revision=45478
Sir Richard [Sun, 7 Feb 2010 00:09:10 +0000 (00:09 +0000)]
[FREELDR]: Start rewrite of eVb's messed up FreeLDR paging code. The new code is all dynamic and makes much better decisions as to the layout of the address space and how things will be implemented. Already, we are saving 16MB of VA. For now we still consume a large (1 MB) page for simplicity for the page directory, but that can go away later. I will post a diagram later if time permits. We get to MMU enabled and the PDE_BASE mapping works.
[NTOS]: Start redefining ARMv6 paging structures.
svn path=/trunk/; revision=45477
Christoph von Wittich [Sun, 7 Feb 2010 00:07:07 +0000 (00:07 +0000)]
[SHELL32]
fix debug channel (merge from wine)
svn path=/trunk/; revision=45476
Christoph von Wittich [Sun, 7 Feb 2010 00:06:04 +0000 (00:06 +0000)]
[SHELL32]
don't print the function name twice in ERR (merge from wine)
svn path=/trunk/; revision=45475
Eric Kohl [Sat, 6 Feb 2010 23:06:57 +0000 (23:06 +0000)]
Simplify the policy handle creation and destruction. This fixes two winetest failures.
svn path=/trunk/; revision=45473
Christoph von Wittich [Sat, 6 Feb 2010 21:46:26 +0000 (21:46 +0000)]
[QEDIT]
sync qedit to wine 1.1.38
svn path=/trunk/; revision=45472
Christoph von Wittich [Sat, 6 Feb 2010 21:35:37 +0000 (21:35 +0000)]
[MSXML3_WINETEST]
sync msxml3_winetest to wine 1.1.38
svn path=/trunk/; revision=45471
Christoph von Wittich [Sat, 6 Feb 2010 21:34:28 +0000 (21:34 +0000)]
[MSXML3]
sync msxml3 to wine 1.1.38
svn path=/trunk/; revision=45470
Christoph von Wittich [Sat, 6 Feb 2010 21:29:15 +0000 (21:29 +0000)]
[MSI_WINETEST]
sync msi_winetest to wine 1.1.38
svn path=/trunk/; revision=45469
Christoph von Wittich [Sat, 6 Feb 2010 21:28:28 +0000 (21:28 +0000)]
[MSI]
sync msi to wine 1.1.38
svn path=/trunk/; revision=45468
Sir Richard [Sat, 6 Feb 2010 14:58:23 +0000 (14:58 +0000)]
[NTOS]: Combine all exit trap stubs into a single function with flags (same thing we did for the entry stub). Now there are only 15 lines of ASM instead of 60.
svn path=/trunk/; revision=45462
Eric Kohl [Sat, 6 Feb 2010 14:10:18 +0000 (14:10 +0000)]
Convert offset to pointers when enumeration functions return ERROR_SUCCESS or ERROR_MORE_DATA because there is something to convert in both cases.
svn path=/trunk/; revision=45459
evb [Sat, 6 Feb 2010 00:49:30 +0000 (00:49 +0000)]
- Make boot.s just stub to force load address, since ARM LLB already does setup. Will get rid of later.
- Get rid of all .pagedata stuff from boot.s. Now define simpler static page tables. Will probably get rid of later.
- Fix memory map to include framebuffer, had forgotten about it. Moved framebuffer to the nearest hole found. It happens to be 0xA0000, nice coincidence (matches x86!).
- Switch to nicer 8x16 font instead of 8x13. Now FreeLDR UI looks 99% identical to real PC.
- Start writing new ARMv6 Paging Code. Enable extended page tables and access bit, redefine structures, only for OS Loader for now.
- Identity map low-memory 1MB and MMIO 2MB space at 0x10000000 for Versatile. Need to make this board-specific later.
- Need to investigate sharing code with WinLDR.
- MMU enabled and Printf/LCD output works!.
svn path=/trunk/; revision=45440
evb [Thu, 4 Feb 2010 20:11:48 +0000 (20:11 +0000)]
- Reading MBR from RAMDISK does not work since RAMDISK starts at BootSector (rdoffset) and disk sector functions are NULL. Build bogus signature/checksum for now, unless MBR really needed later.
- Now FreeLDR crashes no more and arrives at FrLdrStartup to boot kernel and setup paging.
svn path=/trunk/; revision=45425
evb [Thu, 4 Feb 2010 19:52:13 +0000 (19:52 +0000)]
- Define memory map structure for Versatile board/QEMU and send to OS Loader.
- Many hack removed.
- Better efficency use of memory layout.
- Region at 0x800000 now available for FreeLDR use to load kernel files.
- Implement simple ArmDiskNormalizeSystemPath so boot is allowed to happen.
- Use better stack address as defined in memory map.
- Now FreeLDR loads all files correctly from disk and is ready to jump to kernel. ARMv5 paging code must be rewritten before that can happen.
svn path=/trunk/; revision=45424
evb [Thu, 4 Feb 2010 19:49:25 +0000 (19:49 +0000)]
- Change NANDFlash again for Versatile support. Now the LLB and OS Loader are created in one binary blob (loaded with -kernel), while the RAMDISK is loaded with -initrd.
- Now the only complication is that RAMDISK loaded at 0x80000 which will conflict with the 0x800000 range where kernel loads. Could move RAMDISK in code through LLB, but that would be very expensive (shift by 16MB up). Instead, NANDflash creates ramdisk image starting at offset 16MB. This way, emulator thinks it's loading at 0x80000, but actually loads at 0x1800000. Would be better if QEMU not hardcoded the INITRD_LOAD_ADDR...
svn path=/trunk/; revision=45423
Sir Richard [Thu, 4 Feb 2010 16:47:23 +0000 (16:47 +0000)]
[RBUILD]: Fix make install and make install_registry. mkhive command was wrong (MKHIVE_TARGET instead of mkhive_TARGET) and so the executable was never launched.
svn path=/trunk/; revision=45422
evb [Thu, 4 Feb 2010 15:59:22 +0000 (15:59 +0000)]
- Fix text output
- Allow for more than just one parameter on the bootROM command line (sepearate with commas).
- Rdoffset is not hardcoded anymore, but passed on cmdline. Allows using images with different partition offsets.
svn path=/trunk/; revision=45420
Aleksey Bragin [Thu, 4 Feb 2010 14:49:40 +0000 (14:49 +0000)]
- Update README.WINE.
svn path=/trunk/; revision=45419
Aleksey Bragin [Thu, 4 Feb 2010 14:40:36 +0000 (14:40 +0000)]
[base/system/expand]
- Update expand utility to Wine-1.1.37. Last update happened 7 years ago and since then it was translated into 20 languages. Sorry to all the translators but the preference is given to a working untranslated version rather than a non-working localized one.
See issue #4637 for more details.
svn path=/trunk/; revision=45418
evb [Thu, 4 Feb 2010 08:02:30 +0000 (08:02 +0000)]
- Refactor keyboard support to match serial. Now reading a key and waiting for a key are two things.
- Implement KbHit Firmware routine.
- It is now possible to interact with FreeLDR using the keyboard.
svn path=/trunk/; revision=45416
evb [Thu, 4 Feb 2010 07:55:26 +0000 (07:55 +0000)]
- Switch to bootvid 8x13 font (closer to PC/VGA experience).
- Fix LlbFwVideoGetDisplaySize return characters X/Y, not pixels. Now "Press F8 for advanced menu" shows".
svn path=/trunk/; revision=45415
evb [Thu, 4 Feb 2010 07:22:03 +0000 (07:22 +0000)]
- Add PL031 RTC code for Versatile.
- Add RTC time to TimeInfo convert.
- Implement FirmWare GetTime function. Countdown in FreeLDR now working.
svn path=/trunk/; revision=45414
evb [Thu, 4 Feb 2010 06:44:06 +0000 (06:44 +0000)]
- Add GetTime stub, bump version to 1.4.
- Implement function for drawing character on the screen when request come from firmware.
- Tui.c assumes all screens are x86 VGA Consoles with 8-bit character and 8-bit attribute. On ARM, call Mach function to draw character instead of drawing into ScreenMemory off-screen buffer.
- FreeLDR menu now appears, need GetTime for counter.
svn path=/trunk/; revision=45413
evb [Thu, 4 Feb 2010 06:09:03 +0000 (06:09 +0000)]
- Implement some simple video routines.
- Fix usable RAM not to include loader code and ram disk (up to 32MB).
svn path=/trunk/; revision=45412
evb [Thu, 4 Feb 2010 05:43:02 +0000 (05:43 +0000)]
- Add stubs for video mach functions and update minor to 1.3.
svn path=/trunk/; revision=45411
evb [Thu, 4 Feb 2010 01:24:45 +0000 (01:24 +0000)]
- Add support for ram disk offset (.IMG file is a RAW image, partition starts later...)
- Fix ram disk support in FreeLDR, ARC changes had broken support for booting FreeLDR (not just the Windows) from a ram disk. ARM port now initializes ramdisk as an FS device.
- Fix hardcoded DISKREADBUFFER and FILESYSBUFFER values. On ARM these will be dynamically selected for each board (need to improve this through LLB).
- Now FreeLDR.ini is read, and crash happens because UI routines are all NULL.
svn path=/trunk/; revision=45405
Cameron Gutman [Thu, 4 Feb 2010 00:02:45 +0000 (00:02 +0000)]
- Merge r45400 from aicom-network-branch to fix the crash that occurs when Steam starts
svn path=/trunk/; revision=45404
evb [Wed, 3 Feb 2010 23:17:16 +0000 (23:17 +0000)]
- Enable RAMDISK support in LLB.
- Build commandline for OS Loader (FreeLDR).
- Now ready to start loading freeldr.ini
svn path=/trunk/; revision=45403
evb [Wed, 3 Feb 2010 23:16:26 +0000 (23:16 +0000)]
- Fix bugs.
- Enable non-OOB mode for Versatile.
svn path=/trunk/; revision=45402
Eric Kohl [Wed, 3 Feb 2010 20:46:21 +0000 (20:46 +0000)]
- Implement GetEventLogInformation.
- OpenBackupEventLogA, OpenEventLogA, RegisterEventSourceA and ReportEventA: Call the ANSI RPC-Server Function directly instead of converting arguments to Unicode and calling the matching Unicode Function.
- OpenEventLogW: Fix argument checks.
svn path=/trunk/; revision=45401
Sir Richard [Wed, 3 Feb 2010 17:47:41 +0000 (17:47 +0000)]
[VMX_SVGA]: Begin implementation of VMWARE SVGA-II Video Card Driver.
svn path=/trunk/; revision=45396
Johannes Anderwald [Wed, 3 Feb 2010 12:48:27 +0000 (12:48 +0000)]
[WDMAUD.DRV]
- Cleanup code
- Fix a bug which made the caller assume that a wave handle has already been open.
- define a macro which appends a postfix depending on wether USE_MMIXER_LIB has been defined
svn path=/trunk/; revision=45390
Ged Murphy [Wed, 3 Feb 2010 11:36:49 +0000 (11:36 +0000)]
Fix typo in vcproj generator code
svn path=/trunk/; revision=45389
Daniel Reimer [Wed, 3 Feb 2010 07:34:59 +0000 (07:34 +0000)]
Bug 4342: Update log2lines to Version 1.12b. (Jan Roeloffzen)
svn path=/trunk/; revision=45387
evb [Wed, 3 Feb 2010 03:14:59 +0000 (03:14 +0000)]
- Flesh out more code.
- Support ATAG Linux/ARMBoot architecture defined-structures. These are used by all ARMBoot-compatible loaders (QEmu, U-boot, etc).
- Read RAMDisk, RAM, Command Line from ATAGs (use -append boot-device=RAMDISK).
- Make environment-get function read command-line.
- Allocate RAM memory structure portably.
- Validate board info on boot.
svn path=/trunk/; revision=45386
evb [Wed, 3 Feb 2010 01:19:26 +0000 (01:19 +0000)]
- Implement logical keyboard interface. Converts scan code to ASCII codes (just ok).
- Implement firmware ConsGetCh based on keyboard interface.
- Implement KMI (Keyboard & Mouse Interface) PL050 driver for Versatile to init PS/2 and read keyboard scancodes. Can now press ENTER/whatever when FreeLDR gives "Cannot find freeldr.ini" error.
- More fixes
svn path=/trunk/; revision=45385
Sir Richard [Tue, 2 Feb 2010 22:56:13 +0000 (22:56 +0000)]
[NTOS]: Yet another fix for KiEnterInterruptTrap: Set correct DS/ES before touching the TrapFrame.
[NTOS]: Make this operation an inline so any possible future code will not make this mistake twice.
Thanks to Physicus for the bug report.
svn path=/trunk/; revision=45381
Christoph von Wittich [Tue, 2 Feb 2010 17:28:10 +0000 (17:28 +0000)]
[FREELDR]
fix a typo
svn path=/trunk/; revision=45380
evb [Tue, 2 Feb 2010 17:21:19 +0000 (17:21 +0000)]
- Change ARM loading architecture to match EFI/Firmware model. LLB provides "firmware" routines, FreeLDR obtains "firmware" routines from the ARM block, and sets them as the Machine VTable. All board-specific FreeLDR code gone now.
- Start work on UI. Serial output is now only for debugging, not usual console.
- Need PL045 Keyboard code to handle KbHit/GetCh.
- Have PL011 code ready for MachVideo routines, coming soon...
- Start stub of environment functions.
svn path=/trunk/; revision=45379
Timo Kreuzer [Tue, 2 Feb 2010 00:23:59 +0000 (00:23 +0000)]
Update Doxyfile to version 1.6.2 with the following changes:
- INHERIT_DOCS enabled
- SEPARATE_MEMBER_PAGES enabled: will prevent incredible huge html files generated from large headers.
- Add *.cc and *.hxx extensions
- REFERENCED_BY_RELATION enabled
- VERBATIM_HEADERS disabled
- ENABLE_PREPROCESSING enabled, so we can see macros, too
svn path=/trunk/; revision=45378
evb [Tue, 2 Feb 2010 00:14:14 +0000 (00:14 +0000)]
- More fixes
- Plugin support for booting FreeLDR when used as initrd on QEMU command-line.
svn path=/trunk/; revision=45377
evb [Mon, 1 Feb 2010 21:07:03 +0000 (21:07 +0000)]
- Forgot to change SARCH back to Versatile.
svn path=/trunk/; revision=45376
Danny Götte [Mon, 1 Feb 2010 20:16:42 +0000 (20:16 +0000)]
acivate server based search for doxygen
svn path=/trunk/; revision=45375
Eric Kohl [Mon, 1 Feb 2010 19:45:50 +0000 (19:45 +0000)]
Reset a services thread and process ids when the service has been stopped. Fixes one more test.
svn path=/trunk/; revision=45374
evb [Mon, 1 Feb 2010 19:28:40 +0000 (19:28 +0000)]
- Fix bugs.
- Enable serial output.
svn path=/trunk/; revision=45373
evb [Mon, 1 Feb 2010 18:33:24 +0000 (18:33 +0000)]
- ARM LLB for OMAP3/Beagle (test with QEMU-Maemo) and Versatile (test with QEMU).
- Boots to blue screen with white text to indicate checkpoint.
- More cleanup/work needed.
- Will post Wiki on testing info soon.
svn path=/trunk/; revision=45372
evb [Mon, 1 Feb 2010 18:29:19 +0000 (18:29 +0000)]
- NANDFlash tool for building OMAP3 FLASH Images for DevBoard and QEMU-Maemo.
svn path=/trunk/; revision=45371
James Tabor [Mon, 1 Feb 2010 15:13:35 +0000 (15:13 +0000)]
[Gdi32]
- Miscellaneous implementations and forwards.
svn path=/trunk/; revision=45370
Sir Richard [Mon, 1 Feb 2010 03:51:45 +0000 (03:51 +0000)]
[ARM]: Fix the ARM build, hopefully without breaking the x86 build in the process. Sorry buds!
svn path=/trunk/; revision=45368
Sir Richard [Mon, 1 Feb 2010 03:47:42 +0000 (03:47 +0000)]
[NTOS]: Try to fix KiEnterInterrupt once and for all. Only set segments for V8086 or user traps.
[NTOS]: Rework the way traps with possibly dirty DS/ES segments are handled. The FAST V86 hack is gone. Intead, created a "safe" version of IsTrapV86 and IsTrapUser that does an SS segment dereference (known good). The condition is then based on this, and the segments are saved and loaded safely. Note that for GCC 4.5 the ASM can be improved to directly branch or not to a label, instead of returning a boolean that is then further compared before branching.
This will fix certain exceptions that were seen in KeUpdateSystemTime, and might fix the sneaking HalpTrap0D while not in V86 mode (no promises).
svn path=/trunk/; revision=45367
Eric Kohl [Sun, 31 Jan 2010 22:22:50 +0000 (22:22 +0000)]
GetServiceDisplayNameA/W and GetServiceKeyNameA/W must return an empty String if the given Buffer is too small. This fixes 6 tests.
svn path=/trunk/; revision=45366
Eric Kohl [Sun, 31 Jan 2010 21:00:45 +0000 (21:00 +0000)]
[FORMATTING]
- Fix indentation. No code changes.
svn path=/trunk/; revision=45364
Aleksey Bragin [Sun, 31 Jan 2010 20:35:06 +0000 (20:35 +0000)]
[FORMATTING]
- Reformat dma.c, no code change.
svn path=/trunk/; revision=45363
Eric Kohl [Sun, 31 Jan 2010 20:28:04 +0000 (20:28 +0000)]
- Implement RCreateServiceA.
- Make CreateServiceA call RCreateServiceA instead of CreateServiceW.
svn path=/trunk/; revision=45362
Eric Kohl [Sun, 31 Jan 2010 19:44:02 +0000 (19:44 +0000)]
Implement basic version of PNP_CreateKey.
svn path=/trunk/; revision=45361
Johannes Anderwald [Sun, 31 Jan 2010 19:09:30 +0000 (19:09 +0000)]
[MMEBUDDY]
- Hackfix corruption of audio buffer list which made the playback thread spin forever on an already played buffer.
- Tested with Winamp / VLC / mplay32 with Vbox 3.1.2
svn path=/trunk/; revision=45360
James Tabor [Sun, 31 Jan 2010 18:38:45 +0000 (18:38 +0000)]
[Win32k|User32]
- Updated DrawIconEx information for Meta support.
svn path=/trunk/; revision=45359
Johannes Anderwald [Sun, 31 Jan 2010 15:32:31 +0000 (15:32 +0000)]
[PORTCLS]
- Use silence buffer when no audio buffers are available. Replaces the endless disturbing sound loop.
- Sound still broken
svn path=/trunk/; revision=45358
Sir Richard [Sun, 31 Jan 2010 15:22:55 +0000 (15:22 +0000)]
[NTOS]: Always set correct segments; the if/else branch should decide which segments to save, not whether or not to set the sane ones. Fixes boot on VirtualBox and real hardware.
svn path=/trunk/; revision=45357
Cameron Gutman [Sun, 31 Jan 2010 02:07:23 +0000 (02:07 +0000)]
- Merge some small changes from aicom-network-branch to fix potential memory corruption and remove unused code in oskittcp
- Add a hack to WSHSetSocketInformation so we don't fail with options that aren't implemented yet
- Fixes bug #5131
svn path=/trunk/; revision=45356
Sir Richard [Sat, 30 Jan 2010 19:10:22 +0000 (19:10 +0000)]
[NTOS]: Simplify KiTrapStub and write registers in order.
[PERF]: Change instructions used to save registers on the trap frame to fix some WaW and RaW hazards.
svn path=/trunk/; revision=45354
Sir Richard [Sat, 30 Jan 2010 18:25:30 +0000 (18:25 +0000)]
[PERF]: Omit setting certain useless trap frame fields.
[NTOS]: Fix KiEnterInterruptFrame. In the case of a V86 trap, the segments were overriden because this wasn't a kernel trap (missing if/elseif).
svn path=/trunk/; revision=45353
Sylvain Petreolle [Sat, 30 Jan 2010 17:07:33 +0000 (17:07 +0000)]
Move Reactos logon sound to WindowsLogon sound scheme.
Fixes bug 5002.
svn path=/trunk/; revision=45350
Sir Richard [Sat, 30 Jan 2010 16:40:57 +0000 (16:40 +0000)]
[HAL]: Add debugging feature to HalpTrap06 error that sometimes happen. Please post/email/IM your trap frame should you see this error.
svn path=/trunk/; revision=45348
James Tabor [Sat, 30 Jan 2010 06:41:39 +0000 (06:41 +0000)]
[User32]
- More movement to WND support.
svn path=/trunk/; revision=45341
James Tabor [Sat, 30 Jan 2010 04:23:58 +0000 (04:23 +0000)]
[Win32k|User32]
- Updated paint functions to use one calls.
- Found one leak in engwindow.c and monitor.c, not the big one.
svn path=/trunk/; revision=45339
Sylvain Petreolle [Fri, 29 Jan 2010 22:08:09 +0000 (22:08 +0000)]
[HAL]
fix HalEndSystemInterrupt prototype.
svn path=/trunk/; revision=45324
Sylvain Petreolle [Fri, 29 Jan 2010 22:03:56 +0000 (22:03 +0000)]
add missing delimiters
svn path=/trunk/; revision=45323
Sir Richard [Fri, 29 Jan 2010 21:10:33 +0000 (21:10 +0000)]
[HAL]: Rewrite IRQL handling. Alex's original code (lately translated to C) was a copy of the MicroChannel (MCA), Checked-Build HAL, an unexplained choice considering MCA is not supported or even available anymore. Windows, on machines with a PIC, uses a mechanism called Lazy IRQL, in which the PIC is only programmed "lazily", meaning that lowering and raising the IRQL does not actually change the interrupt mask. Therefore, lower priority interrupts will still come in at high IRQL. At this point, the HAL will detect this, only now mask the PICs, and lie that the lower interrupt was "spurious", while setting a pending bit. When the IRQL is lowered, the bit is detected, and a software/delayed "INT" is done with the correct IRQ vector number. More details are available in the typical resources.
[HAL]: Implement support for Level interrupts, which are used by certain EISA cards, and more particularly, all PCI hardware. Level interrupts were not previously handled correctly, being treated as edge/latched interrupts instead.
[NTOS/HAL]: Remove VDM Alert KPCR hack (which was buggy). Now the PKTRAP_FRAME is passed as a parameter to HalpEndSoftwareInterrupt/HalEndSystemInterrupt. This also removes the HalpNestedTrap ASM hack, since the call can now be done in C.
[PERF]: On real machines, writing the PIC mask is a relatively expensive I/O operation, and IRQL lower/raise can happen hundreds of times a second. Lazy IRQL provides an important optimization.
[PERF]: Correctly handling level interrupts as level interrupts allows for faster, and more efficient, IRQ handling.
svn path=/trunk/; revision=45320
Aleksey Bragin [Fri, 29 Jan 2010 21:02:00 +0000 (21:02 +0000)]
[CSR]
- DejaVu Sans Mono seems to have a bug which makes Windows and Arwinss report double max char width as compared to a real char width. Since only a monospace font could be used, measure exact char width using GetTextExtentPoint32W and use that value.
svn path=/trunk/; revision=45319
Sir Richard [Fri, 29 Jan 2010 08:14:51 +0000 (08:14 +0000)]
[HAL]: Mark ECX as clobbered in HalpNestedTrap, otherwise if the compiler decides to store IRQL in ECX, it will then be overriden with our ECX parameter. With this clobber, the compiler will use another register, such as EAX, to hold the IRQL.
svn path=/trunk/; revision=45316
Sir Richard [Fri, 29 Jan 2010 07:27:55 +0000 (07:27 +0000)]
[NTOS]: Return correct IRQ 0 vector instead of IRQL, when the timer interrupt ends.
svn path=/trunk/; revision=45315
Sir Richard [Fri, 29 Jan 2010 02:25:30 +0000 (02:25 +0000)]
[NTOS]: Another try at the chained interrupt dispatch problem...
svn path=/trunk/; revision=45312
James Tabor [Fri, 29 Jan 2010 02:07:31 +0000 (02:07 +0000)]
- Fix recursion when sweeping the DCE list.
svn path=/trunk/; revision=45311
Sir Richard [Fri, 29 Jan 2010 01:37:25 +0000 (01:37 +0000)]
[NTOS]: Implement chained interrupt dispatch. For level interrupts, the first interrupt handler should process the interrupt and no other handlers are called. Edge interrupts are another matter, but since they aren't yet supported, I haven't implemented that code path (it wasn't implemented previously). I seriously hope we don't have edge/chained interrupts because the HAL/NTOS could never handle this!
svn path=/trunk/; revision=45310
Sir Richard [Fri, 29 Jan 2010 01:12:08 +0000 (01:12 +0000)]
[NTOS]: Implement the KiInterruptTemplate in C since we now have a C entrry macro. Add a new KI_HARDWARE_INT flag for the C entry macro to generate the appropriate labels for runtime patching of the KINTERRUPT pointer to work, and issue an absolute instead of relative jmp.
[NTOS]: Remove thousands of lines of assembly that are not needed anymore.
[NTOS]: Put all interrupt code in irqobj.c (platform-specific).
[NTOS]: DPC Interrupt is really the thread scheduler interrupt (DPC work happens in C), which mostly does contexts switching and scheduling decisions, so move it to ctxswitch.S
svn path=/trunk/; revision=45309
James Tabor [Fri, 29 Jan 2010 00:59:20 +0000 (00:59 +0000)]
- Remove WINDOWOBJECT_NEED_INTERNALPAINT from service.
svn path=/trunk/; revision=45308
James Tabor [Fri, 29 Jan 2010 00:58:19 +0000 (00:58 +0000)]
[User32]
- Make ValidateRect a direct call, update related. Update UpdateWindow and some code sorting. Getting ready for WND switch.
svn path=/trunk/; revision=45307
James Tabor [Thu, 28 Jan 2010 23:45:22 +0000 (23:45 +0000)]
- Wrong commit msg, removed debug prints and fixed RedrawWindow. This fix one part of the leak.
svn path=/trunk/; revision=45306
James Tabor [Thu, 28 Jan 2010 23:34:57 +0000 (23:34 +0000)]
[Win32k]
- Add back removed window dce support routine. Fixed list handling and implemented thread cleanup for dces.
svn path=/trunk/; revision=45305