reactos.git
10 years ago- Refactor keyboard support to match serial. Now reading a key and waiting for a...
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

10 years ago- Switch to bootvid 8x13 font (closer to PC/VGA experience).
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

10 years ago- Add PL031 RTC code for Versatile.
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

10 years ago- Add GetTime stub, bump version to 1.4.
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

10 years ago- Implement some simple video routines.
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

10 years ago- Add stubs for video mach functions and update minor to 1.3.
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

10 years ago- Add support for ram disk offset (.IMG file is a RAW image, partition starts later...)
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

10 years ago - Merge r45400 from aicom-network-branch to fix the crash that occurs when Steam...
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

10 years ago- Enable RAMDISK support in LLB.
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

10 years ago- Fix bugs.
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

10 years ago- Implement GetEventLogInformation.
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

10 years ago[VMX_SVGA]: Begin implementation of VMWARE SVGA-II Video Card Driver.
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

10 years ago[WDMAUD.DRV]
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

10 years agoFix typo in vcproj generator code
Ged Murphy [Wed, 3 Feb 2010 11:36:49 +0000 (11:36 +0000)]
Fix typo in vcproj generator code

svn path=/trunk/; revision=45389

10 years agoBug 4342: Update log2lines to Version 1.12b. (Jan Roeloffzen)
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

10 years ago- Flesh out more code.
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

10 years ago- Implement logical keyboard interface. Converts scan code to ASCII codes (just ok).
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

10 years ago[NTOS]: Yet another fix for KiEnterInterruptTrap: Set correct DS/ES before touching...
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

10 years ago[FREELDR]
Christoph von Wittich [Tue, 2 Feb 2010 17:28:10 +0000 (17:28 +0000)]
[FREELDR]
fix a typo

svn path=/trunk/; revision=45380

10 years ago- Change ARM loading architecture to match EFI/Firmware model. LLB provides "firmware...
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

10 years agoUpdate Doxyfile to version 1.6.2 with the following changes:
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

10 years ago- More fixes
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

10 years ago- Forgot to change SARCH back to Versatile.
evb [Mon, 1 Feb 2010 21:07:03 +0000 (21:07 +0000)]
- Forgot to change SARCH back to Versatile.

svn path=/trunk/; revision=45376

10 years agoacivate server based search for doxygen
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

10 years agoReset a services thread and process ids when the service has been stopped. Fixes...
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

10 years ago- Fix bugs.
evb [Mon, 1 Feb 2010 19:28:40 +0000 (19:28 +0000)]
- Fix bugs.
- Enable serial output.

svn path=/trunk/; revision=45373

10 years ago- ARM LLB for OMAP3/Beagle (test with QEMU-Maemo) and Versatile (test with QEMU).
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

10 years ago- NANDFlash tool for building OMAP3 FLASH Images for DevBoard and QEMU-Maemo.
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

10 years ago[Gdi32]
James Tabor [Mon, 1 Feb 2010 15:13:35 +0000 (15:13 +0000)]
[Gdi32]
- Miscellaneous implementations and forwards.

svn path=/trunk/; revision=45370

10 years ago[ARM]: Fix the ARM build, hopefully without breaking the x86 build in the process...
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

10 years ago[NTOS]: Try to fix KiEnterInterrupt once and for all. Only set segments for V8086...
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

10 years agoGetServiceDisplayNameA/W and GetServiceKeyNameA/W must return an empty String if...
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

10 years ago[FORMATTING]
Eric Kohl [Sun, 31 Jan 2010 21:00:45 +0000 (21:00 +0000)]
[FORMATTING]
- Fix indentation. No code changes.

svn path=/trunk/; revision=45364

10 years ago[FORMATTING]
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

10 years ago- Implement RCreateServiceA.
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

10 years agoImplement basic version of PNP_CreateKey.
Eric Kohl [Sun, 31 Jan 2010 19:44:02 +0000 (19:44 +0000)]
Implement basic version of PNP_CreateKey.

svn path=/trunk/; revision=45361

10 years ago[MMEBUDDY]
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

10 years ago[Win32k|User32]
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

10 years ago[PORTCLS]
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

10 years ago[NTOS]: Always set correct segments; the if/else branch should decide which segments...
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

10 years ago - Merge some small changes from aicom-network-branch to fix potential memory corrupt...
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

10 years ago[NTOS]: Simplify KiTrapStub and write registers in order.
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

10 years ago[PERF]: Omit setting certain useless trap frame fields.
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

10 years agoMove Reactos logon sound to WindowsLogon sound scheme.
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

10 years ago[HAL]: Add debugging feature to HalpTrap06 error that sometimes happen. Please post...
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

10 years ago[User32]
James Tabor [Sat, 30 Jan 2010 06:41:39 +0000 (06:41 +0000)]
[User32]
- More movement to WND support.

svn path=/trunk/; revision=45341

10 years ago[Win32k|User32]
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

10 years ago[HAL]
Sylvain Petreolle [Fri, 29 Jan 2010 22:08:09 +0000 (22:08 +0000)]
[HAL]
fix HalEndSystemInterrupt prototype.

svn path=/trunk/; revision=45324

10 years agoadd missing delimiters
Sylvain Petreolle [Fri, 29 Jan 2010 22:03:56 +0000 (22:03 +0000)]
add missing delimiters

svn path=/trunk/; revision=45323

10 years ago[HAL]: Rewrite IRQL handling. Alex's original code (lately translated to C) was a...
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

10 years ago[CSR]
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

10 years ago[HAL]: Mark ECX as clobbered in HalpNestedTrap, otherwise if the compiler decides...
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

10 years ago[NTOS]: Return correct IRQ 0 vector instead of IRQL, when the timer interrupt ends.
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

10 years ago[NTOS]: Another try at the chained interrupt dispatch problem...
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

10 years ago- Fix recursion when sweeping the DCE list.
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

10 years ago[NTOS]: Implement chained interrupt dispatch. For level interrupts, the first interru...
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

10 years ago[NTOS]: Implement the KiInterruptTemplate in C since we now have a C entrry macro...
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

10 years ago- Remove WINDOWOBJECT_NEED_INTERNALPAINT from service.
James Tabor [Fri, 29 Jan 2010 00:59:20 +0000 (00:59 +0000)]
- Remove WINDOWOBJECT_NEED_INTERNALPAINT from service.

svn path=/trunk/; revision=45308

10 years ago[User32]
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

10 years ago- Wrong commit msg, removed debug prints and fixed RedrawWindow. This fix one part...
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

10 years ago[Win32k]
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

10 years ago[NTOS]: The last big step. Now that the HAL is in C, we can handle interrupts in...
Sir Richard [Thu, 28 Jan 2010 23:18:53 +0000 (23:18 +0000)]
[NTOS]: The last big step. Now that the HAL is in C, we can handle interrupts in C. Do so using the proposed model that was #if'ed out, but with some improvements.
[NTOS]: Implement KiUnexpectedInterruptTail and KiUnexpectedInterrupt in C as well.
This is [PERF] too since the C interrupt handling code is a lot more efficient than the ASM one. Numbers look good here.

svn path=/trunk/; revision=45304

10 years ago[HAL]: Fix HalpFlushTlb. Thanks to Stefan Ginsberg <stefan100@reactos.org>
Sir Richard [Thu, 28 Jan 2010 23:08:04 +0000 (23:08 +0000)]
[HAL]: Fix HalpFlushTlb. Thanks to Stefan Ginsberg <stefan100@reactos.org>

svn path=/trunk/; revision=45303

10 years agothis log message left intentionally non-descriptive
Matthias Kupfer [Thu, 28 Jan 2010 22:18:31 +0000 (22:18 +0000)]
this log message left intentionally non-descriptive

svn path=/trunk/; revision=45302

10 years ago[PERF]: Optimize nested interrupt cases (where a pending interrupt exists at the...
Sir Richard [Thu, 28 Jan 2010 20:45:45 +0000 (20:45 +0000)]
[PERF]: Optimize nested interrupt cases (where a pending interrupt exists at the end of a software or system interrupt) just like the old HAL did, by jumping into a second-level handler and completing the outer trap frame instead of the nested trap frame. This saves a lot of cycles in those cases, and they do happen quite often (pending DPC at the end of an interrupt, for example).
[NTOS/HAL]: Rework respective code to handle this by using the VDM Alert field in the KPCR.

svn path=/trunk/; revision=45301

10 years ago[NTOS]: Fix L1/L2 cache detection and write out the size and associativity. Now that...
Sir Richard [Thu, 28 Jan 2010 20:43:25 +0000 (20:43 +0000)]
[NTOS]: Fix L1/L2 cache detection and write out the size and associativity. Now that KeGetCurrentProcessorNumber doesn't think your L2 cache is the number of CPUs, this can be safely done.

svn path=/trunk/; revision=45300

10 years ago[NDK]: Fix KPCR definition.
Sir Richard [Thu, 28 Jan 2010 16:05:54 +0000 (16:05 +0000)]
[NDK]: Fix KPCR definition.
[DDK]: KeGetCurrentProcessorNumber should not return a 32-bit DWORD combined of "ProcessorNumer", "VdmAlert" and "SecondLevelCacheAssociativity" because those 3 fields are probably not equal to a processor number. Having an L2 Cache will no longer result in ReactOS believing you have a 32000 core CPU.

svn path=/trunk/; revision=45299

10 years ago[NTOS]: Remove checks for VDM alert during GPF. This is a Windows-specific hack for...
Sir Richard [Thu, 28 Jan 2010 16:01:43 +0000 (16:01 +0000)]
[NTOS]: Remove checks for VDM alert during GPF. This is a Windows-specific hack for VDM, which isn't implemented.

svn path=/trunk/; revision=45298

10 years ago[PERF]: Not in any way a scientific number you should bet the farm on, but we do...
Sir Richard [Thu, 28 Jan 2010 15:51:18 +0000 (15:51 +0000)]
[PERF]: Not in any way a scientific number you should bet the farm on, but we do now count the number of cycles at the very first instruction of kernel initialization, at the moment SMSS initializes the registry (when we call kernel initialization complete), and at the moment there have been 12 processes created (10 without counting idle/system), which is a bit less than a normal GUI boot. We also display the number if interrupts, system calls, and context switches it took to get us there. A purely comparative number, perhaps worthy for inclusion in testman/regression tests?

svn path=/trunk/; revision=45297

10 years ago[Win32k]
James Tabor [Thu, 28 Jan 2010 01:00:09 +0000 (01:00 +0000)]
[Win32k]
- Add back removed window dce support routine. Fixed list handling and implemented thread cleanup for dces.

svn path=/trunk/; revision=45293

10 years ago - Merge aicom-network-branch (still without the NDIS stuff)
Cameron Gutman [Thu, 28 Jan 2010 00:24:00 +0000 (00:24 +0000)]
 - Merge aicom-network-branch (still without the NDIS stuff)
 - Fixes some nasty bugs and hacks in our TCP implementation

svn path=/trunk/; revision=45291

10 years agoUpdate piperead to Version 0.3 (Jan Roeloffzen)
Daniel Reimer [Wed, 27 Jan 2010 22:13:26 +0000 (22:13 +0000)]
Update piperead to Version 0.3 (Jan Roeloffzen)

svn path=/trunk/; revision=45288

10 years agoUpdate log2lines to Version 1.11 (Jan Roeloffzen) Bug 4342
Daniel Reimer [Wed, 27 Jan 2010 19:03:52 +0000 (19:03 +0000)]
Update log2lines to Version 1.11 (Jan Roeloffzen) Bug 4342
- Added -P Pipeline option for Powershell support, see below
- Renaming some structs to avoid potential naming conflicts with windows.h
- stdin/out -> stdIn/Out for redirecting
- Fixed potential mem leak
- A little more tracing and cleanup
Updated piperead (Jan Roeloffzen) Bug 5146
- Added Pipe client function, based on msdn example
- Improved option handling (try piperead -h)
- logging, error handling
- Integrated in build (pipetools.mak)

svn path=/trunk/; revision=45287

10 years ago[NTOS/PERF]: Enable VME support. VME stands for Virtual 8086 Mode Extensions, and...
Sir Richard [Wed, 27 Jan 2010 05:34:38 +0000 (05:34 +0000)]
[NTOS/PERF]: Enable VME support. VME stands for Virtual 8086 Mode Extensions, and it's an Intel optimization that makes changes to the IF bit in EFLAGS (CLI, STI, INT, IRETD, PUSHF, POPF) completely transprent: instead of changing the real (protected) bit, which requires the OS to trap and emulate the behavior, the CPU sets a "Fake" IF bit instead. When you're dong in V8086 mode, you simply update your real flag with whatever the fake flag says.
[NTOS]: Enable V8086 Fast-V86 Trap mode for Trap 6 (Invalid Opcode). Because we are now taking zero traps during V8086 mode, we can't do the "BOP lookahead", so the only trap we do get is when we hit the BOP/invalid opcode itself.
[NTOS]: Multiple fixes to V8086 opcode emulation code that I noticed while looking through the source. Also multiple fixes to VDM code.
This change will only impact real hardware and VMWare, since QEMU does not support VME. On VMWare, performance increased up to 400% during bootup (80 million cycles instead of 300 million, in one test).

svn path=/trunk/; revision=45282

10 years ago[NTOS]: Trunk boots now (interesting that buildbot's QEMU does not support SYSENTER...
Sir Richard [Wed, 27 Jan 2010 03:36:18 +0000 (03:36 +0000)]
[NTOS]: Trunk boots now (interesting that buildbot's QEMU does not support SYSENTER, as newer versions do), so remove the test DPRINTs.

svn path=/trunk/; revision=45281

10 years ago[NTOS]: Rework the trap macros again. This time we needed some added complexity becau...
Sir Richard [Wed, 27 Jan 2010 03:05:10 +0000 (03:05 +0000)]
[NTOS]: Rework the trap macros again. This time we needed some added complexity because of the need for runtime patching at boot. We got away with it nicely and basically implement a simple "if" in ASM, which gives us a deterministic set of instructions (vs the compiler). We then patch if if needed (see next bullet).
[NTOS]: Support systems without SYSENTER. Nothing was actually disabling the SYSEXIT mechanism recently enabled. Now IRET is always used unless a SYSENTER machine is discovered, in which case the jmp to the IRET code is patched with a jmp to SYSEXIT code.
[PERF]: Set WP0 bit in CR0 later, thus allowing the existing runtime patches (and this new one) to function without requiring MmSetPageProtect. Saves TLB flushes and page table walking/mapping on boot.
Left in some debug prints to see what buildbot reports...will remove if it survives.

svn path=/trunk/; revision=45280

10 years agoOutput PCH, not dependencies.
Dmitry Gorbachev [Wed, 27 Jan 2010 02:29:36 +0000 (02:29 +0000)]
Output PCH, not dependencies.

svn path=/trunk/; revision=45279

10 years ago- Turn off debug print outs.
James Tabor [Wed, 27 Jan 2010 00:06:48 +0000 (00:06 +0000)]
- Turn off debug print outs.

svn path=/trunk/; revision=45278

10 years ago[HAL]: Implement the profile and clock interrupt trap/handlers in C instead of ASM...
Sir Richard [Tue, 26 Jan 2010 21:41:05 +0000 (21:41 +0000)]
[HAL]:  Implement the profile and clock interrupt trap/handlers in C instead of ASM. This allows the kernel to remove the ugly hacks based on internal knowledge of how the assembly/stack of the HAL is supposed to look like. Everything is now done through a clean C interface.
[NTOS]: Remove said hacks and have a normal C implementation of KeUpdateSystemTime. It exits the interrupt through a soft interrupt exit.
[NTOS]: Implement 4 lines of support code needed to handle interrupts during V8086 mode, which were lacking since we weren't hitting this case yet.
Note that now the KeUpdateSystemTime interface is not "compatible" with Windows anymore. This does not matter, since the only possible caller of KeUpdateSystemTime is a very specific HAL routine that needs a very specific stack layout to actually work, so the chance of anyone calling this API is absolutely zero (no, not even some experimental driver. It's absolutely impossible).

svn path=/trunk/; revision=45276

10 years ago[HAL]: Rewrite all V8086-related code in C instead of ASM. Delete v86.s. Makes uses...
Sir Richard [Tue, 26 Jan 2010 19:41:31 +0000 (19:41 +0000)]
[HAL]: Rewrite all V8086-related code in C instead of ASM. Delete v86.s. Makes uses of new macros and developments in NTOS, but should now only end up getting called at shutdown and for bugchecks.

svn path=/trunk/; revision=45272

10 years ago[PERF]: What to do when your SYSEXIT code has a bug? Set KiFastSystemCallDisable...
Sir Richard [Tue, 26 Jan 2010 19:39:21 +0000 (19:39 +0000)]
[PERF]: What to do when your SYSEXIT code has a bug? Set KiFastSystemCallDisable to TRUE so it never gets used. Now, for the first time in 3 years and 3 months (not giving a specific revision # to protect the 'innocent'), ReactOS actually fully uses the SYSENTER/SYSEXIT instructions isntead of IRETD, since my code doesn't exhibit the bug and SYSEXIT is safe to use. This should save a good hundred cycles or more per system call.

svn path=/trunk/; revision=45271

10 years ago[PERF]: After spending the better part of the last two days rewriting the HAL V8086...
Sir Richard [Tue, 26 Jan 2010 19:29:37 +0000 (19:29 +0000)]
[PERF]: After spending the better part of the last two days rewriting the HAL V8086 code (used for BIOS Display Reset) in C, it dawned upon me that it shouldn't even be used during bootup in the first place! The boot loader, running in real-mode, already sets video mode 12 when starting ReactOS. We then repeat the operation, but since we're in protected mode, we have to emulate the whole sheebang with V8086 mode. We now initialize bootvid without requesting a mode switch (which was broken up until a commit ago). This gives us a dirty palette and VGA state. We then call VidResetDisplay to clean up the palette and setup the VGA registers correctly, but we only reset the screen if a custom /BOOTLOGO command is used (which isn't supported yet). We therefore don't need to enter V8086 mode at all up until the switch to graphics mode from the video card driver. Note that Windows doesn't do this (Win7 might due to the new Boot Graphics Library), so we're actually booting faster!

svn path=/trunk/; revision=45270

10 years ago[BOOTVID]: Fix completely broken VidInitialize routine. I have no idea what the origi...
Sir Richard [Tue, 26 Jan 2010 19:21:41 +0000 (19:21 +0000)]
[BOOTVID]: Fix completely broken VidInitialize routine. I have no idea what the original code was trying to accomplish.

svn path=/trunk/; revision=45269

10 years ago[NTOS]: Refactor some stub code and add a couple of more possible trap exit mechanism...
Sir Richard [Tue, 26 Jan 2010 17:54:50 +0000 (17:54 +0000)]
[NTOS]: Refactor some stub code and add a couple of more possible trap exit mechanisms (needed for HAL). Later we should really combine all the exit macros into one, as we've done for the entry macro.

svn path=/trunk/; revision=45268

10 years ago[HAL]: Move the HalpApcInterrupt and HalpDispatchInterrupt to pic.c now that there...
Sir Richard [Tue, 26 Jan 2010 16:31:32 +0000 (16:31 +0000)]
[HAL]: Move the HalpApcInterrupt and HalpDispatchInterrupt to pic.c now that there is a C-macro to generate such stubs. Remove irq.S from build/sources.

svn path=/trunk/; revision=45267

10 years ago[NTOS]: Implement a C/Extended ASM macro for generating trap stubs, removing the...
Sir Richard [Tue, 26 Jan 2010 15:43:13 +0000 (15:43 +0000)]
[NTOS]: Implement a C/Extended ASM macro for generating trap stubs, removing the need to do this in ASM. The macro covers all possible entries, from SYSENTER to a fake sotware interrupt (needed for HAL changes later). By being somewhat in C, it makes the code cleaner to read and uses C expressions to make its decisions, making the code more maintanable as well. It also removes the need for separate assembly files.
[NTOS]: Modify the semantics of how a fast system call (SYSENTER) is processed in the stub, by moving more work in the C handler, such as setting up FS and getting the correct argument stack. Saves us some cycles too (and allows the trap stub macro to be more generic).

svn path=/trunk/; revision=45266

10 years ago- Update Ukrainian translation by Igor Paliychuk (igor-hkr[at]mail[dot]ru)
Dmitry Chapyshev [Tue, 26 Jan 2010 10:23:30 +0000 (10:23 +0000)]
- Update Ukrainian translation by Igor Paliychuk (igor-hkr[at]mail[dot]ru)

svn path=/trunk/; revision=45260

10 years ago[NTOS]: Split the GENERATE_TRAP_HANDLER in two separate macros. The original builds...
Sir Richard [Mon, 25 Jan 2010 03:00:01 +0000 (03:00 +0000)]
[NTOS]: Split the GENERATE_TRAP_HANDLER in two separate macros. The original builds the name of the function (and makes it global), while the TRAP_HANDLER_PROLOG is actually the code.
[NTOS]: Make TRAP_HANDLER_PROLOG handle software traps, in which the interrupt stack must be faked.
[NTOS]: Optimize TRAP_HANDLER_PROLOG by not pushing an error code and then making space on the stack without the error code -- just make space with the error code in the first place (nobody reads the value, so having it zero or garbage isn't important).
[HAL]:  Implement the APC and DPC software interrupt traps in C instead of ASM. Delete all contents of irq.S except the two GENERATE_TRAP_HANDLER stubs.

svn path=/trunk/; revision=45244

10 years ago[HAL]: Implement HalEndSystemInterrupt and HalpEndSoftwareInterrupt. Remove more...
Sir Richard [Mon, 25 Jan 2010 01:51:47 +0000 (01:51 +0000)]
[HAL]: Implement HalEndSystemInterrupt and HalpEndSoftwareInterrupt. Remove more ASM code/tables that aren't unused anymore.

svn path=/trunk/; revision=45243

10 years ago[Win32k|Ggi32]
James Tabor [Mon, 25 Jan 2010 01:33:01 +0000 (01:33 +0000)]
[Win32k|Ggi32]
- Diagnostic commit used for troubleshooting leaking region handles.
- Updates to headers and experimental code added for regions.

svn path=/trunk/; revision=45242

10 years ago[HAL]: Implement HalRequestSoftwareInterrupt in C instead of ASM. Remove deprecated...
Sir Richard [Mon, 25 Jan 2010 01:26:53 +0000 (01:26 +0000)]
[HAL]: Implement HalRequestSoftwareInterrupt in C instead of ASM. Remove deprecated ASM code that was unused.

svn path=/trunk/; revision=45241

10 years ago[HAL]: KfLowerIrql in C instead of ASM. Add the SWInterruptLookUpTable and SWInterrup...
Sir Richard [Mon, 25 Jan 2010 01:20:43 +0000 (01:20 +0000)]
[HAL]: KfLowerIrql in C instead of ASM. Add the SWInterruptLookUpTable and SWInterruptHandlerTable to the code and keep the same mechanism as the ASM code used.

svn path=/trunk/; revision=45240

10 years ago[HAL]: Okay, this one was my fault, forgot to built the nasty-ass HALMPS. Move the...
Sir Richard [Sun, 24 Jan 2010 23:57:09 +0000 (23:57 +0000)]
[HAL]: Okay, this one was my fault, forgot to built the nasty-ass HALMPS. Move the CMOS lock routines to the shared CMOS file.

svn path=/trunk/; revision=45239

10 years agoYou really need to get your compiler version shit together. I was told GCC 4.4 is...
Sir Richard [Sun, 24 Jan 2010 23:35:07 +0000 (23:35 +0000)]
You really need to get your compiler version shit together. I was told GCC 4.4 is what's used in ReactOS, yet the build server insists on using an old and broken version of GCC that doesn't support half the things we're trying to do here! Hackfix the Mask Table by providing ugly and incomprehensible hex magic numbers for the mappings, if a GCC older than 4.4 is used.

svn path=/trunk/; revision=45238

10 years ago[HAL]: Implement and document the HalpSpecialDismissTable. Explain how each IRQ shoul...
Sir Richard [Sun, 24 Jan 2010 23:30:43 +0000 (23:30 +0000)]
[HAL]: Implement and document the HalpSpecialDismissTable. Explain how each IRQ should be handled and what the special cases are. Implement said special cases (based on ISA System Architecture, 3rd Edition).
[HAL]: Implement HalBeginSystemInterrupt in C instead of ASM, it jumps into one of the IRQ handlers registered in the HalpSpecialDismissTable.

svn path=/trunk/; revision=45237

10 years ago[HAL]: Implement HalEnableSystemInterrupt and HalDisableSystemInterrupt in C instead...
Sir Richard [Sun, 24 Jan 2010 23:21:36 +0000 (23:21 +0000)]
[HAL]: Implement HalEnableSystemInterrupt and HalDisableSystemInterrupt in C instead of ASM.

svn path=/trunk/; revision=45236

10 years ago[HAL]: Document and implement KiI8259MaskTable in C using actual bit positions. Each...
Sir Richard [Sun, 24 Jan 2010 23:19:40 +0000 (23:19 +0000)]
[HAL]: Document and implement KiI8259MaskTable in C using actual bit positions. Each mapping is best to the best of my ability.
[HAL]: Implement KfRaiseIrql in C, remove ASM version.

svn path=/trunk/; revision=45235

10 years ago[HAL]: Implement KeGetCurrentIrql, KeRaiseIrqlToDpcLevel, KeRaiseIrqlToSynchLevel...
Sir Richard [Sun, 24 Jan 2010 23:14:08 +0000 (23:14 +0000)]
[HAL]: Implement KeGetCurrentIrql, KeRaiseIrqlToDpcLevel, KeRaiseIrqlToSynchLevel, HalClearSoftwareInterrupt in C instead of ASM.

svn path=/trunk/; revision=45234

10 years ago[HAL] Merge HalpAcquireSystemHardwareSpinLock and HalpReleaseCmosSpinLock from Timo...
Sir Richard [Sun, 24 Jan 2010 23:12:30 +0000 (23:12 +0000)]
[HAL] Merge HalpAcquireSystemHardwareSpinLock and HalpReleaseCmosSpinLock from Timo's AMD64 branch, and delete ASM implementations.

svn path=/trunk/; revision=45233

10 years ago- Use __builtin_trap for old GCC, too.
Dmitry Gorbachev [Sun, 24 Jan 2010 15:18:50 +0000 (15:18 +0000)]
- Use __builtin_trap for old GCC, too.
- KiEoiHelper, KiDispatchExceptionFromTrapFrame: mark noreturn.
- Return DECLSPEC_NORETURNs.

svn path=/trunk/; revision=45232