Commit graph

40913 commits

Author SHA1 Message Date
Christoph von Wittich d25de563d3 [FREELDR]
fix a typo

svn path=/trunk/; revision=45380
2010-02-02 17:28:10 +00:00
evb 2ce8b56e7c - 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
2010-02-02 17:21:19 +00:00
Timo Kreuzer 28bb8f1a56 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
2010-02-02 00:23:59 +00:00
evb 10d18dcf41 - More fixes
- Plugin support for booting FreeLDR when used as initrd on QEMU command-line.


svn path=/trunk/; revision=45377
2010-02-02 00:14:14 +00:00
evb 0e650cc897 - Forgot to change SARCH back to Versatile.
svn path=/trunk/; revision=45376
2010-02-01 21:07:03 +00:00
Danny Götte 47c3e2e09b acivate server based search for doxygen
svn path=/trunk/; revision=45375
2010-02-01 20:16:42 +00:00
Eric Kohl 5499d3c924 Reset a services thread and process ids when the service has been stopped. Fixes one more test.
svn path=/trunk/; revision=45374
2010-02-01 19:45:50 +00:00
evb 5024029061 - Fix bugs.
- Enable serial output.


svn path=/trunk/; revision=45373
2010-02-01 19:28:40 +00:00
evb fc22be1381 - 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
2010-02-01 18:33:24 +00:00
evb aea2ffe8bd - NANDFlash tool for building OMAP3 FLASH Images for DevBoard and QEMU-Maemo.
svn path=/trunk/; revision=45371
2010-02-01 18:29:19 +00:00
James Tabor 25ba7f4f8b [Gdi32]
- Miscellaneous implementations and forwards.

svn path=/trunk/; revision=45370
2010-02-01 15:13:35 +00:00
Sir Richard 02c2d27111 [ARM]: Fix the ARM build, hopefully without breaking the x86 build in the process. Sorry buds!
svn path=/trunk/; revision=45368
2010-02-01 03:51:45 +00:00
Sir Richard 6aa9cce4bb [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
2010-02-01 03:47:42 +00:00
Eric Kohl a6d399d000 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
2010-01-31 22:22:50 +00:00
Eric Kohl 661d200caa [FORMATTING]
- Fix indentation. No code changes.

svn path=/trunk/; revision=45364
2010-01-31 21:00:45 +00:00
Aleksey Bragin da2a2649db [FORMATTING]
- Reformat dma.c, no code change.

svn path=/trunk/; revision=45363
2010-01-31 20:35:06 +00:00
Eric Kohl d7117cdb17 - Implement RCreateServiceA.
- Make CreateServiceA call RCreateServiceA instead of CreateServiceW.

svn path=/trunk/; revision=45362
2010-01-31 20:28:04 +00:00
Eric Kohl 1cca0351e1 Implement basic version of PNP_CreateKey.
svn path=/trunk/; revision=45361
2010-01-31 19:44:02 +00:00
Johannes Anderwald 6c11399f0a [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
2010-01-31 19:09:30 +00:00
James Tabor 2afb0124d2 [Win32k|User32]
- Updated DrawIconEx information for Meta support.

svn path=/trunk/; revision=45359
2010-01-31 18:38:45 +00:00
Johannes Anderwald 6fd5a51915 [PORTCLS]
- Use silence buffer when no audio buffers are available. Replaces the endless disturbing sound loop.
- Sound still broken

svn path=/trunk/; revision=45358
2010-01-31 15:32:31 +00:00
Sir Richard c40a4a58a0 [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
2010-01-31 15:22:55 +00:00
Cameron Gutman 95b2e7519e - 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
2010-01-31 02:07:23 +00:00
Sir Richard 5a20627609 [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
2010-01-30 19:10:22 +00:00
Sir Richard ed3b520c7b [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
2010-01-30 18:25:30 +00:00
Sylvain Petreolle 607494ed1c Move Reactos logon sound to WindowsLogon sound scheme.
Fixes bug 5002.

svn path=/trunk/; revision=45350
2010-01-30 17:07:33 +00:00
Sir Richard 0eef75a032 [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
2010-01-30 16:40:57 +00:00
James Tabor 4206bf49f4 [User32]
- More movement to WND support.

svn path=/trunk/; revision=45341
2010-01-30 06:41:39 +00:00
James Tabor 1263c98dae [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
2010-01-30 04:23:58 +00:00
Sylvain Petreolle 4d1da2ea5c [HAL]
fix HalEndSystemInterrupt prototype.

svn path=/trunk/; revision=45324
2010-01-29 22:08:09 +00:00
Sylvain Petreolle 26dab4c37d add missing delimiters
svn path=/trunk/; revision=45323
2010-01-29 22:03:56 +00:00
Sir Richard 4e16ca56ce [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
2010-01-29 21:10:33 +00:00
Aleksey Bragin 1e19f89dbf [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
2010-01-29 21:02:00 +00:00
Sir Richard 38668a867a [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
2010-01-29 08:14:51 +00:00
Sir Richard 4fa5e49fa3 [NTOS]: Return correct IRQ 0 vector instead of IRQL, when the timer interrupt ends.
svn path=/trunk/; revision=45315
2010-01-29 07:27:55 +00:00
Sir Richard 76e22a7c62 [NTOS]: Another try at the chained interrupt dispatch problem...
svn path=/trunk/; revision=45312
2010-01-29 02:25:30 +00:00
James Tabor 80e31b74bc - Fix recursion when sweeping the DCE list.
svn path=/trunk/; revision=45311
2010-01-29 02:07:31 +00:00
Sir Richard 3d6e5848c1 [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
2010-01-29 01:37:25 +00:00
Sir Richard 614734706d [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
2010-01-29 01:12:08 +00:00
James Tabor 3b6e1e135b - Remove WINDOWOBJECT_NEED_INTERNALPAINT from service.
svn path=/trunk/; revision=45308
2010-01-29 00:59:20 +00:00
James Tabor 49439aff5f [User32]
- Make ValidateRect a direct call, update related. Update UpdateWindow and some code sorting. Getting ready for WND switch.

svn path=/trunk/; revision=45307
2010-01-29 00:58:19 +00:00
James Tabor 69ae9c4e57 - Wrong commit msg, removed debug prints and fixed RedrawWindow. This fix one part of the leak.
svn path=/trunk/; revision=45306
2010-01-28 23:45:22 +00:00
James Tabor 21032e02d1 [Win32k]
- Add back removed window dce support routine. Fixed list handling and implemented thread cleanup for dces.

svn path=/trunk/; revision=45305
2010-01-28 23:34:57 +00:00
Sir Richard 5b14ade9f8 [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
2010-01-28 23:18:53 +00:00
Sir Richard ac9c20ac0f [HAL]: Fix HalpFlushTlb. Thanks to Stefan Ginsberg <stefan100@reactos.org>
svn path=/trunk/; revision=45303
2010-01-28 23:08:04 +00:00
Matthias Kupfer b847e553ef this log message left intentionally non-descriptive
svn path=/trunk/; revision=45302
2010-01-28 22:18:31 +00:00
Sir Richard 7509f62a3b [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
2010-01-28 20:45:45 +00:00
Sir Richard 55c5579b1d [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
2010-01-28 20:43:25 +00:00
Sir Richard 8ae0ebe9dd [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
2010-01-28 16:05:54 +00:00
Sir Richard 08d30b3abb [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
2010-01-28 16:01:43 +00:00