Commit graph

31190 commits

Author SHA1 Message Date
Dmitry Chapyshev a52eaf94d5 - Update Russian translation
svn path=/trunk/; revision=33978
2008-06-15 06:01:53 +00:00
ReactOS Portable Systems Group def9fa66b4 - Create cmhardwr.c for ARM, stub it out.
- Implement KiInitMachineDependent -- this is only useful for x86 and has nothing relevant to ARM, so we just return.
- Implement HalAllProcessorsStarted (again, a no-op) and HalQueryRealTimeClock (uses the RTC on the board -- uboot must set it up first).
- Make sure we get the right Sp during a system call (this is still broken though).
- We need to fix our system call handler next.


svn path=/trunk/; revision=33977
2008-06-15 05:40:27 +00:00
ReactOS Portable Systems Group 531a8ad588 - Copy/pasted a bunch of code from the i386 bootvid for text output.
- Don't implement BitBlt for now.
- Add the bootdata font file to the arm bootvid as well.
- Not sure how it's possible, but we are seeing text output on the console with this hacked-up code! The ReactOS version string appears...
- We are now getting much further in the boot cycle.


svn path=/trunk/; revision=33976
2008-06-15 04:43:22 +00:00
ReactOS Portable Systems Group 133e63adea - Implement VidSolidColorFill, VidSetScrollRegion and VidSetTextColor
- Fix a bug in VidpBuildColor


svn path=/trunk/; revision=33975
2008-06-15 04:11:21 +00:00
ReactOS Portable Systems Group bfd0d8594d - Fix a bug in MmGetPhysicalAddress.
- Don't hang in the clock interrupt anymore, for now we'll just ignore it (but it works! :D)
- Make all unimplemented bootvid functions hang the system, so we can better stop at progress-points.
- Implement VidInitialize:
  - We allocate a 640x480@16bpp framebuffer using contiguous physical memory (our MMU code survives!).
  - We setup the LCD controller timings and framebuffer address.
  - We enable the LCD
- For debugging, we're also drawing a nice little test pattern... and it works! We have GUI Code :)


svn path=/trunk/; revision=33974
2008-06-15 03:32:52 +00:00
ReactOS Portable Systems Group 0ea44bde8f - Separate bootvid into bootvid/i386 and bootvid/arm (no code change to i386 version).
- Stub out all the bootvid functions for ARM, and add an infinite loop so we stop there.
- Remove the infinite loop from the HAL -- Hal Initialization is complete.
- We must now implement the LCD graphics functions.


svn path=/trunk/; revision=33973
2008-06-14 23:43:45 +00:00
Timo Kreuzer 86909f313f revert r26384 - this is an old hack to make console output work. We don't need this any longer since freetype / text output is fixed.
svn path=/trunk/; revision=33972
2008-06-14 23:20:22 +00:00
ReactOS Portable Systems Group 35656fd354 - Dude, we don't need to calibrate anything... we've got a 1MHz timer, which means 1us-precision. KeStallExecutionProcessor needs 1us-precision!
- Since we have two timers (ha x86!!!), set the second one as the stall timer. It's a one-shot periodic timer, set to the exact number of microseconds being waited on.
- To fully emulate stalling, we don't use a clock interrupt for it (it supports not sending one!) and just busy-loop until the value reaches 0.
- Tried it with a 10 second (10000000 us) wait and it worked -perfectly-.
- Re-implemented KeStallExecutionProcessor and got rid of the other code. Back in HalInitSystem(phase1) now...
- Also killed some DPRINT1s getting on my nerves.


svn path=/trunk/; revision=33971
2008-06-14 23:19:03 +00:00
ReactOS Portable Systems Group fe22db7c05 - We now implement the idle loop (thanks for fixing the interrupt code...).
- We are now back to HalInitSystem just like before the previous fixes.
- Now we'll implement stall calibration and switch to the clock interrupt.


svn path=/trunk/; revision=33970
2008-06-14 22:48:30 +00:00
ReactOS Portable Systems Group 949bda1cee - Implement the basic stall interrupt to be used to calculate the factors for KeStallExecution (using NT MIPS algorithm, hope this will work)
- Also written KeStallExecution.
- Now, we are back to where we hang before Phase 1 (so Phase 1 doesn't occur anymore).
- This hang is because we used to do a DPC here, which isn't good, since IRQL is already at dispatch.
- Instead, the correct course of action is to enter the idle loop, which will schedule the phase 1 thread.
- But, we don't have an idle loop yet ;-)


svn path=/trunk/; revision=33969
2008-06-14 22:28:40 +00:00
Matthias Kupfer 8b9fa093a3 - Give listbox in explorer searchprograms dialog i18n column heads (only done for German and English, other language need to be done)
svn path=/trunk/; revision=33968
2008-06-14 22:21:44 +00:00
ReactOS Portable Systems Group e66a86c8b9 - Fix stupid IRQL/Interrupt handling code that someone wrote ;):
- Get rid of KeSwapIrql -- both lower and higher IRQL handling was treated the same!
  - We can now re-activate the assert in the IRQL code
  - Disable interrupts before changing the interrupt mask!!!
  - And re-enable them solely if they were enabled.
  - Clear interrupts mask before setting a new one -- raising isn't always additive!
  - Fix KiInterruptHandler to perform operations in the right order.
  - Finish implementing interrupt exit code.
- Code KeArmStatusRegisterGet to read CPSR and interrupt status.
- Make debug prints a lot more readable and dont trying to acquire the stack during pool allocations.
- Setup the clock interval timer!!!
- This code regresses progress but makes stuf fwork right. We'll get better after implementing the stall interrupt.


svn path=/trunk/; revision=33967
2008-06-14 22:02:50 +00:00
Colin Finck ff164b383d - Implement the code for the "Run" and "Shutdown" menu items, create stubs for the other custom commands
- Replace the ROS-specific STDCALL by APIENTRY for the function prototypes

svn path=/trunk/; revision=33966
2008-06-14 21:18:08 +00:00
James Tabor e264b0b3c9 Patch by carlo bramix at libero dot it: Bug 3336 statusbar in the wrong place.
svn path=/trunk/; revision=33965
2008-06-14 17:10:55 +00:00
Matthias Kupfer 11e8d42306 Vytis Girdzijauskas <cman AT cman DOT us>
- time zone update to sync with Windows tz data
- See issue #3084 for more details.

svn path=/trunk/; revision=33964
2008-06-14 11:49:55 +00:00
Matthias Kupfer 9439a307c3 niski_ (bjauy AT go2 DOT pl)
- polish language patch for shell32.
- See issue #3338 for more details.

svn path=/trunk/; revision=33963
2008-06-14 10:23:05 +00:00
Matthias Kupfer 15ce5e598a fix/add some german translations
svn path=/trunk/; revision=33962
2008-06-14 08:51:42 +00:00
Aleksey Bragin 17f5df55c4 - Release the acquired spinlock in IoUnregisterShutdownNotification(), spotted by Cameron Gutman.
svn path=/trunk/; revision=33961
2008-06-14 08:16:22 +00:00
James Tabor ddd1764f85 Patch by Jeffrey Morlan (mrnobo1024 at yahoo dot com, irc: Goplat), Registers ansi scroll bar proc.
svn path=/trunk/; revision=33960
2008-06-14 05:34:02 +00:00
Colin Finck 427bda68a5 Don't use MenuCleanupRosMenuItemInfo for an array of Items allocated on the heap!
This function is meant to be used for a single menu item info and just frees the memory allocated for dwTypeInfo.

Replaced this with a simple HeapFree call to free the memory for the whole array allocated in MenuGetAllRosMenuItemInfo.
Fixes a heap corruption discovered by encoded.

See issue #3349 for more details.

svn path=/trunk/; revision=33959
2008-06-14 00:00:20 +00:00
Colin Finck aa42a19f40 Revert parts of r33578:
- First of all, MenuSetItemData is only called from InsertMenuA/W and ModifyMenuA/W.
  Therefore the passed MENUITEMINFO structure will always be empty, so it makes no sense to check for flags in this structure.
  This way, I could simplify the code block for MF_BITMAP.
- Also fType = MFT_BITMAP and fMask = MIIM_BITMAP at the same time passed to win32k don't work.
  Changing this back to only set fMask fixes bitmap menus.
- Furthermore the data for MF_OWNERDRAW is really stored in dwItemData and not in dwTypeData.
  The MSDN documentation for InsertMenu applies here, not the one for the MENUITEMINFO structure.
  This fixes owner-drawn menus like the one in Abiword.

See issue #3272 for more details.

svn path=/trunk/; revision=33958
2008-06-13 23:14:27 +00:00
Matthias Kupfer 7a0f6cc635 - german translation of explorer completed
- minor fix for label text size in german version of desk.cpl

svn path=/trunk/; revision=33957
2008-06-13 20:33:42 +00:00
James Tabor f7a11147ec Add notes, no code change.
svn path=/trunk/; revision=33956
2008-06-13 18:19:28 +00:00
Timo Kreuzer 86853e2cea MSDB KB 145994 (http://support.microsoft.com/?scid=kb%3Ben-us%3B145994): yBaseUnit is textmetric->tmHeight not average text extent. Testing confirms that GdiGetCharDimension returns this as height. This makes dialog boxes less stretched in height. Still not identical to XP. calx.exe: On XP yBaseUnit == 13, on ROS == 14 (was 16 before)
svn path=/trunk/; revision=33955
2008-06-13 13:33:53 +00:00
Thomas Bluemel 451c7e1c69 Revert 33953. This is completely wrong! WINE doesn't quite get the ordinals right. Ordinal 200 really should be SHCreateDesktop and ordinal 201 really should be SHDesktopMessageLoop. I am currently working on a patch for this. The fact that explorer-new was able to start with these changes is just pure coincidence.
svn path=/trunk/; revision=33954
2008-06-13 13:14:08 +00:00
Dmitry Chapyshev 756f63990f - Implement AddCommasW
- Implement SHLocalAlloc
- Implement SHLocalFree
- Implement SHLocalReAlloc
explorer-new starts in reactos now!

svn path=/trunk/; revision=33953
2008-06-13 07:58:34 +00:00
Thomas Bluemel a21b191fdf Add missing definitions
svn path=/trunk/; revision=33952
2008-06-12 23:38:09 +00:00
Timo Kreuzer ee9c5d0a88 Patch by Jeffrey Morlan (mrnobo1024 at yahoo dot com, irc: Goplat), modified by me:
The freetype asm function FT_MulFix clobbers the edx register, but doesn't tell it to gcc explicitly, so when inlined versions were resulting in wrong results. Fix it by also marking edx as output register.
Also enable commented out code in win32k again that works correctly now.
By me:
I modified the patch to not alter any 3rd party code, but instead I copied the fuction to _ftmulfix_ros.c and also coplied the container file ftbase.c which now uses the fixed function from our private file.
This fixes a bunch of text output issues (underscore, text marking)
See issue #3346 for more details.

svn path=/trunk/; revision=33951
2008-06-12 20:50:12 +00:00
Thomas Bluemel cdbc0773a5 Lookup DrawCaptionTemp () only once during startup
svn path=/trunk/; revision=33950
2008-06-12 16:50:57 +00:00
Thomas Bluemel 5d074bd015 Fix call to DrawCaptionTemp ()
svn path=/trunk/; revision=33949
2008-06-12 15:45:09 +00:00
Aleksey Bragin cb467b55e9 - Fix a bug in timedate.cpl, where an incorrect color was passed.
- Add bounds checking for GetSystemMetrics both in user32 and in kernel counterpart.
- Based on a patch from bug 3316.
See issue #3316 for more details.

svn path=/trunk/; revision=33947
2008-06-12 09:50:12 +00:00
Aleksey Bragin 57da8d9f18 - Formatting cleanup for the previously patched functions.
svn path=/trunk/; revision=33946
2008-06-12 09:40:33 +00:00
Aleksey Bragin 3da8a2640d Oriol Pique <oripipa@yahoo.es>
- Minor patch to HEAP_GetPtr to include magic value in debug output.
- Fixing the parameters checking in HEAP_InitSubHeap (it is currently not used - put between #if 0 / #endif ).
- Correcting HEAP_FindFreeBlock which was logging error message as warning (while still returning NULL to caller) by changing severity of logged message.
- Implementing RtlEnumProcessHeaps (previously stubbed out).
- Fixing sanity checks in and implementation of RtlGetProcessHeaps (previously
the function was not checking for the counter value, and also was not assigning anything to the returned value; now this seems to be corrected.
- Fixing RtlValidateProcessHeaps implementation (the function was stubbed out because (most probably, I wasn't able to find a bug mentioning this) it was previously using a global lock for all heaps (which probably could cause some problems in the kernel), now it only locks heaps belonging to the given process - and this is the correct behaviour.

Aleksey Bragin <aleksey@reactos.org>
- Fix typo in ntuser.c, and low severity of debug message.
See issue #2964 for more details.

svn path=/trunk/; revision=33945
2008-06-12 09:35:24 +00:00
Aleksey Bragin fd13a6484a - Fix two bugs in MiDoMappedCopy: MI_MAPPED_PAGES is pages, not bytes; and a misuse of TotalSize / BufferSize.
- Fix similar mistake in MiDoPoolCopy.
- Patch from bug 3341.
See issue #3341 for more details.

svn path=/trunk/; revision=33944
2008-06-12 09:18:11 +00:00
Aleksey Bragin b21dc84f01 - Prevent a misunderstanding: kdHandleException means the debugger did NOT handle the exception. Fix the logic, and thus fix vectored exception handling which led to 2nd stage hang in qemu.
- TODO: This ContinueType thing should be reworked into a better logic.
See issue #3344 for more details.

svn path=/trunk/; revision=33943
2008-06-12 08:56:13 +00:00
Daniel Reimer 31bec7ebbf Updated Wordpad, XCopy, WInhlp32 to WIne 1.0rc4
I skipped Collibri's Typo-Fix in the German Wordpad RC File. Collibri, plz send this to Wine.

svn path=/trunk/; revision=33942
2008-06-12 06:23:44 +00:00
Daniel Reimer 6a6c9c1c6c Updated Winefile to Wine 1.0rc4.
Renamed it to Winfile, because this is the name it has under windows.

svn path=/trunk/; revision=33941
2008-06-12 06:22:23 +00:00
ReactOS Portable Systems Group bf502620c3 - We now implement more proper context switching.
- This fixes an issue where code was using PCR->CurrentThread but x86/shared routines use PRCB->CurrentThread.
- Added a note to explain the difference, and we now set both.
- We currently stop at Phase 1 HAL Initialization.

svn path=/trunk/; revision=33940
2008-06-12 04:32:45 +00:00
Thomas Bluemel 20ebf8a9c5 Use band styles provided by the IDeskBand interface
svn path=/trunk/; revision=33939
2008-06-12 03:12:02 +00:00
Thomas Bluemel 1777cc3a03 More IBandSite support code
svn path=/trunk/; revision=33938
2008-06-12 01:14:18 +00:00
ReactOS Portable Systems Group 0bcdd3cdcc - We now implement a super-basic (and probably broken) context switching mechanism.
- We completely ignore setting the thread to the right scheduler state, and don't do any APC delivery checking, or any other work.
- We now implement a basic KiThreadStartup, which behaves properly (we believe). Doesn't handle user-mode threads yet, though.
- This gets us through PspSystemThreadStartup, and..
- We now reach Phase1InitializationDiscard! A major step has been reached, now it's time to cleanup what has been done until now and verify it to be correct.
- Then we move on... the next two things will be 1) Hal Initialization (setting up the timer) and 2) Displaying the boot logo.
- Graphics will require using the PL-110 LCD Controller.

svn path=/trunk/; revision=33937
2008-06-12 00:40:53 +00:00
ReactOS Portable Systems Group c84fd405bf - We now implement a skeleton framework for context switching
- The only things we do are swap the stack and then display the old/new thread/stack.
- More work to be done to actually save the non-volatiles, prepare the thread state, and restore the volatiles for the new thread.
- Then we will return to the saved return address, and we should be in Phase 1 with working thread switching/scheduling.

svn path=/trunk/; revision=33935
2008-06-11 19:13:25 +00:00
ReactOS Portable Systems Group 0eec889557 - We now make appropriate space on the stack to save the old IRQL in the trap frame.
- Save the old IRQL and assert it in the interrupt handler.
- Fix KTRAP_FRAME structure.


svn path=/trunk/; revision=33934
2008-06-11 18:39:44 +00:00
ReactOS Portable Systems Group e6d9765059 - Fix build on ARM:
- _iob is already defined as a dll_import
  - _rotl intrinsic is now implemented (should use rol instruction, but not sure on the syntax!)
  - Add a stub psctx.h for ARM
  - Added InterlockedEXchangePointers
  - Fix uninitialized variable warning in ex/resource.c
- Start to implement interrupt handling:
  - We now have a rudimentary interrupt handler that takes care of software interrupts
  - We now have a rudimentary DPC handler which takes care of switching to the next thread, if any
  - We now setup the HAL Interrupt Source -> IRQL Table (The IRQLMask Table).
  - Implemented HalGetInterruptSource, which allows us to get the interrupt # that cause the IRQ.
    Note: this wasn't needed on Alpha/PPC/MIPS NT ports, because that information is stored on the CPU,
    and the kernel could read it -- we must abstract it through the HAL.
  - Add the OldIrql to the TRAP_FRAME, we don't use it yet.
- We are now ready to context switch to the Phase 1 thread.

svn path=/trunk/; revision=33933
2008-06-11 16:48:07 +00:00
Matthias Kupfer 1f2f57762a - minor fix of german wordpad menu entry
- german translation of dialog resource of keyboard layout switcher completed including start menu entry

svn path=/trunk/; revision=33932
2008-06-11 12:31:23 +00:00
Aleksey Bragin f80fd06171 - Fix build.
svn path=/trunk/; revision=33931
2008-06-11 12:00:09 +00:00
Aleksey Bragin 7d5306e11b - Fix typos in NDK structures.
svn path=/trunk/; revision=33930
2008-06-11 11:48:59 +00:00
Aleksey Bragin 87f175a68a - Unregress KDBG: It has to increment EIP in case of STATUS_BREAKPOINT to skip over the current instruction, but now do it inside KDBG's exception handler.
- In Kd and GDB exception handler wrappers, return FALSE if kdDoNotHandleException, and return TRUE otherwise (kdHandled / kdContinue). After my previous commit these functions were always returning FALSE / exception not handled.

svn path=/trunk/; revision=33929
2008-06-11 11:34:04 +00:00
Aleksey Bragin 8a2b9285a7 - Revert 33689 as breaking mIRC installation.
See issue #3328 for more details.

svn path=/trunk/; revision=33928
2008-06-11 09:05:39 +00:00
Aleksey Bragin 7b57917c46 - Completely rewrite most of stdio functions by merging Wine's msvcrt code adapted for ReactOS.
- Leave and refactor existing underlying linux-code based sprintf implementation into lnx_ prefixed functions.
- Misc source code and headers cleanup.
- Fixes bugs 2910, 2803.
See issue #2803 for more details.

svn path=/trunk/; revision=33927
2008-06-11 08:54:46 +00:00