Commit graph

23667 commits

Author SHA1 Message Date
Magnus Olsen
3f44d73a4b fixing count how many reg we are using. so we can setup a frame pointer
svn path=/trunk/; revision=25499
2007-01-17 18:47:08 +00:00
Magnus Olsen
d1aa0d32ae Adding m68k,arm,ia32,ppc to ppc convert.
Remove the old disambler list from ppc to ppc 
implement new ppc to ppc disambler that are allot better at end. 

svn path=/trunk/; revision=25498
2007-01-17 17:35:18 +00:00
Magnus Olsen
65747168ef fixing a bug did write end code for frame pointer that we do not have
tempary fix, we can not optimize code so good yet. so if it more that 4 register same time we are using own frame, ebx is working as our ebp for we already resvert  the ebp 

svn path=/trunk/; revision=25497
2007-01-17 16:23:39 +00:00
Magnus Olsen
af42a0cc24 fixing the ppc to ia32 break, use ebx as ebp if we got to many register.
svn path=/trunk/; revision=25496
2007-01-17 15:31:47 +00:00
Magnus Olsen
69999a5ad4 This break the ppc disambler support and convert to ia32, temporary
I change the desgin lite to preopare the ia32 to ppc 

svn path=/trunk/; revision=25495
2007-01-17 15:02:43 +00:00
Aleksey Bragin
60fc740a7d Delete 100 files which are completely unneeded in order to statically compile expat library (full source code is located in the vendor branch).
svn path=/trunk/; revision=25494
2007-01-17 12:42:43 +00:00
Alex Ionescu
c696d66532 - Simplify KiSelectReadyThread.
- Disable KiSetAffinityThread to do nothing else but change affinity instead of doing re-scheduling (temporary change).
- Cleanup KiQuantumEnd to prepare for new scheduler.
- Fix up a large bug in KeInsertQueueDpc which was making every DPC become a Threaded DPC due to a bad assignment-instead-of-compare.
- Copy KiSelectNextThread for new scheduler branch, without SMT support.
- Fix a bug in KiAdjustQuantumThread under new scheduler.
- Re-implement KiSetPriorityThread under new scheduler, leave hacks for current scheduler support.
- Remove old testing assert from KiExitDispatcher.

svn path=/trunk/; revision=25491
2007-01-17 01:56:15 +00:00
Alex Ionescu
c15d054bad [22 bug fixes]:
- Make KiComputeNewPriority accept various priority adjuments instead of always assuming an increase of 1 priority level.
- Fix ASSERT in KeSetEventBoostPriority: API is valid *only* for Synchronization events, not notification ones.
- Use proper KiComputeNewPriority call in KeSetEventBoostPriority, since we're not adjusting by 1.
- Make sure the FreezeCount is also 0 in KeAlertResumeThread, before signalling the suspend semaphore.
- Simply alert-mode check in KeAlertThread.
- Don't exit the critical region in KeFreezeAllThreads, it needs to be held.
- Don't enter a critical region in KeThawAllThreads, it should already have been entered; release it after thawing is complete.
- Also change the list loop in these functions to always start with the first thread.
- Copy over boost-disable flag in KeStartThread.
- Don't acquire the dispatcher lock in KeTestAlertThread.
- Set the KernelStackResident flag to TRUE in KeInitThread.
- Fix KeSetIdealProcessorThread to check the CPU is valid on the system, not valid across all valid CPU numbers. Also fix it to compare affinity, not processor.
- Fix KeSetBasePriorityThread to properly call KiComputeNewPriority with an adjustment of 0, and then properly manually adjust with the delta between the new base priority and the old base priority.
- Also normalize the new priority if it's too low.
- Always set the priority decrement back to 0 when KeSetPriorityThread is called.
- Normalize the priority in KeSetPriorityThread if it falls too low.
- Fix process stack count check in KeTerminateThread.
- Acquire thread and PRCB lock in KiAdjustQuantumThread.
- Use KiComputeNewPriority in KiAdjustQuantumThread.
- Dispatch a new thread in KiAdjustQuantumThread to take into account the new scheduler settings.
- Thread priorities should make more sense now...

svn path=/trunk/; revision=25490
2007-01-16 20:49:40 +00:00
Thomas Bluemel
dde6333e88 Fix difference in signedness warnings
svn path=/trunk/; revision=25489
2007-01-16 18:55:06 +00:00
Ged Murphy
6c5af8a927 improve cursor loading code
svn path=/trunk/; revision=25488
2007-01-16 18:30:54 +00:00
Alex Ionescu
14060f6c04 - Reimplement Process/Thread/Image notification callbacks by using the new executive lightweight callback implementation.
- Remove corresponding entry from kernel fun.

svn path=/trunk/; revision=25486
2007-01-16 15:09:53 +00:00
Alex Ionescu
b7e3f88937 - Implement ExCompareExchangeCallBack. The CallBack implementation is now ready for testing.
svn path=/trunk/; revision=25485
2007-01-16 14:20:19 +00:00
Alex Ionescu
1ef7c86725 - Implement ExReferenceCallBackBlock and ExDereferenceCallBackBlock.
- Code is very similar to Ob* Fast Referencing, and the use of macros to encapsulate generic referencing should be done later. Essentially, Ob sticks ObRefs around FastRefs, while ExCallbacks sticks ExRundown around FastRefs.

svn path=/trunk/; revision=25484
2007-01-16 07:20:16 +00:00
Alex Ionescu
9416d6ffa4 - Start partial implementation of Executive Lightweight Callbacks: ExAllocateCallBack, ExInitializeCallBack, ExFreeCallBack, ExWaitForCallBacks, ExGetCallBackBlockRoutine, ExGetcallBackBlockContext, ExDoCallBack.
- Stub ExReferenceCallBackBlock and ExDereferenceCallBackBlock until I get the locking right.
- These callbacks are used by Cm as well as Ps inside Windows NT and combine the power of PushLocks, Rundown Protection and Fast Referencing to ensure callbacks only get called once and thread safely. Not yet used in ROS.

svn path=/trunk/; revision=25483
2007-01-16 05:31:05 +00:00
Alex Ionescu
b51d473275 - Large cleanup of exported callback implementation. It was my first code to ReactOS and quite messy.
- Make code use standard NT structures.
- Fix object type initialization.
- Fix calls to ExCreatecallback during system initalization which were randomly overwriting memory.
- Fix ExREgisterCallback which was allocating only a pointer inside of the entire structure, also over-writing system memory.

svn path=/trunk/; revision=25482
2007-01-16 04:16:31 +00:00
Alex Ionescu
532a28a03c - Fix major bugs in the definition of _KTHREAD inside the NDK. I made some stupid assumptions when reading the .pdb dump data. _KTHREAD should now be the right size and structure as Win 2003. (the reason this bug wasn't more evident was because we were using 1-byte packing and a "padding" field. this has now been removed).
svn path=/trunk/; revision=25481
2007-01-16 02:40:41 +00:00
Alex Ionescu
73d8fac4c0 - Simplify KiWaitTest.
- Add _ADJUST_REASON
- Reformat some ke_x.h wait macros to use simpler/shorter variable names.

svn path=/trunk/; revision=25480
2007-01-16 02:24:19 +00:00
Alex Ionescu
ce501f07c6 - Fix insertion of special APC into APC delivery list.
- Re-identize some APC code (just formatting change).
- Detect APC during GateWait. Previous check scanned for DeferredReady, which is incorrect.
- Simplfy KeremovequeueApc to take advantage of the fact RemoveEntryList now returns whether the list is empty or not.

svn path=/trunk/; revision=25479
2007-01-16 01:27:36 +00:00
Ged Murphy
5b7abf2e8a don't leak a bitmap object if we fail to allocate memory
svn path=/trunk/; revision=25478
2007-01-16 00:08:41 +00:00
Ged Murphy
138ba142b5 use IC instead of DC
svn path=/trunk/; revision=25477
2007-01-15 23:37:44 +00:00
Ged Murphy
01ee458c11 revert r25474
svn path=/trunk/; revision=25476
2007-01-15 23:33:01 +00:00
Ged Murphy
1e1efd9791 - implement correct alpha blending of icons
- pixel bits must be pre-multiplied with the alpha channel
- along with the previous LookupIconIdFromDirectoryEx, basic alpha blending is working. some bugfixing is still required.

svn path=/trunk/; revision=25475
2007-01-15 23:25:35 +00:00
Ged Murphy
743b67a342 silence debug message
svn path=/trunk/; revision=25474
2007-01-15 23:23:29 +00:00
Alex Ionescu
4f9b8acb4d - Fix locking bugs in guarded mutex implementation. In race conditions some operations were not re-attempted.
- Fix some other logic bugs, including a serious bug in KeTrytoAcquireGuardedMutex which inversed the result.

svn path=/trunk/; revision=25473
2007-01-15 21:34:36 +00:00
Alex Ionescu
2e03cf0bb5 - Fix several bugs in the rundown protection implementation, mostly related to incorrect loop restarting in case of a race condition.
- The rundown event is a sync event, not a notification event.
- Only take slow path when waiting for release if the value changed *and* is still not active, not if only one of the two is true.

svn path=/trunk/; revision=25472
2007-01-15 21:12:32 +00:00
Alex Ionescu
6b4b2a47a3 - Add KeAreAllApcsDisabled to DDK.
[4 bug fixes]:
- Setup default GrantedAccess for system init thread/process in ObInit.
- Fix a small bug in ObpReapObject.
- Set object header flag is deletion was done deferred.
- Simplify ObpDeferObjectDeletion.
- Use KeAreAllApcsDisabled instead of only checking IRQL to determine if we should do defered deletion.

svn path=/trunk/; revision=25471
2007-01-15 20:54:40 +00:00
Alex Ionescu
d591f751c7 [12 bug fixes]:
- Isolate FuckedUpCm version of ObpLookupDirectoryObject into CmpLookupDirectoryObject to avoid name info leak.
- Rename ObpIncrementQueryReference to ObpAcquireNameInformation and ObpDecrementQueryReference to ObpReleaseNameInformation and make some changes to make calling a lot easier.
- Fixup reference increment loop in above function.
- Fix incorrect check for defer delete flag instead of query references flag.
- Only clear the directory/directory lock flag in ObpCleanupDirectoryLookup if the directory was actually locked.
- Fix lock logic in ObpLookupDirectoryEntry.
- Properly handle the case when lookup occurs after an existing object, avoid name information leak and reference leak.
- Hold shared lock inside NtQuerydirectoryObject.
- Properly initiailize the directory object in NtCreateDirectoryObject.
- Clear create info before creating the unnamed handle in ObInsertObject.
- Only dereference the target process if we actually have one in NtDuplicateObject.
- Don't double-reference the name information in ObpDeleteNameCheck, thus avoiding another leak.
- Fix object case sensitivity check in ObpLookupObjectName.

svn path=/trunk/; revision=25469
2007-01-15 20:24:40 +00:00
Alex Ionescu
4e9c7cf7e4 [22 bugfixes]:
- ObpReferenceProcessObjectByHandle is always called with HandleInformation, remove this check.
- ObpReferenceProcessObjectByHandle already gets a process parameter, don't query the current one.
- ObpReferenceProcessObjectByHandle already gets a handle table, don't query the current one.
- ObpDecrementHandleCount shouldn't remove the object from the creator info.
- ObpDecrementHandleCount should clear the exclusive process if this is the last handle.
- Killing a protected handle should raise an exception if a debug port is connected, not an exception port.
- ObpIncrementHandleCount should support OBJ_FORCE_ACCESS_CHECK.
- ObpIncrementHandleCount needs to support ObDuplicateHandle.
- ObpIncrementHandleCount needs to support being called without an AccessState.
- Fix interlocked handle count accounting.
- Allow user-mode to create kernel-mode handles.
- Fix the way Additional reference bias is de-referenced during failures.
- Complete rundown in ObKillProcess.
- Send SourceProcess in ObDuplicateHandle.
- Assume initial failure and clear handle in ObDuplicateHandle.
- Don't leak object table references when failing in ObDuplicateHandle.
- Assume failure in ObOpenObjectByName.
- Don't leak buffer during failure in ObOpenObjectByName.
- Don't leak object reference durning failure in ObOpenObjecByName.
- Validate handle attributes in ObOpenObjectByPointer.
- Use RtlCopyMemory when possible to speed up.

svn path=/trunk/; revision=25467
2007-01-15 18:37:53 +00:00
Ged Murphy
3bd87918a1 fix icon loading code to load the correct icon for the current display bpp settings
svn path=/trunk/; revision=25466
2007-01-15 18:08:37 +00:00
Alex Ionescu
d673aa2616 - Fix handle close bug. The ExDestroyHandleEntry API was only killing entries unless the table wasn't being destoyed, which it actually is during process termination, and through failing, was actually not closing the handle at all. This means any killed process leaked all its handles and they were never closed. These handles are now closed, reducing memory load/leaks and opening the door for new bugs :)
- Fix LPC process closing bug.
- Rewrite executive timer support to make it thread-safe and use proper locking order and semantics as well as safe referencing. Also implement Windows 2003 feature of flushing DPCs when a timer is deleted, to avoid the timer from being fired after deletion.

svn path=/trunk/; revision=25461
2007-01-15 07:33:42 +00:00
Johannes Anderwald
8eb1ea4802 - add a primitive XSL for displaying the ReactOS dependency map
svn path=/trunk/; revision=25458
2007-01-14 20:41:01 +00:00
Johannes Anderwald
6a1a30f13b - comment out using xsl style sheet until its ready
svn path=/trunk/; revision=25457
2007-01-14 19:49:27 +00:00
Johannes Anderwald
e112816fe2 - implement dependency map checking
svn path=/trunk/; revision=25455
2007-01-14 19:28:07 +00:00
Johannes Anderwald
21f599291b - the parameter flags is of type unsigned. Therefore you dont need an additional check if Flags < 0
svn path=/trunk/; revision=25454
2007-01-14 18:07:56 +00:00
Magnus Olsen
363cf7f261 the public frist version that can convert arty testms.exe that are commited to powerpc branch in the alink folder.
the program doing main() ( return 0 )
fixing minior bugs as well

svn path=/trunk/; revision=25453
2007-01-14 18:01:56 +00:00
Magnus Olsen
bb89b8709c delete ImageLoaer.c until I time rewrite it
svn path=/trunk/; revision=25451
2007-01-14 17:16:38 +00:00
Sylvain Petreolle
93c3b784de fix warnings
svn path=/trunk/; revision=25450
2007-01-14 15:21:35 +00:00
Magnus Olsen
f74e30f8ca Adding stub for AnyalsingProcess and ConvertToIntelProcess
svn path=/trunk/; revision=25449
2007-01-14 13:54:19 +00:00
Magnus Olsen
7c96cb069a adding blr opcode (can not found it in the ibm or motorala doc, the primary opcode refens to addi).
now we can disambler two opcode the li and blr, add blr to my own asm langues. 

svn path=/trunk/; revision=25448
2007-01-14 12:10:53 +00:00
Magnus Olsen
0764ca19ac Fixing a bug in ppc opcode Li
Fixing the memory leak bug
Full implement of the Li 
Convert Li to my own asm langues, opcode move reg,imm
Left todo is add the anyalying process and converting process, after that we can translate our frist public pe file for ppc to intel
with one opcode, it must be Li 



svn path=/trunk/; revision=25447
2007-01-14 10:57:18 +00:00
Magnus Olsen
c96114a82c start on adding the own langues, this version create a memory leak if u try run this tool in translate mode. but not in
disambler mode. (only true for ppc brain about memory leak)

svn path=/trunk/; revision=25445
2007-01-13 23:26:32 +00:00
Magnus Olsen
95c8fa90a8 1. fixing a layout bug
2. frist disambler output for public, the public version can now disambler ppc li rA,imm that all at moment

svn path=/trunk/; revision=25444
2007-01-13 22:09:11 +00:00
Eric Kohl
088891d47e Add hit-testing for caption buttons.
svn path=/trunk/; revision=25443
2007-01-13 19:15:12 +00:00
Johannes Anderwald
1b7e5efafd - add italian translation by Paolo Devoti, devotip@tiscali.it
- fixes some issues with the patch (missing \ or \n or ")
See issue #1983 for more details.

svn path=/trunk/; revision=25442
2007-01-13 18:39:38 +00:00
Johannes Anderwald
bbf29dfdf8 - add italian translation by Paolo Devoti, devotip@tiscali.it
- fixes bug 1974, 1975, 1976

svn path=/trunk/; revision=25441
2007-01-13 18:20:53 +00:00
Magnus Olsen
350c6a32c2 adding GetData32Be, GetData32Le for getting 4bytes from big or lite endian
start implment Ld for ppc.

svn path=/trunk/; revision=25440
2007-01-13 17:27:14 +00:00
Magnus Olsen
ad3d7fea36 adding print out the type of asm file in the asm file
svn path=/trunk/; revision=25439
2007-01-13 14:34:50 +00:00
Magnus Olsen
9b4a7b1fc5 adding option for disambler mode, disambler mode does not translate a binary file. it doing a disambler of the file
svn path=/trunk/; revision=25438
2007-01-13 12:23:25 +00:00
Johannes Anderwald
b339ec7ea9 - make sysreg compilable under Linux
- sysreg is now able to start the emulator but it cannot get any debug data yet. But this might be due that i tested sysreg in linux under vmware which then ran qemu....

svn path=/trunk/; revision=25437
2007-01-13 12:19:56 +00:00
Magnus Olsen
4ffa785260 1. last move is done arm to From folder
2. remove some include in CpuToIntel.c file they are not longer need it. 


svn path=/trunk/; revision=25436
2007-01-13 10:39:12 +00:00