12 years ago- Don't prepend fastcall forward's target with @. Fixes binding issues in videoprt...
Aleksey Bragin [Sat, 20 Feb 2010 22:53:11 +0000 (22:53 +0000)]
- Don't prepend fastcall forward's target with @. Fixes binding issues in videoprt, thanks to Olaf Siejka for identifying the issue.

svn path=/trunk/; revision=45639

12 years ago[NTOS]: Make MM init read MmProductType to determine what SKU of ReactOS this is...
Sir Richard [Sat, 20 Feb 2010 21:48:36 +0000 (21:48 +0000)]
[NTOS]: Make MM init read MmProductType to determine what SKU of ReactOS this is, instead of assuming Server. If you want to go back to the old behavior, you need to change "WinNT" to "ServerNT" in the hivesys under Product Type.
[NTOS]: Configure the MmSystemSize variable properly based on SKU and RAM. Previously, ReactOS told all drivers and applications you were running on a system with < 13MB RAM.
[NTOS]: Initialize thresholds for low and high memory (in pages), low and high paged pool memory, and low and high nonpaged pool memory. These are described in the source.
[NTOS]: Initialize events for each of those thresholds, and populate the \KernelObject\xxxCondition events that are documented in MSDN for driver and app developers.
[NTOS]: Define some internal thresholds to use later, representing the minimum number of free pages under we go berserk, and the minimum number of free pages that we consider "plenty".
[NTOS]: Rename MiRemoveFromList to MiUnlinkFreeOrZeroedPage (Windows name). Make the function handle MmAvailablePages decrement, instead of having the caller do it.
[NTOS]: Remove run-time initialization of the PFN lists, just initialize them statically (also fixes the fact we forgot to initialize their names).
[NTOS]: Move some more initialization code to ARM3 instead of mm.
[NTOS]: Read ProductType from registry into MmProductType instead of dummy value. Remove duplicate "Mirroring" variable read.

svn path=/trunk/; revision=45638

12 years ago[SERVICES]
Eric Kohl [Sat, 20 Feb 2010 20:52:14 +0000 (20:52 +0000)]
Disable a number of debug messages in the service manager.

svn path=/trunk/; revision=45637

12 years ago[ADVAPI32]
Eric Kohl [Sat, 20 Feb 2010 16:33:28 +0000 (16:33 +0000)]
Silence a lot of non-critical service manager error messages (ERR->TRACE).

svn path=/trunk/; revision=45636

12 years ago[NTOS]: Remove SwapEntry parameter from MmAllocPage since it was always zero.
Sir Richard [Sat, 20 Feb 2010 14:47:23 +0000 (14:47 +0000)]
[NTOS]: Remove SwapEntry parameter from MmAllocPage since it was always zero.
[NTOS]: Store SwapEntry as WsIndex. We can do this now since Flink is only used when the page is in a list (meaning it's not active, ie. free or zero), and non-active pages don't have a swap entry.

svn path=/trunk/; revision=45635

12 years ago[NTOS]: Manage the PFN lists using the correct Flink/Blink semantics of the MMPFN...
Sir Richard [Sat, 20 Feb 2010 14:40:21 +0000 (14:40 +0000)]
[NTOS]: Manage the PFN lists using the correct Flink/Blink semantics of the MMPFN structure, instead of typecasting a LIST_ENTRY on top of Flink and PteAddress. This allows PteAddress to be used now, and minimizes the number of differences between MMPFN and the ReactOS PHYSICAL_PAGE.
[NTOS]: Zero pages starting at the head of the free list, insert them at the back.
[NTOS]: Add MiInsertPageInFreeList to build the colored lists (not yet used) in the ARM3 PFN database.
[NTOS]: Rename the ReactOS PFN lists for free/zero to their real names as used in Windows.

svn path=/trunk/; revision=45634

12 years ago[SERVICES] When autostart services are up, signal an event.
Eric Kohl [Sat, 20 Feb 2010 13:04:56 +0000 (13:04 +0000)]
[SERVICES] When autostart services are up, signal an event.
[SYSSETUP] Wait until all autostart services are up. Bug #4194.

Patches by Dmitry Gorbachev.
See issue #4142 for more details.

svn path=/trunk/; revision=45633

12 years agoMake EventLog and Spooler services report their status to the SCM.
Eric Kohl [Sat, 20 Feb 2010 12:59:53 +0000 (12:59 +0000)]
Make EventLog and Spooler services report their status to the SCM.

svn path=/trunk/; revision=45632

12 years agoXML Compliance Patch for the RBUILD Files. By Samuel Serapion
Daniel Reimer [Sat, 20 Feb 2010 12:41:24 +0000 (12:41 +0000)]
XML Compliance Patch for the RBUILD Files. By Samuel Serapion

svn path=/trunk/; revision=45631

12 years ago[NTOS]: Disable support for global pages since it does not seem to work right on...
Sir Richard [Fri, 19 Feb 2010 22:43:34 +0000 (22:43 +0000)]
[NTOS]: Disable support for global pages since it does not seem to work right on real hardware. Additionally, the code had been previously enabling global pages before the variable determining the support for such pages was even enabled, causing non-global pages to be used initially, followed later by global pages once the variable had been setup. To fix this mess, remove all global page support for now. Fixes booting on certain real hardware (or fixes other random memory corruptions).
Thanks to Caemyr.

svn path=/trunk/; revision=45627

12 years ago[SERVICES] Set default status to SERVICE_START_PENDING when starting a service.
Eric Kohl [Fri, 19 Feb 2010 20:03:11 +0000 (20:03 +0000)]
[SERVICES] Set default status to SERVICE_START_PENDING when starting a service.
[SYSSETUP] Wait until PlugPlay service is up. Bug #4142.
[UMPNPMGR] Update the service control manager's status information.

Patches by Dmitry Gorbachev.

svn path=/trunk/; revision=45626

12 years ago[NTOS]: Fix premature setting of the page location of a newly allocated MDL page...
Sir Richard [Fri, 19 Feb 2010 18:29:29 +0000 (18:29 +0000)]
[NTOS]: Fix premature setting of the page location of a newly allocated MDL page. Because the zeroing of non-zeroed pages is done after the initial page allocation loop (and by checking which list the page was on), setting the page location as ActiveAndValid made the zero loop believe the page was unzeroed (even though it could've come from the zeroed list), causing a superflous second zero operation.

svn path=/trunk/; revision=45625

12 years ago[NTOS]: Fix a logic error which could cause pages on the free list which failed to...
Sir Richard [Fri, 19 Feb 2010 18:25:29 +0000 (18:25 +0000)]
[NTOS]: Fix a logic error which could cause pages on the free list which failed to be zeroed out due to running out of hyperspace mappings to appear as being on the zero page list even though they were inserted back on the free page list.

svn path=/trunk/; revision=45624

12 years ago[NTOS]: Fix an off-by-! error which caused MDL page allocation to use used pages...
Sir Richard [Fri, 19 Feb 2010 18:23:07 +0000 (18:23 +0000)]
[NTOS]: Fix an off-by-! error which caused MDL page allocation to use used pages instead of free pages.

svn path=/trunk/; revision=45623

12 years ago[NTOS]: It seems the code to release a page was not properly removing a page from...
Sir Richard [Fri, 19 Feb 2010 17:55:22 +0000 (17:55 +0000)]
[NTOS]: It seems the code to release a page was not properly removing a page from the working set bitmap/list in one scenario, so I added the call here too.

svn path=/trunk/; revision=45622

12 years ago[NTOS]: Fix an off-by-one-error which incorrectly causes GUI promotion to fail if...
Sir Richard [Fri, 19 Feb 2010 17:54:16 +0000 (17:54 +0000)]
[NTOS]: Fix an off-by-one-error which incorrectly causes GUI promotion to fail if the first GUI call is "0", since the limit on the GUI descriptor table will also be "0". We should check if the limit is equal to or lower, not just if it's lower.
Thanks to Physicus and Fireball for reporting and working this out. Should fix the "ArwinSS" problem.

svn path=/trunk/; revision=45621

12 years ago[NTOS]: Fix off-by-one error in MDL locking which caused the last PFN not to be refer...
Sir Richard [Fri, 19 Feb 2010 17:45:10 +0000 (17:45 +0000)]
[NTOS]: Fix off-by-one error in MDL locking which caused the last PFN not to be referenced if it was part of a locked MDL, because it was assumed to be "higher than the last PFN". This further caused the entire MDL to be incorrectly treated as an I/O space mapping. Later, when unlocked, the last PFN's reference count would drop to 0, and the virtual memory range that had been locked would now be using a freed page, that would get re-used later. Noticed this bug because my WC changes allocation strategies to increase the chance of pages at the end to be used, ans the last PFN was being used a lot due to this.

svn path=/trunk/; revision=45620

12 years ago[NTOSKRNL]
Cameron Gutman [Fri, 19 Feb 2010 10:30:01 +0000 (10:30 +0000)]
 - Update boot logo copyright year
 - Patch by Gabriel Ilardi

svn path=/trunk/; revision=45619

12 years ago[NTOSKRNL]
Cameron Gutman [Fri, 19 Feb 2010 03:16:04 +0000 (03:16 +0000)]
 - Put back the boot logo from the old bootvid
 - Rewrite the old broken progress bar code and enable the progress bar
 - The progress bar works now :)
 - NOTE: Someone should fix the copyright year on the boot logo

svn path=/trunk/; revision=45618

12 years ago[NTOS]: Stop storing the consumer in the PFN, as this value is never actually checked...
Sir Richard [Fri, 19 Feb 2010 01:58:48 +0000 (01:58 +0000)]
[NTOS]: Stop storing the consumer in the PFN, as this value is never actually checked. Clears up yet another misuse of the "real" PFN structure.

svn path=/trunk/; revision=45617

12 years ago[NTOS]: Instead of having an LRU linked list of working set pages, we instead have...
Sir Richard [Fri, 19 Feb 2010 00:46:35 +0000 (00:46 +0000)]
[NTOS]: Instead of having an LRU linked list of working set pages, we instead have a bitmap.
    Advantage: Pages are only in a linked list when they are NOT active (free/zeroed, for now). This makes the LIST_ENTRY fields usable when a page is active, so we can store data in there. This will make it easier to sync our PFN format with Windows.
    Advantage: It's a lot faster to set/clear bits than to do list operations (both still O1 though). Scanning for the bit is a bit slower than parsing a list, on the other hand, so it's a toss.
    Disadvantage: We lose LRU, which in theory makes us cannibalize working sets randomly instead of by-usage. However, considering the speed of ReactOS paging, and the effects of canabalizing the WS in the first place, I doubt this is really a problem.
The main point of this is advantage #1 -- making used pages not be on any lists. This will allow us to almost 100% sync the PFN layouts, which will lead to the eventual negation of any temporary disavantages.

svn path=/trunk/; revision=45616

12 years ago[NTOSKRNL] KiConvertToGuiThread() "accesses memory in an unpredictable fashion".
Dmitry Gorbachev [Thu, 18 Feb 2010 23:25:12 +0000 (23:25 +0000)]
[NTOSKRNL] KiConvertToGuiThread() "accesses memory in an unpredictable fashion".

svn path=/trunk/; revision=45615

12 years ago[BOOTVID] Initialize VgaAddress.HighPart
Dmitry Gorbachev [Thu, 18 Feb 2010 23:25:05 +0000 (23:25 +0000)]
[BOOTVID] Initialize VgaAddress.HighPart

svn path=/trunk/; revision=45614

12 years ago[DEVMGR]
Eric Kohl [Thu, 18 Feb 2010 20:18:24 +0000 (20:18 +0000)]
Display some more device properties.

svn path=/trunk/; revision=45613

12 years ago[NTOS]: Fix build, my bad (missing file).
Sir Richard [Thu, 18 Feb 2010 17:13:37 +0000 (17:13 +0000)]
[NTOS]: Fix build, my bad (missing file).

svn path=/trunk/; revision=45612

12 years agoPatch by Daniel Zimmermann <>:
Sir Richard [Thu, 18 Feb 2010 17:00:09 +0000 (17:00 +0000)]
Patch by Daniel Zimmermann <>:
[HAL]: Use it in HalpAssignPCISlotResources.

svn path=/trunk/; revision=45611

12 years ago[NTOS]: Build the actual ARM3 PFN database.
Sir Richard [Thu, 18 Feb 2010 16:56:54 +0000 (16:56 +0000)]
[NTOS]: Build the actual ARM3 PFN database.

svn path=/trunk/; revision=45610

12 years ago[NTOS]: Remove unused code.
Sir Richard [Thu, 18 Feb 2010 16:50:55 +0000 (16:50 +0000)]
[NTOS]: Remove unused code.

svn path=/trunk/; revision=45609

12 years ago[KSPROXY]
Johannes Anderwald [Thu, 18 Feb 2010 15:24:29 +0000 (15:24 +0000)]
- Stub interfaces for CBasicAudio, CKsClockForwarder, CVPConfig, CVPVBIConfig, CKsDataTypeHandler, CKsInterfaceHandler, CKsProxy, CKsQualityForwarder
- Implement KsSynchronousDeviceControl, KsOpenDefaultDevice, KsGetMultiplePinFactoryItems, KsGetMediaTypeCount, DllGetClassObject

svn path=/trunk/; revision=45608

12 years ago[PSDK]
Johannes Anderwald [Thu, 18 Feb 2010 15:04:54 +0000 (15:04 +0000)]
- KSM_PIN is defined in bdasup.h not bdatypes.h
- Add IReferenceClockTimerControl, IAMDeviceRemoval. IDistributorNotify, IAMClockAdjust, IAMStreamControl, IDeferredCommand interface
- Modify VMRGUID struct so that gnu compilers can digest it too
- Remove useless KSINTERFACESETID_Standard define from ks.h

svn path=/trunk/; revision=45607

12 years ago - Fix incorrect sector size detection which caused seeking to fail when booting...
Cameron Gutman [Tue, 16 Feb 2010 20:32:58 +0000 (20:32 +0000)]
 - Fix incorrect sector size detection which caused seeking to fail when booting from a floppy
 - FreeLoader can load from a floppy disk now

svn path=/trunk/; revision=45602

12 years ago[NTOS] Allocate the trap frame on the stack by decreasing esp before modifying any...
Timo Kreuzer [Mon, 15 Feb 2010 20:16:15 +0000 (20:16 +0000)]
[NTOS] Allocate the trap frame on the stack by decreasing esp before modifying any members.
While doing it after is a tiny optimization (no need to wait for esp to be ready) and would work with all real traps (which clear cli), it doesn't work with Zw calls that directly call KiSystemService with interrupts enabled. This caused random trap frame corruption when an interrupt fired after members of the trap frame have been set but before esp was adjusted. Should hopefully fix most random failures on real hardware and qemu.

svn path=/trunk/; revision=45598

12 years ago[NTOS] Push vector as error code on the stack in KiUnexpectedInterrupt* instead of...
Timo Kreuzer [Sat, 13 Feb 2010 02:01:33 +0000 (02:01 +0000)]
[NTOS] Push vector as error code on the stack in KiUnexpectedInterrupt* instead of putting it into eax, because we must not clobber it. Spotted by jcatena.

svn path=/trunk/; revision=45590

12 years ago[PSDK]
Johannes Anderwald [Fri, 12 Feb 2010 13:46:53 +0000 (13:46 +0000)]
- Work on ksproxy.h, WIP

svn path=/trunk/; revision=45586

12 years ago[PORTCLS]
Johannes Anderwald [Fri, 12 Feb 2010 10:12:46 +0000 (10:12 +0000)]
- Reset play position when an audio stream is stopped
-- Fixes playback in looped mode (DirectSound) when a buffer is played&stopped more than once

svn path=/trunk/; revision=45585

12 years ago[DSOUND_NEW]
Johannes Anderwald [Fri, 12 Feb 2010 09:54:56 +0000 (09:54 +0000)]
- Setup a default format for the primary sound buffer
- Store last used write position and use it when checking current position
- Check if the buffer has already started to play
- Fill audio buffer with silence bytes when initializing the secondary sound buffer
-- Partialy makes graphedit work when building a simple render graph(FileAsync->WaveParser->AudioRenderer).

svn path=/trunk/; revision=45584

12 years ago[MSDMO]
Christoph von Wittich [Fri, 12 Feb 2010 09:20:35 +0000 (09:20 +0000)]
sync msdmo with wine 1.1.38

svn path=/trunk/; revision=45583

Johannes Anderwald [Fri, 12 Feb 2010 06:18:31 +0000 (06:18 +0000)]
- Implement retrieving device path

svn path=/trunk/; revision=45582

12 years ago- Revert 44564
Johannes Anderwald [Thu, 11 Feb 2010 21:19:35 +0000 (21:19 +0000)]
- Revert 44564

svn path=/trunk/; revision=45580

12 years ago[WDMAUD_KERNEL]
Johannes Anderwald [Thu, 11 Feb 2010 21:04:57 +0000 (21:04 +0000)]
- Replace mixer / wave support code by mmixer library
- Compare device name from 2 character onwards as there are difference in paths in user mode / kernel mode
- Invoke create pin callback if the caller provides it
- Apply changes from mmixer library

-- Tested in Vbox with Winamp / ReactOS mplay32

svn path=/trunk/; revision=45579

12 years ago[DEVMGR]
Eric Kohl [Thu, 11 Feb 2010 20:23:48 +0000 (20:23 +0000)]
Display Matching Device ID.

svn path=/trunk/; revision=45578

12 years ago[NTOS]: Remove many hacks in freelist.c regarding the differences between PHYSICAL_PA...
Sir Richard [Thu, 11 Feb 2010 18:44:28 +0000 (18:44 +0000)]
[NTOS]: Remove many hacks in freelist.c regarding the differences between PHYSICAL_PAGE and MMPFN. ReferenceCount field is now accessed directly. LockCount is gone. Type is gone: if a page is used, it has a consumer and is in the ActiveAndValid state, if it's free, it's on the free or zero page list. Get rid of Zero, if a page is zeroed, it is on the zero page list.
[NTOS]: These changes will allow a smoother migration to MMPFN later on.

svn path=/trunk/; revision=45577

12 years ago[NTOS]: Get rid of page locking mechanism for MDL since I can't see a reason this...
Sir Richard [Thu, 11 Feb 2010 18:41:45 +0000 (18:41 +0000)]
[NTOS]: Get rid of page locking mechanism for MDL since I can't see a reason this would make sense, since these pages won't be scheduled for page out anyway, and that is the only code that looked at this value.

svn path=/trunk/; revision=45576

12 years ago[NTOS]: Remove bogus assertion.
Sir Richard [Thu, 11 Feb 2010 18:33:52 +0000 (18:33 +0000)]
[NTOS]: Remove bogus assertion.

svn path=/trunk/; revision=45575

12 years ago[NTOS]: Fix broken MI_PFNENTRY_TO_PFN macro.
Sir Richard [Thu, 11 Feb 2010 18:31:54 +0000 (18:31 +0000)]
[NTOS]: Fix broken MI_PFNENTRY_TO_PFN macro.

svn path=/trunk/; revision=45574

12 years ago[HAL]
Timo Kreuzer [Thu, 11 Feb 2010 17:36:57 +0000 (17:36 +0000)]
Restore fs in HalpTrap06. Should fix crash on 1st stage with VBox.

svn path=/trunk/; revision=45573

12 years ago[NTOS]: Fix a stupid bug: x86 has 1024 PDEs, and ARM has 4096 PDEs, not the other...
Sir Richard [Thu, 11 Feb 2010 09:15:50 +0000 (09:15 +0000)]
[NTOS]: Fix a stupid bug: x86 has 1024 PDEs, and ARM has 4096 PDEs, not the other way around.
[NTOS]: Map the ARM3 PFN database as well, now.
[NTOS]: Start initializing the ARM3 PFN database entries, right now for pages that have been mapped directly through PTE/PDE manipulation.

svn path=/trunk/; revision=45569

12 years ago - Fix floppy controller detection
Cameron Gutman [Thu, 11 Feb 2010 02:22:34 +0000 (02:22 +0000)]
 - Fix floppy controller detection
 - Simplify waiting in Get_Byte and Send_Byte
 - See issue #4391 for details

svn path=/trunk/; revision=45568

12 years ago[NTOS]: Move more functions from the i386 ARM3 directory to the portable/shared direc...
Sir Richard [Thu, 11 Feb 2010 00:01:32 +0000 (00:01 +0000)]
[NTOS]: Move more functions from the i386 ARM3 directory to the portable/shared directory, since they apply to all architectures.
[NTOS]: Refactor the mapping of the PTEs for the PFN database into MiMapPfnDatabase and move the code to portable directory.
[NTOS]: Move and refactor some other definitions, and make some numbers more portable by defining arch-specific subvalues.
[NTOS]: Make the PFN database actually 2 PFN Databases: MmPfnDatabase[0] which is the ReactOS mapping of PHYSICAL_PAGE structures, and MmPfnDatabase[1] which will be the ARM3 mapping of MMPFN structures. The latter is as-of-yet unused, but memory for it is now being reserved.

svn path=/trunk/; revision=45566

12 years ago[REACTOS] Add asm.h containing macros to make assembly code both GAS and ML compatibl...
Timo Kreuzer [Wed, 10 Feb 2010 23:24:59 +0000 (23:24 +0000)]
[REACTOS] Add asm.h containing macros to make assembly code both GAS and ML compatible at the same time.
[NTOS/HAL] Move trap entry points from C into a GAS/ML compatile assembly file (might need fine tuning for ML). The entries are generated by a shared assembly macro TRAP_ENTRY. Removed KiTrapStub, KiIsV8086TrapSafe, KiIsUserTrapSafe, KiSetSaneSegments, removed segment handling from KiEnter*Trap.
[NTOS] Make KiFastCallEntryHandler and KiSystemServiceHandler FASTCALL and pass the systemcall number in TrapFrame->Eax
[HAL] Use _setjmp/longjmp instead of saving a trapframe in HalpBiosCall

svn path=/trunk/; revision=45565

12 years ago[rbuild]
Giannis Adamopoulos [Wed, 10 Feb 2010 21:55:51 +0000 (21:55 +0000)]
- Major improvements in the msvc backend
- Create a .vsprops file for every configuration in the root folder. This lets us make vcproj files a lot smaller
- When building with our headers actually use all of our headers and not a mix of our sdks and the headers of the crt that comes with msvc
- Add a rule to build .s files based on the idea by jcatena
- Add a rule for .spec and .pspec files. pspec doesn't work well yet
- Various fixes
- Please note the the above are aplied only to the vcproj files and not to the vcxrpoj files

The above let us compile large parts of trunk with the generated visual studio projects

svn path=/trunk/; revision=45564

12 years agoAdd french translations for location overrides.
Sylvain Petreolle [Wed, 10 Feb 2010 20:11:13 +0000 (20:11 +0000)]
Add french translations for location overrides.

svn path=/trunk/; revision=45563

12 years agopartially revert changes from 45560
Christoph von Wittich [Wed, 10 Feb 2010 19:56:27 +0000 (19:56 +0000)]
partially revert changes from 45560

svn path=/trunk/; revision=45562

12 years agoExperimental try to get Itunes Setup start. By Samuel Serapion
Daniel Reimer [Wed, 10 Feb 2010 19:50:30 +0000 (19:50 +0000)]
Experimental try to get Itunes Setup start. By Samuel Serapion

svn path=/trunk/; revision=45561

12 years agoAdd device location information override PS/2 keyboards.
Eric Kohl [Wed, 10 Feb 2010 19:35:13 +0000 (19:35 +0000)]
Add device location information override PS/2 keyboards.

Please translate the location override string.

svn path=/trunk/; revision=45560

12 years agoUpdate Rapps Links and add the two RosBE Addons.
Daniel Reimer [Wed, 10 Feb 2010 19:33:10 +0000 (19:33 +0000)]
Update Rapps Links and add the two RosBE Addons.

svn path=/trunk/; revision=45559

12 years ago[NTOS]: Allocate and initialize color tables based on MmSecondaryColors (MiInitialize...
Sir Richard [Wed, 10 Feb 2010 18:44:30 +0000 (18:44 +0000)]
[NTOS]: Allocate and initialize color tables based on MmSecondaryColors (MiInitializeColorTables).
[NTOS]: These come after the PFN database, so modify the MmPfnAllocation to account for them.

svn path=/trunk/; revision=45558

12 years ago[NTOS]: Factor out SecondaryColor computations into MiComputeColorInformation.
Sir Richard [Wed, 10 Feb 2010 18:10:04 +0000 (18:10 +0000)]
[NTOS]: Factor out SecondaryColor computations into MiComputeColorInformation.
[NTOS]: Fix SecondaryColor computations. If the KPCR has no deta, use the default colors of 8, not just 1. Also handle cases where there is more L2 cache than we'd like -- set the secondary colors to a maximum of 1024 in that case. Finally, if the colors are not a power of two, or there are not enough (due to a registry setting), use the default of 8.

svn path=/trunk/; revision=45557

12 years ago[NTOS]: MxGetNextPage is not platform-specific, so share it.
Sir Richard [Wed, 10 Feb 2010 17:42:07 +0000 (17:42 +0000)]
[NTOS]: MxGetNextPage is not platform-specific, so share it.
[NTOS]: Factor out computations of NP sizes and limits into MiComputeNonPagedPoolVa.
[NTOS]: Fix NP size/limit calculations to use the amount of FREE RAM, not the amount of INSTALLED RAM.
[NTOS]: Use Windows 2003's algorithm for NP size on machines with more than 512MB of FREE RAM.
[NTOS]: Partly handle the case of machines with NP over 128MB.

svn path=/trunk/; revision=45556

12 years agoDo not crash, use valid kernel PTE.
Dmitry Gorbachev [Wed, 10 Feb 2010 13:56:54 +0000 (13:56 +0000)]
Do not crash, use valid kernel PTE.

svn path=/trunk/; revision=45555

12 years ago[usb/usbehci]
Michael Martin [Wed, 10 Feb 2010 12:38:18 +0000 (12:38 +0000)]
- Remove WorkItem code as its not needed. UsbHub driver polls the hubs for device connects.
- Implement returning generic UsbdDeviceHandle in URB struct.

svn path=/trunk/; revision=45554

12 years ago[usb/usbehci]
Christoph von Wittich [Wed, 10 Feb 2010 12:25:35 +0000 (12:25 +0000)]
fix typo

svn path=/trunk/; revision=45553

12 years ago[usb/usbehci]
Michael Martin [Wed, 10 Feb 2010 12:21:23 +0000 (12:21 +0000)]
- Define Device and Configuration Descriptors for RootHub20.
- Queue all USB_SUBMIT_URBs and create a separate thread to handle them.
- For PNP START_DEVICE, Create the internal RootHub usb device and register usb hub device interface.
- Fill in direct call interface for USB_BUS_INTERFACE_USBDI_V2 and USB_BUS_INTERFACE_HUB_V5.
- Implement Direct Call Interface function GetExtendedHubInformation.
- Remove duplicate structures that are already defined in USB Headers. Some reorganization.

svn path=/trunk/; revision=45552

12 years agoUpdate log2lines to ver. 2.1. Jan Roeloffzen, bug #4342.
Dmitry Gorbachev [Wed, 10 Feb 2010 12:10:23 +0000 (12:10 +0000)]
Update log2lines to ver. 2.1. Jan Roeloffzen, bug #4342.

svn path=/trunk/; revision=45551

12 years agoFound a leak fix patch from years ago
Ged Murphy [Wed, 10 Feb 2010 08:24:34 +0000 (08:24 +0000)]
Found a leak fix patch from years ago

svn path=/trunk/; revision=45550

12 years ago[NTOS]: Actually use calculated kernel stack size value.
Sir Richard [Wed, 10 Feb 2010 04:12:23 +0000 (04:12 +0000)]
[NTOS]: Actually use calculated kernel stack size value.
[NTOS]: Define the template PTE/PDE statically, instead of doing it in code. It's faster, and saves us the trouble of not being able to use the template from point 0. Move the template setup into ARM3 instead of page.c.

svn path=/trunk/; revision=45549

12 years ago[NTOS]: Allow registry configuration of large kernel stack size, with proper checks.
Sir Richard [Wed, 10 Feb 2010 03:59:17 +0000 (03:59 +0000)]
[NTOS]: Allow registry configuration of large kernel stack size, with proper checks.

svn path=/trunk/; revision=45548

12 years ago[NTOS]: Combine ARM3 phase 0 and 1 even it means calling back into TurdMM for one...
Sir Richard [Wed, 10 Feb 2010 02:00:56 +0000 (02:00 +0000)]
[NTOS]: Combine ARM3 phase 0 and 1 even it means calling back into TurdMM for one function call.
[NTOS]: Separate out platform-specific parts of ARM3 initialization instead of having everything in an arch-specific file.
No functional code changes.

svn path=/trunk/; revision=45547

12 years ago - Merge r45531 and r45545 from aicom-network-branch
Cameron Gutman [Wed, 10 Feb 2010 00:55:58 +0000 (00:55 +0000)]
 - Merge r45531 and r45545 from aicom-network-branch

svn path=/trunk/; revision=45546

12 years ago[NDK]: Add MMPDE structure for ARM.
Sir Richard [Tue, 9 Feb 2010 22:57:14 +0000 (22:57 +0000)]
[NDK]: Add MMPDE structure for ARM.

svn path=/trunk/; revision=45543

12 years ago[NTOS]: Implement new and correct MiAddressToPte, ToPde, ToPdeOffset, and MiPdeToAddr...
Sir Richard [Tue, 9 Feb 2010 22:56:21 +0000 (22:56 +0000)]
[NTOS]: Implement new and correct MiAddressToPte, ToPde, ToPdeOffset, and MiPdeToAddres and MiAddressToPte on ARM. Remove deprecated ARM page definitions.
[NTOS]: Move HYPER_SPACE to 0xC0500000 since it must be on its own PDE. We need to revisit some FreeLDR Mm decisions later.
[NTOS]: Move certain arch-specific definitions from mm.h to the arch-specific mm.h
[NTOS]: Fix certain parts of ARM3 which made the assumption that a PDE shares the same structure as a PTE. This is true on all architectures except ARM. We now define a new MMPDE type specifically for PDEs. On x86 it is defined to MMPTE with no changes.

svn path=/trunk/; revision=45542

12 years agoImplement device location information override support and add the location override...
Eric Kohl [Tue, 9 Feb 2010 22:54:02 +0000 (22:54 +0000)]
Implement device location information override support and add the location override value for PS/2 mice. PS/2 keyboards be added next.

Please translate the location override string.

svn path=/trunk/; revision=45541

12 years ago[NTOS]: Setup the template PTE and PDE used on ARM.
Sir Richard [Tue, 9 Feb 2010 22:53:41 +0000 (22:53 +0000)]
[NTOS]: Setup the template PTE and PDE used on ARM.

svn path=/trunk/; revision=45540

12 years agoFix REL build, part 2.
Dmitry Gorbachev [Tue, 9 Feb 2010 20:21:54 +0000 (20:21 +0000)]
Fix REL build, part 2.

svn path=/trunk/; revision=45539

12 years agoFix REL build.
Dmitry Gorbachev [Tue, 9 Feb 2010 20:08:06 +0000 (20:08 +0000)]
Fix REL build.

svn path=/trunk/; revision=45538

12 years agoDemote "may be used uninitialized" errors into warnings again.
Dmitry Gorbachev [Tue, 9 Feb 2010 19:02:56 +0000 (19:02 +0000)]
Demote "may be used uninitialized" errors into warnings again.

svn path=/trunk/; revision=45536

12 years agoThe big RosBE 1.5 compatibility patch. You will need RosBE 1.5 from this point!
Colin Finck [Tue, 9 Feb 2010 18:14:58 +0000 (18:14 +0000)]
The big RosBE 1.5 compatibility patch. You will need RosBE 1.5 from this point!
- Set the minimum GCC version to 4.4.0 and minimum Binutils version to 20091016.
- Remove the -fno-unit-at-a-time hacks.
- Remove dgorbachev's temporary hacks for user-mode C++ applications.
- Merge ntoskrnl's "precomp.h" and "ntoskrnl.h" again, the PCH issues have been fixed.
- Use our "ofmt_stub.a" to be compatible with newer MinGW Runtime versions.
- Use LD's new -exclude-all-symbols option to not auto-export all symbols in case no DEF file or __declspec(dllexport) was specified.
  We used to patch our LD version to work around this problem.
- Use LD's --start-group and --end-group parameters to allow a more flexible linking order.
- Use GCC's -fno-set-stack-executable for amd64 and i386 targets to disable adding the __enable_execute_stack code.
- Change the makefile's name to "makefile-$(ARCH).auto" for all architectures.
- Remove some -Wno-error flags.

See issue #4810 for more details.

svn path=/trunk/; revision=45535

12 years ago- Make KeFlushProcessTb work. Since no MPCore support, CPU TLB is flushed instead...
evb [Tue, 9 Feb 2010 18:06:26 +0000 (18:06 +0000)]
- Make KeFlushProcessTb work. Since no MPCore support, CPU TLB is flushed instead. Maybe should use ASIDs later.

svn path=/trunk/; revision=45534

12 years ago[paint] fix rectangular selection tool
Benedikt Freisen [Tue, 9 Feb 2010 18:06:18 +0000 (18:06 +0000)]
[paint] fix rectangular selection tool

svn path=/trunk/; revision=45533

12 years ago- Fix wrong initialization of different modes and stacks.
evb [Tue, 9 Feb 2010 18:05:01 +0000 (18:05 +0000)]
- Fix wrong initialization of different modes and stacks.

svn path=/trunk/; revision=45532

12 years ago[DSOUND_NEW]
Johannes Anderwald [Tue, 9 Feb 2010 14:24:50 +0000 (14:24 +0000)]
- Add more parameter checks
- Implement a few more functions for the primary sound buffer

svn path=/trunk/; revision=45530

12 years ago[DSOUND_NEW]
Johannes Anderwald [Tue, 9 Feb 2010 13:14:19 +0000 (13:14 +0000)]
- Implement getting volume, volume pan, and frequency for secondary sound buffer
- Semi-stub setting volume, volume pan and frequency for secondary...

svn path=/trunk/; revision=45529

12 years ago[DSOUND_NEW]
Johannes Anderwald [Tue, 9 Feb 2010 12:03:59 +0000 (12:03 +0000)]
- Implement starting / stopping primary sound buffer
- Implement retrieving capabilities for secondary sound buffer
- Import sound mixing routines from wine, not yet used

svn path=/trunk/; revision=45527

12 years ago[FREELDR]: Use WinLDR-style booting exclusively for ARM. Remove thousands of lines...
Sir Richard [Tue, 9 Feb 2010 03:10:07 +0000 (03:10 +0000)]
[FREELDR]: Use WinLDR-style booting exclusively for ARM. Remove thousands of lines of old code where we basically did the same thing.
[FREELDR]: Build WinLDR for ARM too, and implement the required portability functions to get it working. Don't build "ros-style" loading on ARM.
[FREELDR]: Redo from scratch the entire paging setup for ARM. Instead of using 20MB of physical RAM, we now only use 1MB that's passed on to the kernel.
[FREELDR]: Fix loads of bugs in the ARM loader code (ha-ha!).
[FREELDR]: Cleanup compiler and linker flags in the rbuild files.
[ARMLLB]: Remove all deprecated video machine routines that are not used anymore.
If all went well, the ARM port should now boot on Versatile platforms up until the ARM3 initialization code.

svn path=/trunk/; revision=45526

12 years ago[MISC]: Build fixes to sync up with latest changes.
Sir Richard [Tue, 9 Feb 2010 03:05:49 +0000 (03:05 +0000)]
[MISC]: Build fixes to sync up with latest changes.
[SETUPLDR]: Do not build on ARM. On a side note, I offer a bountry for "if ARCH != ARM" support in .rbuild files, instead of only allowing ==.

svn path=/trunk/; revision=45525

12 years ago[FREELDR]: Remove C++ style indirected "UI" component from FreeLDR ARM, for several...
Sir Richard [Tue, 9 Feb 2010 02:53:45 +0000 (02:53 +0000)]
[FREELDR]: Remove C++ style indirected "UI" component from FreeLDR ARM, for several reasons that ought to be considered on x86 too:
    - It redraws the screen in two different ways (zero memory and character-by-character fill) over 15 times for a single boot. You notice these things on a little ARM chip!
    - It keeps coping data from/to an "off-screen buffer" way too much, instead of only when the video needs to be synced.
    - It makes assumptions about all Video Buffers supporting Character-Mode VGA.
    - It can be configured to draw cyan/yellow ponies, instead of a normal NT boot menu.
    The ARM build now uses a "directui.c" implementation which fixes all these issues and is efficient and to the point. It presents a normal Windows boot selection menu on ARM.
[FREELDR]: Do not build any of the video routines, or the UI routines, on ARM.

svn path=/trunk/; revision=45524

12 years ago[FREELDR]: No Linux support for ARM, no RS232 support for ARM, and no complex debug...
Sir Richard [Tue, 9 Feb 2010 02:38:23 +0000 (02:38 +0000)]
[FREELDR]: No Linux support for ARM, no RS232 support for ARM, and no complex debug infrastructure for ARM either.

svn path=/trunk/; revision=45523

12 years agoadd setjmp/longjmp to libcntpr, just like in ms sdks
Timo Kreuzer [Tue, 9 Feb 2010 02:34:42 +0000 (02:34 +0000)]
add setjmp/longjmp to libcntpr, just like in ms sdks

svn path=/trunk/; revision=45522

12 years ago[FREELDR]: Do not build Disk/Partition support for ARM, we use ram disks.
Sir Richard [Tue, 9 Feb 2010 02:33:31 +0000 (02:33 +0000)]
[FREELDR]: Do not build Disk/Partition support for ARM, we use ram disks.

svn path=/trunk/; revision=45521

12 years ago[FREELDR]: Do not build EXT2, ISO or NTFS support for ARM targets.
Sir Richard [Tue, 9 Feb 2010 02:32:59 +0000 (02:32 +0000)]
[FREELDR]: Do not build EXT2, ISO or NTFS support for ARM targets.

svn path=/trunk/; revision=45520

12 years ago[FREELDR]: The WinLDR code forgot to update the File Path of boot driver entries...
Sir Richard [Tue, 9 Feb 2010 02:26:46 +0000 (02:26 +0000)]
[FREELDR]: The WinLDR code forgot to update the File Path of boot driver entries from PA to VA as well, not just the registry path. It also tried to touch the PA LoaderBlock right after enabling the MMU. It should touch the VA LoaderBlock instead, since there is no guarantee that the address has been identity mapped (and hence the PA address interpreted as a VA address by the MMU is bogus).

svn path=/trunk/; revision=45519

12 years ago- New ARM HAL after 2 nights in the company of a madman.
evb [Tue, 9 Feb 2010 02:26:28 +0000 (02:26 +0000)]
- New ARM HAL after 2 nights in the company of a madman.
- Many fixes, more implemented routines, support for ARMv7.
- Some Linux code, marked as GPL, from ARM Ltd in cache.s. All OS use this code.

svn path=/trunk/; revision=45518

12 years ago[FREELDR]: The hack to set pages from 0x100 to 0x1FF as busy so that the heap allocat...
Sir Richard [Tue, 9 Feb 2010 02:22:08 +0000 (02:22 +0000)]
[FREELDR]: The hack to set pages from 0x100 to 0x1FF as busy so that the heap allocator wouldn't use them always restored the pages back to Free (since they usually were free on x86). However, if the pages were already being used in the first place, this made them appear free and corrupted existing memory. Fixed the hack so that it restores the previous state of the memory pages.

svn path=/trunk/; revision=45517

12 years ago[NDK]: Use new ARMv6 PTE structures.
Sir Richard [Tue, 9 Feb 2010 02:14:58 +0000 (02:14 +0000)]
[NDK]: Use new ARMv6 PTE structures.

svn path=/trunk/; revision=45516

12 years ago[NTOS]: Tabula rasa (clean slate) on the old-MM page routines for ARM. Get rid of...
Sir Richard [Tue, 9 Feb 2010 02:14:20 +0000 (02:14 +0000)]
[NTOS]: Tabula rasa (clean slate) on the old-MM page routines for ARM. Get rid of all of them for now.
[NTOS]: Implement MmInitGlobalKernelPageDirectory as the first ARM page function in the new file.
That's it for the kernel.

svn path=/trunk/; revision=45515

12 years ago[NTOS]: All calls to DbgPrint will go to DbgPrintEarly for now.
Sir Richard [Tue, 9 Feb 2010 02:12:27 +0000 (02:12 +0000)]
[NTOS]: All calls to DbgPrint will go to DbgPrintEarly for now.
[NTOS]: More header fixes to match new definitions.

svn path=/trunk/; revision=45514

12 years ago[NTOS]: Make system startup match x86 code as closely as possible, instead of mixing...
Sir Richard [Tue, 9 Feb 2010 02:11:18 +0000 (02:11 +0000)]
[NTOS]: Make system startup match x86 code as closely as possible, instead of mixing MIPS/PPC code. Only rip out parts that are obviously x86-specific. Also fix code to use new KPCR definitions.
[NTOS]: Implement a DbgPrintEarly function that directly uses KDCOM to print to the serial console, instead of going through the Debug Service Interrupt.

svn path=/trunk/; revision=45513

12 years ago[NTOS]: Update code to use new KPCR structure.
Sir Richard [Tue, 9 Feb 2010 02:09:34 +0000 (02:09 +0000)]
[NTOS]: Update code to use new KPCR structure.
[NTOS]: Make all trap code currently spin forever, because it has not been reviewed yet.

svn path=/trunk/; revision=45512

12 years ago[ARMDDK]: Use the same KPCR structure on ARM as on x86.
Sir Richard [Tue, 9 Feb 2010 02:08:24 +0000 (02:08 +0000)]
[ARMDDK]: Use the same KPCR structure on ARM as on x86.
[ARMDDK]: Use the same addresses for KPCR and KUSER_SHARED_DATA on ARM as on x86. On ARM however, since there are no "segments", the KPCR is also mapped in user-mode, read-only, to have a static structure that can point to the current TEB.

svn path=/trunk/; revision=45511

12 years ago[ARM DDK]: Use the closest possible approximation to the x86 KPCR/KPRCB (in fact...
Sir Richard [Tue, 9 Feb 2010 02:06:29 +0000 (02:06 +0000)]
[ARM DDK]: Use the closest possible approximation to the x86 KPCR/KPRCB (in fact, the public KPCR is identical, just the KIPCR is different, internally), instead of a mashup of PPC and MIPS structures.

svn path=/trunk/; revision=45510