Commit graph

19225 commits

Author SHA1 Message Date
Alex Ionescu
c1cfa41da9 - Tabs not spaces.
svn path=/trunk/; revision=20582
2006-01-05 16:30:20 +00:00
Alex Ionescu
ac8dc76322 - Uncondtionally build with optimizations (can still be disabled by commenting out the block locally; is this easy enough Ge?)
svn path=/trunk/; revision=20581
2006-01-05 16:25:44 +00:00
Alex Ionescu
300da88aff - New ERESOURCE implementation: fixes the return value of some functions (VOID vs NTSTATUS, USHORT vs ULONG), as well as optimized the code loops and general structure of the code. Additionnaly, functions do not simply call other functions with similar names; the exact implementation of each function has now been properly separated (see the DDK for more information on this) to have the most optimized scenarios.
- Also, the spinlock is not actually acquired on non-SMP builds; instead, interrupts are blocked and unblocked for acquire/release, this optimizes locking.
- Added many asserts and bugcheck scenarios.
- Added thread priority boosting.
- Added some debugging helpers and deadlock detection.
- Added RESOURCE_NOT_OWNED bugcehck message.
* Thanks again to Waxdragon (Andrew) for testing this build.

svn path=/trunk/; revision=20580
2006-01-05 16:24:32 +00:00
Alex Ionescu
444bb36f82 - Change dispatcher lock release to be more like documented in Windows Internals II and to allow an easier move to Queued Spinlock.
svn path=/trunk/; revision=20579
2006-01-05 15:32:08 +00:00
Casper Hornstrup
f881f51fdf Identify TechBot to allow private messages
svn path=/trunk/; revision=20578
2006-01-05 15:29:08 +00:00
Alex Ionescu
6f136848b2 - Fix build.
svn path=/trunk/; revision=20577
2006-01-05 15:17:54 +00:00
Alex Ionescu
8ca886843a - Disable commented out define-check which i had only commented to check building.
svn path=/trunk/; revision=20576
2006-01-05 13:59:11 +00:00
Alex Ionescu
93d0b2ac85 - Separate UP and MP spinlock functions.
- Optimize UP spinlock functions so they don't call ntoskrnl anymore and only raise/lower irql.
- Implemented Queued Spinlocks and In-Stack Queued Spinlocks for UP machines.
* Implemented KeAcquireInStackQueuedSpinLock, KeReleaseInStackQueuedSpinLock, KeAcquireQueuedSpinLock, KeReleaseQueuedSpinLock, KeTryToAcquireQueuedSpinLock, KeTryToAcquireQueuedSpinLockRaiseToSynch, KeAcquireQueuedSpinLockRaisetoSynch.

svn path=/trunk/; revision=20575
2006-01-05 13:51:06 +00:00
Hervé Poussineau
ca735d261c Add some exports to ntdll
svn path=/trunk/; revision=20574
2006-01-05 13:40:05 +00:00
Alex Ionescu
5bba25c90e - Implemented Queued and In-Stack Queued Spinlocks (at DPC-Level). See "Windows Internals II" Chapter 4, Pages 25-27.
svn path=/trunk/; revision=20573
2006-01-05 13:12:48 +00:00
Hartmut Birr
4c4d352a5e KefReleaseSpinLockFromDpcLevel needs the address of a spinlock and not its value.
svn path=/trunk/; revision=20572
2006-01-05 12:48:33 +00:00
Hervé Poussineau
b71ffe4703 Add prototypes for Nt/ZwReplyWaitReceivePortEx, Nt/ZwImpersonateAnonymousToken
svn path=/trunk/; revision=20571
2006-01-05 12:27:03 +00:00
Gé van Geldorp
a41bad3ee5 - Disable NtQuerySecurityObject for now
- Add some registry entries for TinyWeb (patch by Dr.Fred)
Fixes 1214

svn path=/trunk/; revision=20570
2006-01-05 09:22:09 +00:00
Alex Ionescu
caa14fa66e Fix stack corruption. Thanks to Waxdragon and the fact he uses an -O2 build (hint hint nudge nudge)
svn path=/trunk/; revision=20569
2006-01-05 06:24:07 +00:00
Alex Ionescu
5e6fa26231 - Optimized the dispatcher lock. It is now gone on non-SMP systems and IRQL is raised or lowered instead.
- Made inlined functions in ke/wait.c macros, because they weren't being inlined.
- Created separate cases for satisfying mutant, non-mutant and generic objects, to optimize wait satisfaction.
- Fixed some places which werne't setting the dispatcher header's size member correctly.
- Fixed formatting in ke/wait.c
- Fixed a case in KiCheckAlertability: we also need to check if the thread is alerted in Kernel-Mode, even if the wait mode given was user and user-mode is not alerted.
- Fixed signaling checks across the wait code and removed KiCheckIfObjectSignaled. We must not consider the mutant as signaled if SignalState is = 1.
- Fix code to check if the wait blocks' status is STATUS_TIMEOUT, because we do not need to check for signal state in that case.
- Removed the exports for internal dispatcher lock routines.


** Thanks to Waxdragon for stress-testing this for an hour :)

svn path=/trunk/; revision=20568
2006-01-05 04:26:55 +00:00
Magnus Olsen
f58996b3e9 fix new strechblt code for dib32, left todo dib1, dib4, dib24
svn path=/trunk/; revision=20567
2006-01-05 01:49:00 +00:00
Alex Ionescu
1ca93c8a41 - fix build on dbg=0. Thanks to Andrew
svn path=/trunk/; revision=20566
2006-01-05 00:56:44 +00:00
Gé van Geldorp
afb3a84621 Avoid using uninitialized variables
svn path=/trunk/; revision=20565
2006-01-04 23:48:15 +00:00
Gé van Geldorp
d31486016d Only use the Folder class handler if we're actually executing a folder.
Fixes bug 1235.

svn path=/trunk/; revision=20564
2006-01-04 23:28:10 +00:00
Gé van Geldorp
6a771b2fde Fix (so far harmless) typo
svn path=/trunk/; revision=20563
2006-01-04 22:46:45 +00:00
Gé van Geldorp
30db12dcc8 Let oskit tell us when sending should be blocked 'cause its stuffed upto its
nose with data waiting to be sent. Bug 1232.

svn path=/trunk/; revision=20562
2006-01-04 22:40:48 +00:00
Alex Ionescu
d97db4ba3a - Fix worker thread priorities. A quick check of the DDK and ProcesXP confirmed that there was a bug (thanks GvG!). Turns out I had forgotten to use the -base- priority kernel call. Renamed some variables to make it clearer and fixed the bug. The correct priorities are 12, 13, 15.
svn path=/trunk/; revision=20561
2006-01-04 20:45:58 +00:00
Thomas Bluemel
450dfac672 fixed gcc4 warnings
svn path=/trunk/; revision=20560
2006-01-04 14:26:06 +00:00
James Tabor
1b8dc2e713 Clean up and fixed NtUserGetMenuItemRect. Needs more testing. I watch mplayerc swip all the menu items with crashing.
svn path=/trunk/; revision=20559
2006-01-04 06:44:52 +00:00
Ged Murphy
4ac1eae8cf - Display a temporary note in ipconfig to avoid user confusion.
- Requires fixing of GetAdaptersInfo 

svn path=/trunk/; revision=20558
2006-01-03 23:41:57 +00:00
Alex Ionescu
807dd25391 - Implement Pushlocks. Only Waking, and Exclusive Acquire/Release + Waits have been tested. The shared paths and block/unblock are still untested and may probably contain bugs. Pushlocks are not yet used in the kernel and they won't be until all paths are tested and validated.
- Public DDIs Implemented: ExfAcquirePushLockExclusive, ExfAcquirePushLockShared, ExfTryToWakePushLock, ExfReleasePushLock, ExfReleasePushLockExclusive, ExfReleasePushLockShared, ExfUnblockPushLock.

svn path=/trunk/; revision=20557
2006-01-03 23:36:05 +00:00
Alex Ionescu
53ee440af8 - More proper fix for the QEMU/Abiword regression. Remove kernel32 hack. Thanks to Filip and The Munger.
svn path=/trunk/; revision=20556
2006-01-03 22:36:36 +00:00
Alex Ionescu
ce5adef908 - Dirty temporary fix to unregress abiword/qemu.
svn path=/trunk/; revision=20555
2006-01-03 22:25:09 +00:00
Alex Ionescu
07b0b865dc - Fix shamefully dangerously broken Work Thread/Queue/Item implementation:
* Do not pollute the kernel with 10 real-time threads and 5 high-priority threads in order to manage work items. Work threads are very-low priority (< 7) and should never pre-empt userthreads like they do now. 1 priority 7, 5 priority 5 and 3 priority 4 threads are now properly created.
  * Implement a worker thread balance set manager. On SMP systems, it is able to determine when a new thread should be allocate to execute on a free CPU. On both UP and MP, it is also able to detect if a work queue has deadlocked, and will allocate new dynamic threads to unfreeze the queue.
  * Add check for threads returning with APC disabled, and re-enable APCs if this happend. This hack is used in NT for broken drivers.
  * Lots of code changes to support dynamic threads, which:
    - Can terminate.
    - Use a 10 minute timeout on the kernel queue.
  * Add skeleton code for swapping worker thread stacks as well as worker thread shutdown (not yet implemented).
  * Add WORKER_INVALID bugcheck definition.
  * These changes seem to make ROS a lot more responsive.

- NDK: 
  * Make more compatible with MS IFS
  * Fix EX_WORK_QUEUE definition.
  * Fix ETHREAD offsets.
  * Fix RtlIsNameLegalDOS8Dot3 definition.
  * Move splay tree defines to IFS.

svn path=/trunk/; revision=20554
2006-01-03 21:34:19 +00:00
Aleksey Bragin
1aea3ab1ab Add kbdur.dll (Ukrainian keyboard layout) to the install-cd.
svn path=/trunk/; revision=20553
2006-01-03 21:29:39 +00:00
Ged Murphy
e94e037e29 fix ugly tab formatting
svn path=/trunk/; revision=20552
2006-01-03 21:17:28 +00:00
Ged Murphy
e5bdbe851f Skeleton dialog box to control system page file size
svn path=/trunk/; revision=20551
2006-01-03 21:00:06 +00:00
Magnus Olsen
7ceb46269d Commit a patch for hide and show mouse. (forget it)
svn path=/trunk/; revision=20550
2006-01-03 18:49:10 +00:00
Magnus Olsen
8b60a45ea6 forget remove some test code.
svn path=/trunk/; revision=20549
2006-01-03 17:59:56 +00:00
Magnus Olsen
3c8dbc6c23 forget remove a calc value in the for loop it can do outside the loop.
svn path=/trunk/; revision=20548
2006-01-03 17:21:11 +00:00
Magnus Olsen
0595ffc278 Remove putpixel from strechblt and add code to write direcly to the memory. it incress the speed for strechblt.
this is ony for 16bit graphice mode. 
 

svn path=/trunk/; revision=20547
2006-01-03 17:05:39 +00:00
Magnus Olsen
05d9ad7068 addding new streach code for dib8, left to add it is dib1, dib4, dib24, dib32
svn path=/trunk/; revision=20546
2006-01-03 16:22:09 +00:00
Hartmut Birr
02b247cca6 Copy the correct value if the value is stored directly in the data pointer (in CmiExportValue).
svn path=/trunk/; revision=20545
2006-01-03 14:56:47 +00:00
Hartmut Birr
f0fe4ec071 Fixed the the conversion of the vendor identifier string. Sometimes, the wrong conversion has resulted in a invalid opcode exception.
svn path=/trunk/; revision=20544
2006-01-03 13:44:35 +00:00
Maarten Bosma
89db3ed74e fix typos.
svn path=/trunk/; revision=20543
2006-01-03 11:49:59 +00:00
Maarten Bosma
a5a347cb7b fix spelling mistake.
svn path=/trunk/; revision=20542
2006-01-03 00:24:37 +00:00
Maarten Bosma
5e6a4d2387 Change URL to svn.reactos.org
svn path=/trunk/; revision=20541
2006-01-03 00:17:31 +00:00
Maarten Bosma
6344467474 Add some Apps and change tree version to the bare one.
svn path=/trunk/; revision=20540
2006-01-03 00:12:35 +00:00
Maarten Bosma
2ac089bd54 Change include base too.
svn path=/trunk/; revision=20539
2006-01-03 00:10:01 +00:00
Magnus Olsen
b9c3f275b7 Thx GvG for helping put to gather a new math formula that make alot of calc not needed any longer. and correct fourmla for rounding fault. I did not think of it when I rewrote the streachblt. it feal strechblt is bit fasfer agains the old one.
svn path=/trunk/; revision=20538
2006-01-02 23:43:43 +00:00
Gé van Geldorp
485b43da1d Silence some debug messages
svn path=/trunk/; revision=20537
2006-01-02 20:51:54 +00:00
Gé van Geldorp
f7fe0d0258 Use lookaside lists for two most common allocation sizes (mbuf and data buffer)
svn path=/trunk/; revision=20536
2006-01-02 20:26:03 +00:00
Gé van Geldorp
d19debd757 Use a lookaside list for tracking
svn path=/trunk/; revision=20535
2006-01-02 20:04:19 +00:00
Magnus Olsen
c04e99c3d3 Correct Streachblt in windows mode, it take accunt org and offset now. this need to be implement in dib1, dib4, dib8,dib24, dib32
svn path=/trunk/; revision=20534
2006-01-02 19:00:47 +00:00
Hartmut Birr
39a85a187f Implemented the 'red zone check' for the non paged pool.
svn path=/trunk/; revision=20533
2006-01-02 18:45:52 +00:00