reactos.git
10 years ago[AVIFIL32]
Timo Kreuzer [Wed, 26 Jan 2011 16:26:42 +0000 (16:26 +0000)]
[AVIFIL32]
Split utf8 resources into theit own file (MSVC compatibility)

svn path=/trunk/; revision=50498

10 years agocrt header compatibility update:
Timo Kreuzer [Wed, 26 Jan 2011 16:24:35 +0000 (16:24 +0000)]
crt header compatibility update:
- define _USE_MATH_DEFINES for dsound, gdiplus, jscript and some win32k files
- don't define HAVE_LRINT(F) in libsamplerate
- Remove M_PI constants from win32k

svn path=/trunk/; revision=50497

10 years ago[CMAKE]
Timo Kreuzer [Mon, 24 Jan 2011 21:20:04 +0000 (21:20 +0000)]
[CMAKE]
Fix rostests after changing macros

svn path=/trunk/; revision=50481

10 years ago- Remove undocumented defines from winuser.h and include undocuser.h when _WINE is...
Aleksey Bragin [Mon, 24 Jan 2011 12:58:51 +0000 (12:58 +0000)]
- Remove undocumented defines from winuser.h and include undocuser.h when _WINE is defined.

svn path=/trunk/; revision=50477

10 years ago[NTOS]
Roel Messiant [Sun, 23 Jan 2011 19:27:13 +0000 (19:27 +0000)]
[NTOS]
- Only update the System Page Directory when expanding the paged pool. Fixes the PointerPde asserts.
  On paged pool expansion, the system page directory and the process page directory of the calling process were updated.
  When updating the process page directory, an assert made sure the PDE that got written was invalid.

  In case of the System process, both page directories are located on the same physical page.
  So when this process expanded the paged pool, the system page directory update automagically
  updated the process page directory too.  The assert therefore triggered.

  Not explicitly updating the process page directory will result in a page fault later on, which is
  handled by copying the required PDE from the system page directory to the process page directory.

  Rumour has it this fix is incorrect because "something's wrong with the System PDE stuff".  The lack
  of any further info however leads to this change and explanation.

svn path=/trunk/; revision=50475

10 years ago[NPFS]
Eric Kohl [Sun, 23 Jan 2011 14:41:07 +0000 (14:41 +0000)]
[NPFS]
Check if the whole pipe name fits into the return buffer. Return STATUS_BUFFER_OVERFLOW if it does not fit and copy only a part of the file name in this case.

svn path=/trunk/; revision=50474

10 years ago[SETUPAPI]
Eric Kohl [Sat, 22 Jan 2011 18:16:12 +0000 (18:16 +0000)]
[SETUPAPI]
Fix a warning.

svn path=/trunk/; revision=50468

10 years ago[SETUPAPI]
Eric Kohl [Sat, 22 Jan 2011 15:43:57 +0000 (15:43 +0000)]
[SETUPAPI]
- Implement CMP_WaitServicesAvailable().
- CM_Get_First_Log_Conf_Ex(): Create a LOG_CONF_INFO struct only if plcLogConf is not NULL.

svn path=/trunk/; revision=50461

10 years ago[FREELDR]
Timo Kreuzer [Sat, 22 Jan 2011 09:47:20 +0000 (09:47 +0000)]
[FREELDR]
compile headless support only for x86

svn path=/trunk/; revision=50459

10 years ago[NTOSKRNL]
Timo Kreuzer [Sat, 22 Jan 2011 09:43:52 +0000 (09:43 +0000)]
[NTOSKRNL]
MiAddressToPte translates a virtual address to the corresponding PTE, MiAddressToPde to the corresponding PDE. MiPteToAddress is the inverse of MiAddressToPte and translates from a PTE to the virtual address. MiPdeToAddress broke this scheme and didn't calculate the corresponding virtual adress, but the adress of the page table. Fix this inconsistency by renaming the macro to MiPdeToPte and adding a fixed MiPdeToAddress. All references fixed accordingly.

svn path=/trunk/; revision=50458

10 years ago[INTRIN]
Timo Kreuzer [Fri, 21 Jan 2011 20:56:36 +0000 (20:56 +0000)]
[INTRIN]
- Implement _mm_sfence, _mm_lfence, __faststorefence (for amd64)
- Don't use __sync_synchronize() for _ReadWriteBarrier, as it issues an mfence instruction and this is not what we want
- Remove "BUGBUG" comment, because the fact that _ReadBarrier and _WriteBarrier are full (compiler) barriers isn't critical.

svn path=/trunk/; revision=50456

10 years ago[NPFS]
Eric Kohl [Thu, 20 Jan 2011 21:48:06 +0000 (21:48 +0000)]
[NPFS]
Initialize only the required parts of the return buffer. This will enable the driver to return information about multiple pipes in a single request.

svn path=/trunk/; revision=50452

10 years ago[CMAKE]
Timo Kreuzer [Thu, 20 Jan 2011 12:52:41 +0000 (12:52 +0000)]
[CMAKE]
Define __ROS_LONG64__ for all winetests

svn path=/trunk/; revision=50447

10 years ago[CMAKE]
Amine Khaldi [Wed, 19 Jan 2011 19:01:37 +0000 (19:01 +0000)]
[CMAKE]
- Revert r50441. Please note that the recent revisions around this define are for testing.

svn path=/trunk/; revision=50444

10 years ago[GDI32]
Timo Kreuzer [Wed, 19 Jan 2011 18:10:50 +0000 (18:10 +0000)]
[GDI32]
Fix broken portable implementation of _lrintf, 2nd try :)

svn path=/trunk/; revision=50443

10 years ago[GDI32]
Timo Kreuzer [Wed, 19 Jan 2011 18:10:08 +0000 (18:10 +0000)]
[GDI32]
Fix broken portable implementation of _lrintf

svn path=/trunk/; revision=50442

10 years ago[CMAKE]
Amine Khaldi [Wed, 19 Jan 2011 17:51:43 +0000 (17:51 +0000)]
[CMAKE]
- Add __WINESRC__ definition to all winetests.

svn path=/trunk/; revision=50441

10 years ago[ASM]
Timo Kreuzer [Wed, 19 Jan 2011 16:58:58 +0000 (16:58 +0000)]
[ASM]
Add include guards to asm.inc and comment out broken ljmp macro

svn path=/trunk/; revision=50438

10 years ago[CMAKE]
Timo Kreuzer [Wed, 19 Jan 2011 16:26:49 +0000 (16:26 +0000)]
[CMAKE]
Revert part of 50435

svn path=/trunk/; revision=50437

10 years ago[CMAKE]
Timo Kreuzer [Wed, 19 Jan 2011 14:59:38 +0000 (14:59 +0000)]
[CMAKE]
Revert r50434. Insetad add __WINESRC__ definition to amstream and avifil32 winetests

svn path=/trunk/; revision=50435

10 years ago[CMAKE]
Timo Kreuzer [Wed, 19 Jan 2011 14:18:42 +0000 (14:18 +0000)]
[CMAKE]
Add __WINESRC__ definition to all winetests.

svn path=/trunk/; revision=50434

10 years ago[NTOS]
Roel Messiant [Tue, 18 Jan 2011 22:42:44 +0000 (22:42 +0000)]
[NTOS]
- Fix a typo in the page fault handler that caused PDEs to be fixed up when they were in fact valid.

svn path=/trunk/; revision=50426

10 years agorevert it... test commit...
Daniel Reimer [Mon, 17 Jan 2011 23:16:46 +0000 (23:16 +0000)]
revert it... test commit...

svn path=/trunk/; revision=50418

10 years agoTest commit
Daniel Reimer [Mon, 17 Jan 2011 23:12:27 +0000 (23:12 +0000)]
Test commit

svn path=/trunk/; revision=50417

10 years agoUpdate rapps database and add encoded's VMWare Sound driver.
Daniel Reimer [Mon, 17 Jan 2011 23:05:15 +0000 (23:05 +0000)]
Update rapps database and add encoded's VMWare Sound driver.

svn path=/trunk/; revision=50416

10 years ago[TEST]
Sylvain Petreolle [Mon, 17 Jan 2011 23:01:16 +0000 (23:01 +0000)]
[TEST]
Enable DroidSansFallback.ttf.

svn path=/trunk/; revision=50415

10 years ago[TEST]
Sylvain Petreolle [Mon, 17 Jan 2011 22:58:29 +0000 (22:58 +0000)]
[TEST]
Disable DroidSansFallback.ttf.

svn path=/trunk/; revision=50414

10 years ago[TEST]
Sylvain Petreolle [Mon, 17 Jan 2011 22:53:11 +0000 (22:53 +0000)]
[TEST]
Enable DroidSansFallback.ttf.

svn path=/trunk/; revision=50413

10 years ago[TEST]
Sylvain Petreolle [Mon, 17 Jan 2011 22:46:46 +0000 (22:46 +0000)]
[TEST]
Disable DroidSansFallback.ttf.

svn path=/trunk/; revision=50412

10 years ago[MSVCRT]
Sylvain Petreolle [Mon, 17 Jan 2011 21:51:30 +0000 (21:51 +0000)]
[MSVCRT]
No reason for wcsxfrm to be a stub when code is here.

svn path=/trunk/; revision=50411

10 years agoTRANSLATION: fix typo in shutdown.
Sylvain Petreolle [Mon, 17 Jan 2011 21:37:59 +0000 (21:37 +0000)]
TRANSLATION: fix typo in shutdown.

svn path=/trunk/; revision=50410

10 years ago[USER32]
Timo Kreuzer [Mon, 17 Jan 2011 01:22:16 +0000 (01:22 +0000)]
[USER32]
Fix CreateIcon and CreateIconIndirect. Fixes user32_winetest:cursoricon. (Yes we execute less tests, but that is correct! wine probably only passes these tests by chance)

svn path=/trunk/; revision=50408

10 years ago[CMAKE]
Amine Khaldi [Sun, 16 Jan 2011 22:11:35 +0000 (22:11 +0000)]
[CMAKE]
- Adapt gdi32 apitest cmake build to the recent changes.

svn path=/trunk/; revision=50407

10 years ago[USER32]
Timo Kreuzer [Sun, 16 Jan 2011 21:41:47 +0000 (21:41 +0000)]
[USER32]
- Fix bug in CreateIconIndirect
- implement get_icon_size
- use unmodified wine code for STATIC_PaintIconfn

svn path=/trunk/; revision=50406

10 years ago[USER32_APITEST]
Timo Kreuzer [Sun, 16 Jan 2011 21:03:20 +0000 (21:03 +0000)]
[USER32_APITEST]
Add tests for GetIconInfo.

svn path=/trunk/; revision=50405

10 years ago[GDI32_APITEST]
Timo Kreuzer [Sun, 16 Jan 2011 20:53:48 +0000 (20:53 +0000)]
[GDI32_APITEST]
Add tests for DPtoLP
- More tests for CombineTransform, CreateBitmapIndirect and SelectObject

svn path=/trunk/; revision=50404

10 years ago[AMD64]
Timo Kreuzer [Sun, 16 Jan 2011 18:16:24 +0000 (18:16 +0000)]
[AMD64]
Add ksamd64.inc

svn path=/trunk/; revision=50403

10 years ago- Fix replaced by more flexible code for arbitrary cursor sizes
Matthias Kupfer [Sun, 16 Jan 2011 18:15:12 +0000 (18:15 +0000)]
- Fix replaced by more flexible code for arbitrary cursor sizes

svn path=/trunk/; revision=50402

10 years agoImplement GetClassLongPtrA/W
Thomas Bluemel [Sun, 16 Jan 2011 17:08:07 +0000 (17:08 +0000)]
Implement GetClassLongPtrA/W

svn path=/trunk/; revision=50399

10 years ago- Fix draw of cursors in static controls
Matthias Kupfer [Sun, 16 Jan 2011 12:51:14 +0000 (12:51 +0000)]
- Fix draw of cursors in static controls
- Last part of fix for bug #4874

svn path=/trunk/; revision=50398

10 years agoCreate a security descriptor for the desktops rather than passing the ACLs in as...
Thomas Bluemel [Sun, 16 Jan 2011 02:51:58 +0000 (02:51 +0000)]
Create a security descriptor for the desktops rather than passing the ACLs in as a security descriptor

svn path=/trunk/; revision=50397

10 years agoPortability bugfixes
Thomas Bluemel [Sun, 16 Jan 2011 01:32:45 +0000 (01:32 +0000)]
Portability bugfixes

svn path=/trunk/; revision=50396

10 years ago[WIN32K]
Timo Kreuzer [Sat, 15 Jan 2011 19:42:56 +0000 (19:42 +0000)]
[WIN32K]
Set correct error value on failure in NtUserSetCursor. Patch by Victor Martinez.

svn path=/trunk/; revision=50392

10 years ago[NTOSKRNL]
Timo Kreuzer [Sat, 15 Jan 2011 19:13:22 +0000 (19:13 +0000)]
[NTOSKRNL]
Fix comments and reduce code complexity.

svn path=/trunk/; revision=50391

10 years ago[NTOSKRNL]
Eric Kohl [Sat, 15 Jan 2011 14:35:26 +0000 (14:35 +0000)]
[NTOSKRNL]
Simplify SepPrivilegeCheck.
Patch by Timo Kreuzer.

svn path=/trunk/; revision=50390

10 years ago[PING]
Timo Kreuzer [Sat, 15 Jan 2011 12:58:05 +0000 (12:58 +0000)]
[PING]
Fix MyLoadString. Patch by menone7 at gmail dot com.

svn path=/trunk/; revision=50389

10 years ago[CRT]
Timo Kreuzer [Sat, 15 Jan 2011 11:18:01 +0000 (11:18 +0000)]
[CRT]
Fix uninitialized warning

svn path=/trunk/; revision=50387

10 years agoRevert 50381 and 50382. Altough it reduces number of reboots in the test server,...
Giannis Adamopoulos [Fri, 14 Jan 2011 23:20:26 +0000 (23:20 +0000)]
Revert 50381 and 50382. Altough it reduces number of reboots in the test server, it somehow reveals a registry corruption and cripples completely automated testing

svn path=/trunk/; revision=50386

10 years ago[CRT]
Timo Kreuzer [Fri, 14 Jan 2011 20:00:10 +0000 (20:00 +0000)]
[CRT]
Fix miscalculation of number of decimal points to shift for %f format. Should fix shlwapi:string tests and bug 5818.

svn path=/trunk/; revision=50385

10 years ago[IPHLPAPI]
Roel Messiant [Fri, 14 Jan 2011 18:47:57 +0000 (18:47 +0000)]
[IPHLPAPI]
- Remove conditional redefine of DPRINT. Wine debug channels at this point, and we have NDEBUG.
- Use TRACE instead of DbgPrint. Gets rid of the "Status 2" spam when no static nameserver is in the registry.

svn path=/trunk/; revision=50384

10 years ago[CMAKE]
Amine Khaldi [Thu, 13 Jan 2011 11:13:09 +0000 (11:13 +0000)]
[CMAKE]
- Fix rosautotest build.

svn path=/trunk/; revision=50382

10 years ago[rosautotest]
Giannis Adamopoulos [Thu, 13 Jan 2011 09:58:04 +0000 (09:58 +0000)]
[rosautotest]
-Implement closing any dialog that shows and stays visible for some time. This way rosautotest can now continue if a test application crashes or asserts.

svn path=/trunk/; revision=50381

10 years ago[user32]
Giannis Adamopoulos [Thu, 13 Jan 2011 09:56:32 +0000 (09:56 +0000)]
[user32]
- Implement sending EVENT_SYSTEM_DIALOGSTART event. It will be used by rosautotest

svn path=/trunk/; revision=50380

10 years ago[CMAKE]
Roel Messiant [Wed, 12 Jan 2011 23:20:02 +0000 (23:20 +0000)]
[CMAKE]
- Add tests for CombineTransform and MaskBlt, part 2. Build is happy again.

svn path=/trunk/; revision=50379

10 years agoFix typos ;)
Johannes Anderwald [Wed, 12 Jan 2011 22:25:16 +0000 (22:25 +0000)]
Fix typos ;)

svn path=/trunk/; revision=50378

10 years ago[PING]
Pierre Schweitzer [Wed, 12 Jan 2011 21:55:48 +0000 (21:55 +0000)]
[PING]
French translation patch from myself aka Pierre Schweitzer, with deepest love, and so on...

svn path=/trunk/; revision=50377

10 years ago[PING]
Timo Kreuzer [Wed, 12 Jan 2011 21:35:45 +0000 (21:35 +0000)]
[PING]
Italian translation of ping. Patch by Vincenzo Cotugno ( vins8920 at hotmail dot com)

svn path=/trunk/; revision=50376

10 years ago[WIN32K]
Timo Kreuzer [Wed, 12 Jan 2011 21:15:46 +0000 (21:15 +0000)]
[WIN32K]
Go back to hiding the cursor with GreMovePointer, instead of setting NULL bitmaps. While MSDN states that psoColor and psoMask can both be NULL in DrvSetPointerShape, it doesn't explicitly say anything about both being NULL at the same time. VBox driver doesn't expect that and will crash, so most likely windows doesn't do this.

svn path=/trunk/; revision=50375

10 years ago[PING]
Timo Kreuzer [Wed, 12 Jan 2011 20:05:06 +0000 (20:05 +0000)]
[PING]
Polish translation of ping. Patch by Olaf Siejka.

svn path=/trunk/; revision=50374

10 years ago[PING]
Timo Kreuzer [Wed, 12 Jan 2011 17:12:09 +0000 (17:12 +0000)]
[PING]
Add German translation.

svn path=/trunk/; revision=50373

10 years ago[PING]
Timo Kreuzer [Wed, 12 Jan 2011 15:31:20 +0000 (15:31 +0000)]
[PING]
Implement small helper MyLoadString, using FindResource, LoadResource, LockResource and replacing LoadString, so we don't need to link to user32 anymore.

svn path=/trunk/; revision=50372

10 years ago[PING]
Timo Kreuzer [Wed, 12 Jan 2011 14:57:22 +0000 (14:57 +0000)]
[PING]
Add localization support to ping. Patch by "none" (menone7 at gmail dot com)

See issue #5500 for more details.

svn path=/trunk/; revision=50371

10 years ago[WIN32K]
Timo Kreuzer [Wed, 12 Jan 2011 14:02:54 +0000 (14:02 +0000)]
[WIN32K]
Reset monitor size after mode switch. patch by rafalh <rafalh1992 at o2 dor pl>

See issue #5727 for more details.

svn path=/trunk/; revision=50370

10 years ago[NTOSKRNL]
Timo Kreuzer [Wed, 12 Jan 2011 13:40:34 +0000 (13:40 +0000)]
[NTOSKRNL]
Remove broken definition of SharedUserdata and use correct SharedUserData instead. Fixes a crash on real Hardware. Patch by Daniel Zimmermann (netzimme at googlemail dot com)

See issue #5650 for more details.

svn path=/trunk/; revision=50369

10 years ago[EXPLORER_NEW]
Timo Kreuzer [Wed, 12 Jan 2011 13:22:12 +0000 (13:22 +0000)]
[EXPLORER_NEW]
Open a context menu, when a task is right clicked.
Patch by greenie (greenie__ at hotmail dot com)

See issue #4671 for more details.

svn path=/trunk/; revision=50368

10 years ago[EXPLORER_NEW]
Timo Kreuzer [Wed, 12 Jan 2011 13:12:00 +0000 (13:12 +0000)]
[EXPLORER_NEW]
Provide the ability to query version info (needed for task
grouping).
Patch by DavidErceg <dave_154@hotmail.com>

See issue #4386 for more details.

svn path=/trunk/; revision=50367

10 years ago[WIN32K]
Timo Kreuzer [Wed, 12 Jan 2011 11:49:29 +0000 (11:49 +0000)]
[WIN32K]
- In UserSetCursor, return a pointer to the old cursor, not the handle
- really delete the pointer shape when NULL cursor is set, instead of just hiding it.
- Move reference handling completely to NtUserSetCursor
- In UserChangeDisplaySettings, set NULL cursor before change and restore old cursor after change to make sure we have the right color format.

See issue #5722 for more details.

svn path=/trunk/; revision=50365

10 years ago[WIN32K]
Timo Kreuzer [Wed, 12 Jan 2011 01:01:30 +0000 (01:01 +0000)]
[WIN32K]
Don't leak the memory for DIB sections. we set BMF_DONT_FREE in SURFACE_bSetBitmapBits, when the caller provides bits. This needs to be reconsidered.

svn path=/trunk/; revision=50363

10 years ago[WIN32K]
Timo Kreuzer [Wed, 12 Jan 2011 00:26:20 +0000 (00:26 +0000)]
[WIN32K]
Don't trat BI_BITFIELDS as compressed format in DIB_CreateDIBSection. Fixes KSStudio. Why it was introduced by r48359? I don't know. It was broken before. I refrain from making any more comments about that piece of ... code.

See issue #5781 for more details.

svn path=/trunk/; revision=50362

10 years ago[USER32]
Timo Kreuzer [Tue, 11 Jan 2011 19:57:55 +0000 (19:57 +0000)]
[USER32]
- Use new wsprintf library, remove old code (536 lines)
- Fixes output of %I64, for example dxdiag

svn path=/trunk/; revision=50361

10 years ago[CRT]
Timo Kreuzer [Tue, 11 Jan 2011 19:09:48 +0000 (19:09 +0000)]
[CRT]
- Add user32_wsprintf library, with all the wsprintf functions, generated from the same codebase
- simplify handling of ll modifier in streamout

svn path=/trunk/; revision=50360

10 years agofix build
Giannis Adamopoulos [Tue, 11 Jan 2011 19:04:44 +0000 (19:04 +0000)]
fix build

svn path=/trunk/; revision=50359

10 years agofix build
Giannis Adamopoulos [Tue, 11 Jan 2011 18:55:19 +0000 (18:55 +0000)]
fix build

svn path=/trunk/; revision=50358

10 years ago[undocuser.h]
Giannis Adamopoulos [Tue, 11 Jan 2011 18:47:16 +0000 (18:47 +0000)]
[undocuser.h]
- gather several undocumented definitions for user32 that were defined in several different files, sometimes in the source, sometimes in headers and sometimes defined several times here and there
This file should not contain internal user32 definitions but undocumented public definitions

svn path=/trunk/; revision=50357

10 years ago[CRT]
Timo Kreuzer [Tue, 11 Jan 2011 15:17:35 +0000 (15:17 +0000)]
[CRT]
Remove deprecated <if>.

svn path=/trunk/; revision=50356

10 years ago[CRT]
Timo Kreuzer [Tue, 11 Jan 2011 13:13:47 +0000 (13:13 +0000)]
[CRT]
Get rid of the old printf code and some unused functions. 3346 lines of code less.

svn path=/trunk/; revision=50355

10 years ago[CRT]
Timo Kreuzer [Tue, 11 Jan 2011 12:17:46 +0000 (12:17 +0000)]
[CRT]
Improve code readability a bit

svn path=/trunk/; revision=50354

10 years ago[WIN32K]
Timo Kreuzer [Mon, 10 Jan 2011 09:53:56 +0000 (09:53 +0000)]
[WIN32K]
Remove debugging code.

svn path=/trunk/; revision=50352

10 years ago[Win32k]
James Tabor [Mon, 10 Jan 2011 01:36:14 +0000 (01:36 +0000)]
[Win32k]
- Implement NtGdiCreateMetafileDC.
- Since most of the gdi work I committed is being reverted or if'ed out of existence, this will be the last.

svn path=/trunk/; revision=50351

10 years ago[Win32k]
James Tabor [Mon, 10 Jan 2011 01:30:17 +0000 (01:30 +0000)]
[Win32k]
- Win32k implementation of GetCharacterPlacementW, work is dedicated to the late Professor John Collins.

svn path=/trunk/; revision=50350

10 years ago[WIN32K]
Timo Kreuzer [Sun, 9 Jan 2011 23:23:42 +0000 (23:23 +0000)]
[WIN32K]
Fix use of XFORMOBJ. Should fix gdi32_winetest clipping regression and release breakage.

svn path=/trunk/; revision=50349

10 years ago[NTOS]
Roel Messiant [Sun, 9 Jan 2011 20:52:22 +0000 (20:52 +0000)]
[NTOS]
Complete rewrite reserving and releasing of System PTEs.

The previous algorithm, in a nutshell, worked as follows:
- PTE clusters are in a singly linked list, ordered by their base address.
- All PTEs in the clusters are zeroed (except for cluster list bookkeeping).
- Upon reservation: Walk the list to get the first cluster that's large enough, cut the requested amount of PTEs off its tail and return them.
- Upon release: Create a new cluster using the PTEs to release, and merge it together with possible adjacent clusters.

Problems with the previous algorithm:
- While the idea is that all PTEs in clusters are zeroed, which requesters rely on, cluster bookkeeping isn't zeroed on merges.
  The side effect of this was that PTEs that weren't really zeroed were randomly delivered to requesters.
- 99% of the time, allocations are serviced using the first cluster in the list, which is virtually always the first suitable cluster.
  This is so because the ordering is based on the base address of the clusters, and allocations are serviced using the cluster tail.
  Because the first cluster starts out as the whole pool, and the pool is quite sizable, it can deal with virtually allocations.. for a while.
- A corollary of the previous point is *massive fragmentation* because: as long as an allocation isn't released back into the pool,
  the space of previous allocations that have been released isn't reused because the first cluster can't suck them up, and enough allocations remain in use.
- The combined effect of the previous two points: a first cluster that effectively shrinks mostly, with small clusters forming behind it.
  Once the first cluster has shrunk far enough (which of course takes a long time), 90% of the space may still be free, scattered in mostly small clusters.
  This would make decent sized allocations fail because of the heavy fragmentation.
- An implementation detail that caused the head of the list to be treated as a genuine cluster when the first cluster in the list was too small.
  The algorithm (as explained above) made this case quite unlikely until your system has been running for a while, after which it could happily
  corrupt list heads of other pools, depending on where the list head is with respect to its own pool.

Empirically obtained data revealed that after just *booting to the desktop*, the pool for System Pte Space entries
contained roughly 70 (unusable) clusters, blocking 15 to 20% of the pool. These figures increased to roughly 100
clusters and 30 to 35% after opening a foxy browser and using it to visit a mathematically inspired search engine.

The same data also showed that over 95% of allocations requested just a single PTE, and a noticable allocation spike
also occured in the range of 65-128 PTEs.  It should be clear optimizing for small allocations is a good idea,
and preferably encourage reuse the same PTEs for such allocations.

And the new algorithm was born:
- PTE clusters are in a singly linked list, ordered by increasing cluster size.
- All PTEs in the clusters are zeroed (except for cluster list bookkeeping) .. really this time!
- Upon reservation: Walk the list to get the first cluster that's large enough, cut the requested amount of PTEs off its tail and return them.
- Upon release: Create a new cluster using the PTEs to release, and merge it together with possible adjacent clusters.
- Both in the reservation and release actions, insertions into the list preserve the increasing cluster size order.

Empirically obtained data now revealed that after just booting to the desktop, the pool for System Pte Space entries
contained exactly 2 clusters.  This increased to 10 clusters after some minor internet browsing and watching a 5 minute video using a media player.

svn path=/trunk/; revision=50347

10 years ago[WIN32K]
Timo Kreuzer [Sun, 9 Jan 2011 19:51:06 +0000 (19:51 +0000)]
[WIN32K]
Cleanup pooltags a little, use official tags where known and applicable.

svn path=/trunk/; revision=50345

10 years ago[WIN32K]
Timo Kreuzer [Sun, 9 Jan 2011 18:53:58 +0000 (18:53 +0000)]
[WIN32K]
In GreCreateBitmapEx handle allocation failure in the rle hack path and set LastError, when failed to allocate bitmap bits.

svn path=/trunk/; revision=50344

10 years ago[WIN32K]
Timo Kreuzer [Sun, 9 Jan 2011 18:38:41 +0000 (18:38 +0000)]
[WIN32K]
- In BitmapFormat, allow intermediate bpp values, use ULONG as parameter type, instead of WORD and DWORD
- In NtGdiCreateBitmap get the real bpp value from the gajBitsPerFormat array
- Add back check of too large nWidth (needed to make sure, cjWidthBytes didn't overflow)
- Merge all parameter checks
- Check cPlanes and cBitsPixel paramters explicitly
- Use GreCreateBitmapEx
- Remove BITMAP_GetRealBitsPixel

svn path=/trunk/; revision=50343

10 years ago[WIN32K]
Timo Kreuzer [Sun, 9 Jan 2011 18:11:44 +0000 (18:11 +0000)]
[WIN32K]
Improve NtGdiStretchDIBitsInternal, use _SEH2_YIELT instead of saving an NTSTATUS and handle the fast path in place instead of setting a BOOL variable. Fixes warnings about uninitialized variables.

svn path=/trunk/; revision=50342

10 years ago[FREELDR]
Dmitry Gorbachev [Sun, 9 Jan 2011 15:11:49 +0000 (15:11 +0000)]
[FREELDR]
Delete a duplicate line.

svn path=/trunk/; revision=50339

10 years ago{GDI32]
Timo Kreuzer [Sat, 8 Jan 2011 19:24:29 +0000 (19:24 +0000)]
{GDI32]
Check paramters in CombineTransform

svn path=/trunk/; revision=50332

10 years ago[GDI32_APITEST]
Timo Kreuzer [Sat, 8 Jan 2011 19:20:20 +0000 (19:20 +0000)]
[GDI32_APITEST]
Remove the stuff that shouldn't have been comitted.

svn path=/trunk/; revision=50331

10 years ago[GDI32]
Timo Kreuzer [Sat, 8 Jan 2011 19:06:38 +0000 (19:06 +0000)]
[GDI32]
- Move EFLOAT handling in seperate file, its x86 specific
- Implement CombineTransform fully in usermode instead of forwarding to NtGdiCombineTransform
- Implement MatrixToXForm
- Implement GdiTransformPoints

svn path=/trunk/; revision=50330

10 years ago[GDI32_APITEST]
Timo Kreuzer [Sat, 8 Jan 2011 18:56:38 +0000 (18:56 +0000)]
[GDI32_APITEST]
Add tests for CombineTransform and MaskBlt

svn path=/trunk/; revision=50329

10 years ago[GDI32]
Timo Kreuzer [Sat, 8 Jan 2011 12:19:23 +0000 (12:19 +0000)]
[GDI32]
Implement GdiGetDcAttr. Just for convenience / cleaner code.

svn path=/trunk/; revision=50321

10 years ago[HEAP]
Aleksey Bragin [Sat, 8 Jan 2011 11:32:55 +0000 (11:32 +0000)]
[HEAP]
- Peer review rocks.

svn path=/trunk/; revision=50319

10 years ago[CRT]
Timo Kreuzer [Fri, 7 Jan 2011 21:15:35 +0000 (21:15 +0000)]
[CRT]
Fix _flsbuf return value

svn path=/trunk/; revision=50314

10 years ago[CMAKE]
Amine Khaldi [Fri, 7 Jan 2011 20:31:56 +0000 (20:31 +0000)]
[CMAKE]
- Add ntdll apitest to build.

svn path=/trunk/; revision=50312

10 years ago[NTDLL_APITEST]
Timo Kreuzer [Fri, 7 Jan 2011 20:11:56 +0000 (20:11 +0000)]
[NTDLL_APITEST]
Convert asm to GAS/ML compatible format

svn path=/trunk/; revision=50311

10 years ago[HEAP]
Aleksey Bragin [Fri, 7 Jan 2011 15:33:46 +0000 (15:33 +0000)]
[HEAP]
- Fix a typo (assignment) in the ASSERT, spotted by Johannes Anderwald.

svn path=/trunk/; revision=50309

10 years ago[WIN32K]
Timo Kreuzer [Thu, 6 Jan 2011 22:00:26 +0000 (22:00 +0000)]
[WIN32K]
- Use if, instead of switch to handle flags in XFORMOBJ_bXformFixPoints
- Define XFORMOBJ to EXFORMOBJ, a stack object that links to the matrix
- There is no spoon.

svn path=/trunk/; revision=50307

10 years ago[APITESTS:GDI32]
Jérôme Gardou [Thu, 6 Jan 2011 19:03:09 +0000 (19:03 +0000)]
[APITESTS:GDI32]
Add missing \n

svn path=/trunk/; revision=50306

10 years ago[usb/usbehci]:
Michael Martin [Thu, 6 Jan 2011 18:45:18 +0000 (18:45 +0000)]
[usb/usbehci]:
- EhciDefferedRoutine: Only free Mdl if one was created when the request was added to the queue.
- Dont assume that three transfer descriptors need to be freed, use a while moving to each linked and free instead.
- Yabba Dabba Doo added to increase size of message. :)

svn path=/trunk/; revision=50304