Commit graph

37288 commits

Author SHA1 Message Date
Christoph von Wittich 6a728de43e add SIIMIO flag for IXP700 like done for Silicon Image controllers
svn path=/trunk/; revision=41676
2009-06-28 21:02:44 +00:00
Aleksey Bragin 5f39190d38 - Prevent PEVENT type redifinition (which is fine with MSVC but not with GCC).
svn path=/trunk/; revision=41675
2009-06-28 20:52:37 +00:00
Johannes Anderwald 92fa1b9f95 - Fix broken check for KSDATARANGE_AUDIO
- Zero struct

svn path=/trunk/; revision=41674
2009-06-28 20:06:45 +00:00
Aleksey Bragin 07fd6e0b76 - Add ENG_EVENT structure definition (from MSDN) to ntddvdeo.h.
- Fix PEVENT definition in video.h: it's not some mystic VIDEO_PORT_EVENT which is not defined anywhere, it's a documented structure, which has to be compatible with the structure used in win32k EngEvent* functions too.

svn path=/trunk/; revision=41673
2009-06-28 18:58:45 +00:00
Matthias Kupfer 831c3b7900 add svchost.exe to install package
svn path=/trunk/; revision=41672
2009-06-28 18:23:05 +00:00
Daniel Reimer 4a92fcca6f Sync wordpad and winhlp32 with wine 1.1.24.
svn path=/trunk/; revision=41671
2009-06-28 17:27:56 +00:00
Colin Finck 1daa242cc5 - Give the "windows" module a more meaningful name.
It's now called "optional" as it started to contain other stuff apart from Windows native libraries.
- Add an optional file reference to the Systema font for Japanese text. The Japanese ROS GUI is already using it.
  This is probably just an intermediate solution as the font is Japanese-only (no Chinese or Korean support) and might not fit that well for dialogs, but it should serve us well for some time.

svn path=/trunk/; revision=41666
2009-06-28 14:41:02 +00:00
KJK::Hyperion b9613ba11f modified base/applications/taskmgr/affinity.c
modified   base/applications/taskmgr/debug.c
modified   base/applications/taskmgr/endproc.c
modified   base/applications/taskmgr/priority.c
   Arch Blackmann has never heard of exotic features of the C language such as "subroutines"

modified   base/applications/taskmgr/dbgchnl.c
modified   base/applications/taskmgr/procpage.c
modified   base/applications/taskmgr/procpage.h
   Did you know that Task Manager killed the wrong process when using the context menu? Fixed by using a sophisticated "subroutine" that reads the process entry index from the currently selected list item's client data, replacing the copy-pasted code that used the index of the list entry as the process entry index (which only worked before due to no sorting)
   Save the sort column and order

modified   base/applications/taskmgr/taskmgr.c
   Sort by image name by default

svn path=/trunk/; revision=41664
2009-06-28 14:22:09 +00:00
Johannes Anderwald a40dc20557 - Fix build
svn path=/trunk/; revision=41663
2009-06-28 14:12:58 +00:00
Johannes Anderwald 4a0debf9c8 - Start implementing the stream class driver
- Implemented StreamClassRegisterAdapter, StreamClassReenumerateStreams, StreamClassDebugAssert, StreamClassDebugPrint, StreamClassGetDmaBuffer
- Drivers using stream class driver should now be able to initialize

svn path=/trunk/; revision=41662
2009-06-28 13:58:47 +00:00
Christoph von Wittich 593091354a fix formatting
svn path=/trunk/; revision=41661
2009-06-28 13:52:27 +00:00
Dmitry Chapyshev a291ebef7a - Change icon for msiexec to Tango icon
svn path=/trunk/; revision=41660
2009-06-28 09:21:47 +00:00
ReactOS Portable Systems Group 9aa3e64dfc - Create mmsup.c in ReactOS memory manager directory. It hosts misc support functions:
- Copy kmap.c here, since it's the very definition of "misc support function"
  - Copy some exported functions in mm.c which were listed as "misc functions"
    - Warn that current implementation of MmIsNonPagedSystemAddressValid will kill kittens.
- Rename mm.c to mmfault.c, since other than the misc functions now in mmsup.c, it was all routines to handle page/access faults.
  - Warn that MmIsAddressValid, as currently implemented, kills puppies.
  - Move WriteWatch functions to virtual.c since they're part of the Virtual API system call set already hosted there.
  - Move the global variables that people had been throwing in here to mminit.c, which is slightly more appropriate.
- Move wset.c's MmTrimUserMemory to balance.c, since that's where all other similar functions are located.
  - Incidentally, kill wset.c, as this was the only function present.
- No functional changes, just refactoring and cleanup (other than warning the critter murder the two broken functions will achieve if called).

svn path=/trunk/; revision=41659
2009-06-28 07:52:30 +00:00
ReactOS Portable Systems Group 6da15076da - Move all the functions from drvlck.c and verifier.c to ARM3's drvmgmt.c:
- "Managing driver managing" (by David Welch) is no more... the routines have been properly renamed and cleaned up.
  - Also moved Driver Verifier helper routines in here, and fixed a couple of bugs:
    - Do not allow hooking of the kernel or HAL image (tested on Windows Server 2003)
    - Cleanup some useless variable redefinitions and code complexity.
  - Documented what some of the Mm Lock/Unlock Pageable Section/Driver functions should do, for later if needed.
  - Made aliasses so the typo "Pagable" functions redirect to the correct "Pageable" functions.
  - No functional change -- the Verifier functions were unused, and the drvlock.c functions were unimplemented (and still are).
  - Also move one more *Pageable* function from wset.c to ARM3's drvmgmt.c -- it seemed to have been a lost orphan (Also unimplemented).


svn path=/trunk/; revision=41658
2009-06-28 07:32:52 +00:00
ReactOS Portable Systems Group ca525de77d - Reimplement MmAllocateContiguousMemory, MmAllocateContiguousMemorySpecifyCache, MmFreeContiguousMemory, MmFreeContiguousMemorySpecifyCache:
- Use a smarter algorithm (as described here: http://www.microsoft.com/whdc/Driver/tips/ContigMem.mspx) to first try to satisfy the allocation by a simple nonpaged pool allocation (for cached requests only).
    - This range is then checked for physical continuity, since it's not guaranteed for non-initial-pool allocations (and right now in ReactOS, it never is).
  - As a fallback, Windows NT then attempts to scan free nonpaged pool pages. This is not yet implemented since the ReactOS nonpaged pool is not usually contiguous (to the level that NT's is).
    - When the ARM pool is implemented and replaces nonpaged pool, this code path will have to be implemented.
  - As a last resort, the actual PFN database is scanned for contiguous free pages.
    - ReactOS used MmGetContiguousPages for this, which blindly scanned the PFN database. New MiFindContinuousPages will scan the physical memory descriptor block recently implemented, which avoids going over pages we already know are going to be unusable.
    - The ReactOS function also held the PFN lock for the entire duration of the scan, which is significant on systems with large memory. Instead, we make an initial unsafe scan first, and only lock when we think we've found a correct range (and we'll then reconfirm the ranges).
    - Finally, the older function actually did a double-scan to try to avoid using memory ranges under 16MB, which was useless on today's systems and also rather inefficient.
    - Other than that, the actual setup of the PFN entry is copy-pasted from the old ReactOS function, so nothing's changed there -- the page still looks the same, but the selection algorithm is faster and more accurate.
  - Once the pages are found, we piggyback on the new I/O mapping mechanism (which uses System PTEs) instead of doing it all over by hand as before.
  - Since the underlying support is still System PTEs, once again, optimizations to that component will yield significant improvements here too.

svn path=/trunk/; revision=41657
2009-06-28 05:43:12 +00:00
James Tabor 25e75aa265 - Add more hooks, where wine has them placed. Fixed user32 hooks for win32k.
svn path=/trunk/; revision=41656
2009-06-28 03:02:15 +00:00
Timo Kreuzer f0ab7bf60b unbreak build of rostests
svn path=/trunk/; revision=41655
2009-06-28 00:05:51 +00:00
Christoph von Wittich 21351adff5 fix advapi32 crypt winetests
patch sent to wine

svn path=/trunk/; revision=41654
2009-06-27 23:55:29 +00:00
Timo Kreuzer 1fc4b3e8ca [FORMATTING] Fix indentation, no code change
svn path=/trunk/; revision=41653
2009-06-27 23:54:02 +00:00
Timo Kreuzer 36526f9157 Update SERVERINFO, PFNCLIENT, PFNCLIENTWORKER to Windows 7 version, add OEMBITMAPINFO, DPISERVERINFO, PERUSERSERVERINFO
Add -fms-extensions compilerflag to user32, win32k, csrss, win32csr.

svn path=/trunk/; revision=41652
2009-06-27 23:33:57 +00:00
Timo Kreuzer 8af77479df Don't save/change/restore the DC pen in IntDrawScrollInterior, where it's not used at all.
svn path=/trunk/; revision=41651
2009-06-27 23:12:22 +00:00
ReactOS Portable Systems Group 39374c3ad4 - Copying from destination to destination isn't very smart.
- Fix bug when creating the physical memory descriptor block.


svn path=/trunk/; revision=41650
2009-06-27 22:51:23 +00:00
ReactOS Portable Systems Group e52bb6e5ac - Actually it seems MmGetPhysicalMemoryRanges uses the MmPhysicalMemoryBlock, so go ahead and implement that function.
- Thanks to Matthieu Suiche (http://www.msuiche.net/2008/09/17/retrieving-mmphysicalmemoryblock-regardless-of-the-nt-version/).
  - Move physical.c into ARM3 and call it dynamic.c since these functions are for Dynamic Memory (Hotplug) for Server 2003.
  - Remove the old copyright header, as copy-pasting 5 DDK function definitions and rewriting them to say UNIMPLEMENTED isn't much of a copyright.


svn path=/trunk/; revision=41649
2009-06-27 22:39:03 +00:00
ReactOS Portable Systems Group b254273e3b - Call MmArmInitSystem for a second time, this time in Phase 1.
- This will call MmInitializeMemoryLimits (now implemented) which will go ahead and create the MmPhysicalMemoryBlock.
    - This block contains the physical memory "runs" that are valid on the system, allowing the PFN database to differentiate between valid and non-valid RAM (instead of marking things as "BIOS").
  - Also this will come in handy later for various utilities.


svn path=/trunk/; revision=41648
2009-06-27 22:16:47 +00:00
Sylvain Petreolle d7a781de82 Taskmgr didn't build without compilation units,
moving PerfDataGet to perfdata functions fixes it.

svn path=/trunk/; revision=41647
2009-06-27 22:05:53 +00:00
James Tabor 5c0c60f056 - Fix callback set and changed data. Process hooks if we are hooked.
svn path=/trunk/; revision=41646
2009-06-27 20:52:33 +00:00
KJK::Hyperion dd218680c6 Allow sorting the list of processes in Task Manager by any column. Patch by Maxime Vernier <maximevernier@gmail.com> with fixes by Sylvain Petreolle <spetreolle@yahoo.fr> and KJK::Hyperion <hackbunny@reactos.org>
See issue #4608 for more details.

svn path=/trunk/; revision=41645
2009-06-27 19:16:29 +00:00
Stefan Ginsberg ad91dd3fcd - Add some defines in preparation for _WINE.
- Add missing ExtDeviceMode and PrivateExtractIconsA/W to PSDK and remove from Wine-only headers, as these are defined in the official PSDK.

svn path=/trunk/; revision=41644
2009-06-27 19:06:00 +00:00
Christoph von Wittich 29572196b7 fix two kernel32 locale winetests
svn path=/trunk/; revision=41643
2009-06-27 18:46:10 +00:00
James Tabor dc74ea0bbe - Implement the rest of the HCBT_ support.
svn path=/trunk/; revision=41642
2009-06-27 18:36:29 +00:00
Sylvain Petreolle 4c329721d8 Add MIXERCONTROL_CONTROLTYPE_BASS_BOOST and KSDATAFORMAT_SUBTYPE_IEEE_FLOAT
svn path=/trunk/; revision=41641
2009-06-27 14:41:56 +00:00
Stefan Ginsberg 74ddcbe68d - KeDetachProcess & KeUnstackDetachProcess: Fix a typo when swapping back to the original process that would switch _from_ the original process to itself. We now properly swap from the _current_ process.
svn path=/trunk/; revision=41640
2009-06-27 11:07:58 +00:00
ReactOS Portable Systems Group fea1ac4782 - This patch is lets you visually dump the entire ReactOS PFN database, useful for debugging. Surprising nobody had done in this in the past, since it wasn't too hard (but it took a bit long to figure out how to get it in there).
- That's what she said.


svn path=/trunk/; revision=41639
2009-06-27 09:54:56 +00:00
Cameron Gutman a932210bfa - Always call the completion handler so we don't leak packet descriptors
- Don't remove the NCE if we fail because it may not be ours
 - Mark the IRPs pending before we insert them into our queue
 - Check that the addresses match so we don't receive somebody else's packets
 - Part 1 of 2

svn path=/trunk/; revision=41638
2009-06-27 08:48:58 +00:00
ReactOS Portable Systems Group ad9f3a761f - Remove leftover performance tracing code.
svn path=/trunk/; revision=41637
2009-06-27 08:43:56 +00:00
ReactOS Portable Systems Group ddedfd132a - Reimplement kernel stack allocation (MmCreateKernelStack, MmDeleteKernelStack, MmGrowKernelStack, MmGrowKernelStackEx):
- Use System PTEs.
  - Allocate 12KB stacks with a 4KB guard page, and expand them up to 60KB as required.
    - Previous implementation always allocated 60KB, without any guard page.
  - The result is that on a minimal ReactOS install, simply booting up now requires an average of 0.5MB less of physical memory than before.
  - And once again, optimizations to the system PTE allocation code should significantly improve performance.
  - Should also analyze benefits of using a dead stack slist as done on Windows. (Assembla Ticket #39).


svn path=/trunk/; revision=41636
2009-06-27 08:41:45 +00:00
Christoph von Wittich 5a526879a4 tabs -> spaces
use more consistent indentation

svn path=/trunk/; revision=41635
2009-06-27 07:38:02 +00:00
ReactOS Portable Systems Group fdf4fe9afa - Allocate enough space for the ARM3 PFN database, and fixup the calculation of the initial nonpaged pool.
- The ARM3 PFN database is more of a "shadow" database not to interfere with the real ReactOS PFN database. It starts at 0xB0000000, which is where the initial nonpaged pool started (which now starts somewhere after the ARM3 PFN database).
- No new behavior has been introduced other than additional physical memory consumption for the PFN DB pages, and updated memory layout in the ARM3 world.


svn path=/trunk/; revision=41634
2009-06-27 07:14:52 +00:00
Cameron Gutman 2d20864907 - Use the timeout that the caller gives us if it is nonzero so we don't block forever if nobody wakes us
svn path=/trunk/; revision=41633
2009-06-27 07:03:45 +00:00
Cameron Gutman 9722b61095 - The timeout value passed to tsleep is in milliseconds and so_linger is in seconds so convert to milliseconds
svn path=/trunk/; revision=41632
2009-06-27 06:59:22 +00:00
ReactOS Portable Systems Group 689615967e - Blow away the bottom 2GB of virtual address space in the ARM^3 initializer. Previously this was kind of done with MmUnmapPageTable in MmInit1, but this code (And the function, which had only been used for this purpose, are gone)
- Also set the Page Directory for the system/idle process in a slightly more correct way, instead of depending on the CR3 value. Do this in ARM^3 now, and remove the older code (and the MmGetPageDirectory function, which was only used by this).


svn path=/trunk/; revision=41631
2009-06-27 05:32:53 +00:00
Cameron Gutman dabb3e9f98 - Don't leave the listen IRP in the queue when cancelling the listen request
- Kill all the requests before closing the socket
 - Notify oskittcp when we are cancelling requests so it can properly close the socket

svn path=/trunk/; revision=41630
2009-06-27 03:23:10 +00:00
Cameron Gutman 97d8658da9 - Acquire the cancel spin lock before calling IoSetCancelRoutine
- Remove some extra junk

svn path=/trunk/; revision=41629
2009-06-27 03:14:06 +00:00
ReactOS Portable Systems Group 128aefcd63 - Rewrite MmMapIoSpace and MmUnmapIoSpace to use System PTEs instead.
- Much faster and cleaner (will be even faster when System PTE allocation is optimized).
- Better handling of esoteric caching options, especially relevant for ARM.
  - Handled through the MiPlatformCacheAttributes, which should be defined differently for each platform (TODO).
    - Handles both I/O (device) and RAM physical memory.
- Correct flushing of CPU caches (not a big deal on x86, but matters on ARM).


svn path=/trunk/; revision=41628
2009-06-27 03:03:24 +00:00
ReactOS Portable Systems Group 6e8a0cf662 - ARM3-ify hypermap.c
svn path=/trunk/; revision=41627
2009-06-27 03:00:35 +00:00
ReactOS Portable Systems Group a39c949acf - Implement MiReleaseSystemPtes which is the function to deallocate System PTE allocations.
- We do some minor optimizations to combine chunks if possible after a free, similar to MD Block algorithms in freeldr.c.

svn path=/trunk/; revision=41626
2009-06-27 02:56:58 +00:00
Johannes Anderwald a0803f70c2 - Add STREAM_DEBUG_LEVEL
svn path=/trunk/; revision=41625
2009-06-26 16:30:44 +00:00
Johannes Anderwald 8b461b7616 - Write strmini.h for stream class driver
svn path=/trunk/; revision=41624
2009-06-26 15:51:14 +00:00
Johannes Anderwald af23e9415c - Callback routine expects fdo
- Fix boot

svn path=/trunk/; revision=41623
2009-06-26 14:17:12 +00:00
Johannes Anderwald a74571e0a9 - fix build broken in rev 41621
svn path=/trunk/; revision=41622
2009-06-26 13:08:09 +00:00