Commit graph

42336 commits

Author SHA1 Message Date
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
Timo Kreuzer
34ef1bef80 [NTOS]
- Implement KiSystemFatalException, stubplement KiGeneralProtectionFaultHandler and KiXmmExceptionHandler, KiNpxNotAvailableFaultHandler in C
- Implement KiDivideErrorFault, KiOverflowTrap, KiBoundFault, KiInvalidOpcodeFault, KiNpxNotAvailableFault, KiNpxSegmentOverrunAbort, KiInvalidTssFault, KiSegmentNotPresentFault, KiStackFault, KiAlignmentFault, KiMcheckAbort, KiXmmException, KiRaiseAssertion in assembler
- Modify rsp instead of pushing a pseudo error code
- Move all unwind ops into ENTER_TRAP_FRAME macro

svn path=/branches/ros-amd64-bringup/; revision=45344
2010-01-30 13:35:46 +00:00
Timo Kreuzer
f155d17a5a Add exception codes for asm
svn path=/branches/ros-amd64-bringup/; revision=45343
2010-01-30 13:21:28 +00:00
James Tabor
4206bf49f4 [User32]
- More movement to WND support.

svn path=/trunk/; revision=45341
2010-01-30 06:41:39 +00:00
Timo Kreuzer
086a6f0140 add else
svn path=/branches/ros-amd64-bringup/; revision=45340
2010-01-30 04:27:17 +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
Timo Kreuzer
49da6c12d8 and the same for trap.S
svn path=/branches/ros-amd64-bringup/; revision=45338
2010-01-30 03:18:20 +00:00
Timo Kreuzer
2306a5788f remove the RIP() hack, instead use a constant rip=0 for MASM/ML
svn path=/branches/ros-amd64-bringup/; revision=45337
2010-01-30 03:17:11 +00:00
Timo Kreuzer
752c8aead9 trap.S is now fully MASM/ML compatible
svn path=/branches/ros-amd64-bringup/; revision=45336
2010-01-30 03:12:26 +00:00
Timo Kreuzer
bfd0e180c3 use .altmacro for gas and hack the UNIMPLEMENTED macro
svn path=/branches/ros-amd64-bringup/; revision=45335
2010-01-30 03:11:39 +00:00
Timo Kreuzer
fcd9ab3f50 fix macros...
svn path=/branches/ros-amd64-bringup/; revision=45334
2010-01-30 01:46:16 +00:00
Timo Kreuzer
f0c278391b fixup trap.S. Almost there...
svn path=/branches/ros-amd64-bringup/; revision=45333
2010-01-30 01:17:06 +00:00
Timo Kreuzer
e2151932e4 More macros and fixes
svn path=/branches/ros-amd64-bringup/; revision=45332
2010-01-30 01:16:42 +00:00
Timo Kreuzer
cf3c481035 And once again fix trap.S
svn path=/branches/ros-amd64-bringup/; revision=45331
2010-01-30 00:53:01 +00:00
Timo Kreuzer
5698669639 Update macros a bit more
svn path=/branches/ros-amd64-bringup/; revision=45330
2010-01-30 00:52:23 +00:00
Timo Kreuzer
fbe7bbfcdb Update trap.S to conform
svn path=/branches/ros-amd64-bringup/; revision=45329
2010-01-30 00:30:08 +00:00
Timo Kreuzer
459f389307 Update some asm macros, partly adding MASM/ML support
svn path=/branches/ros-amd64-bringup/; revision=45328
2010-01-30 00:22:03 +00:00
Timo Kreuzer
fde64b37c3 make use of the new file
svn path=/branches/ros-amd64-bringup/; revision=45327
2010-01-29 23:41:52 +00:00
Timo Kreuzer
5a811f8ce2 Add include/reactos/asm.h
This file replaces asmmacro.S and shall provide GAS/ML64 compatibility definitions

svn path=/branches/ros-amd64-bringup/; revision=45326
2010-01-29 23:29:58 +00:00
Timo Kreuzer
6b38c83e7a [NTOS]
MSVC compatibility fix: use DECLSPEC_ALIGN and remove inline asm (it was testcode anyway)

svn path=/branches/ros-amd64-bringup/; revision=45325
2010-01-29 23:25:05 +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
Timo Kreuzer
ef3224edab Fix parameters of KeUpdateSystemTime, make it regparm only for X86 ans remove the now deprecated stub.
Add a few stubs for MSVC

svn path=/branches/ros-amd64-bringup/; revision=45318
2010-01-29 13:23: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
Timo Kreuzer
a0055ff789 Use __inline instead of inline
svn path=/branches/ros-amd64-bringup/; revision=45314
2010-01-29 05:25:26 +00:00
Timo Kreuzer
b4c3b1e6f6 unimplement a bunch or intrinsics for msc, as we cannot use inline asm.
svn path=/branches/ros-amd64-bringup/; revision=45313
2010-01-29 05:23:59 +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