Commit graph

40901 commits

Author SHA1 Message Date
Sir Richard 320d8bf5c9 [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
2010-02-19 01:58:48 +00:00
Sir Richard 37aa114310 [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
2010-02-19 00:46:35 +00:00
Dmitry Gorbachev 1337cbf945 [NTOSKRNL] KiConvertToGuiThread() "accesses memory in an unpredictable fashion".
svn path=/trunk/; revision=45615
2010-02-18 23:25:12 +00:00
Dmitry Gorbachev 3d50158647 [BOOTVID] Initialize VgaAddress.HighPart
svn path=/trunk/; revision=45614
2010-02-18 23:25:05 +00:00
Eric Kohl 1d99f1321b [DEVMGR]
Display some more device properties.

svn path=/trunk/; revision=45613
2010-02-18 20:18:24 +00:00
Sir Richard 19e144b8b3 [NTOS]: Fix build, my bad (missing file).
svn path=/trunk/; revision=45612
2010-02-18 17:13:37 +00:00
Sir Richard de3d0b9d0c Patch by Daniel Zimmermann <netzimme@aim.com>:
[DDK]: Add PCI_ADDRESS_MEMORY_SPACE.
[HAL]: Use it in HalpAssignPCISlotResources.

svn path=/trunk/; revision=45611
2010-02-18 17:00:09 +00:00
Sir Richard be43595873 [NTOS]: Build the actual ARM3 PFN database.
svn path=/trunk/; revision=45610
2010-02-18 16:56:54 +00:00
Sir Richard da398fe2c4 [NTOS]: Remove unused code.
svn path=/trunk/; revision=45609
2010-02-18 16:50:55 +00:00
Johannes Anderwald 774ed64bf2 [KSPROXY]
- Stub interfaces for CBasicAudio, CKsClockForwarder, CVPConfig, CVPVBIConfig, CKsDataTypeHandler, CKsInterfaceHandler, CKsProxy, CKsQualityForwarder
- Implement KsSynchronousDeviceControl, KsOpenDefaultDevice, KsGetMultiplePinFactoryItems, KsGetMediaTypeCount, DllGetClassObject

svn path=/trunk/; revision=45608
2010-02-18 15:24:29 +00:00
Johannes Anderwald aeb669a3de [PSDK]
- KSM_PIN is defined in bdasup.h not bdatypes.h
- Add IReferenceClockTimerControl, IAMDeviceRemoval. IDistributorNotify, IAMClockAdjust, IAMStreamControl, IDeferredCommand interface
- Add AM_STREAM_INFO_FLAGS, AM_STREAM_INFO struct
- Modify VMRGUID struct so that gnu compilers can digest it too
- Remove useless KSINTERFACESETID_Standard define from ks.h
- Define LOCALE_INVARIANT macro


svn path=/trunk/; revision=45607
2010-02-18 15:04:54 +00:00
Cameron Gutman 3874d4ff4e - 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
2010-02-16 20:32:58 +00:00
Timo Kreuzer 690fd6eb6d [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
2010-02-15 20:16:15 +00:00
Timo Kreuzer a7994c98a5 [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
2010-02-13 02:01:33 +00:00
Johannes Anderwald 1ce3458da7 [PSDK]
- Work on ksproxy.h, WIP

svn path=/trunk/; revision=45586
2010-02-12 13:46:53 +00:00
Johannes Anderwald ff9fdc8259 [PORTCLS]
- 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
2010-02-12 10:12:46 +00:00
Johannes Anderwald 5974fe1781 [DSOUND_NEW]
- 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
2010-02-12 09:54:56 +00:00
Christoph von Wittich 082d9c9fe7 [MSDMO]
sync msdmo with wine 1.1.38

svn path=/trunk/; revision=45583
2010-02-12 09:20:35 +00:00
Johannes Anderwald dd15553124 [MMIXER, WDMAUD_KERNEL]
- Implement retrieving device path

svn path=/trunk/; revision=45582
2010-02-12 06:18:31 +00:00
Johannes Anderwald 97db4c1d16 - Revert 44564
svn path=/trunk/; revision=45580
2010-02-11 21:19:35 +00:00
Johannes Anderwald a19cbab2fc [WDMAUD_KERNEL]
- Replace mixer / wave support code by mmixer library
[MMIXER]
- 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
[WDMAUD.DRV]
- Apply changes from mmixer library

-- Tested in Vbox with Winamp / ReactOS mplay32

svn path=/trunk/; revision=45579
2010-02-11 21:04:57 +00:00
Eric Kohl bfa7d233cd [DEVMGR]
Display Matching Device ID.

svn path=/trunk/; revision=45578
2010-02-11 20:23:48 +00:00
Sir Richard 7872be6071 [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
2010-02-11 18:44:28 +00:00
Sir Richard 27494e478b [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
2010-02-11 18:41:45 +00:00
Sir Richard 2cd1a22f66 [NTOS]: Remove bogus assertion.
svn path=/trunk/; revision=45575
2010-02-11 18:33:52 +00:00
Sir Richard a2fa6b804c [NTOS]: Fix broken MI_PFNENTRY_TO_PFN macro.
svn path=/trunk/; revision=45574
2010-02-11 18:31:54 +00:00
Timo Kreuzer 43108b2dd0 [HAL]
Restore fs in HalpTrap06. Should fix crash on 1st stage with VBox.

svn path=/trunk/; revision=45573
2010-02-11 17:36:57 +00:00
Sir Richard 6adba76502 [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
2010-02-11 09:15:50 +00:00
Cameron Gutman aa9a3648eb - Fix floppy controller detection
- Simplify waiting in Get_Byte and Send_Byte
 - See issue #4391 for details

svn path=/trunk/; revision=45568
2010-02-11 02:22:34 +00:00
Sir Richard c7f7e3bac7 [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
2010-02-11 00:01:32 +00:00
Timo Kreuzer dd6b443e89 [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
2010-02-10 23:24:59 +00:00
Giannis Adamopoulos de233c67ef [rbuild]
- 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
2010-02-10 21:55:51 +00:00
Sylvain Petreolle 0903c90702 Add french translations for location overrides.
svn path=/trunk/; revision=45563
2010-02-10 20:11:13 +00:00
Christoph von Wittich 1d7c77f2a7 partially revert changes from 45560
svn path=/trunk/; revision=45562
2010-02-10 19:56:27 +00:00
Daniel Reimer 1a83ffb12e Experimental try to get Itunes Setup start. By Samuel Serapion
svn path=/trunk/; revision=45561
2010-02-10 19:50:30 +00:00
Eric Kohl 350a658937 Add device location information override PS/2 keyboards.
Please translate the location override string.

svn path=/trunk/; revision=45560
2010-02-10 19:35:13 +00:00
Daniel Reimer 35ebed7670 Update Rapps Links and add the two RosBE Addons.
svn path=/trunk/; revision=45559
2010-02-10 19:33:10 +00:00
Sir Richard 88d67c0d34 [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
2010-02-10 18:44:30 +00:00
Sir Richard 1711020a43 [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
2010-02-10 18:10:04 +00:00
Sir Richard 4e061e178b [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
2010-02-10 17:42:07 +00:00
Dmitry Gorbachev b7b948cff5 Do not crash, use valid kernel PTE.
svn path=/trunk/; revision=45555
2010-02-10 13:56:54 +00:00
Michael Martin 3c1ec16123 [usb/usbehci]
- Remove WorkItem code as its not needed. UsbHub driver polls the hubs for device connects.
- Register USB Host Controller Device Interface during AddDevice.- Implement more URB's USB_DEVICE_DESCRIPTOR_TYPE, USB_CONFIGURATION_DESCRIPTOR_TYPE, URB_FUNCTION_SELECT_CONFIGURATION, URB_FUNCTION_CLASS_DEVICE/USB_DEVICE_CLASS_HUB.
- Implement returning generic UsbdDeviceHandle in URB struct.

svn path=/trunk/; revision=45554
2010-02-10 12:38:18 +00:00
Christoph von Wittich a884062bc9 [usb/usbehci]
fix typo

svn path=/trunk/; revision=45553
2010-02-10 12:25:35 +00:00
Michael Martin b028cb1e4e [usb/usbehci]
- 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
2010-02-10 12:21:23 +00:00
Dmitry Gorbachev 909e0c1b43 Update log2lines to ver. 2.1. Jan Roeloffzen, bug #4342.
svn path=/trunk/; revision=45551
2010-02-10 12:10:23 +00:00
Ged Murphy 9709c3dfb9 Found a leak fix patch from years ago
svn path=/trunk/; revision=45550
2010-02-10 08:24:34 +00:00
Sir Richard 8e0c1b2fb4 [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
2010-02-10 04:12:23 +00:00
Sir Richard 9f67c34652 [NTOS]: Allow registry configuration of large kernel stack size, with proper checks.
svn path=/trunk/; revision=45548
2010-02-10 03:59:17 +00:00
Sir Richard 3caee550bc [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
2010-02-10 02:00:56 +00:00
Cameron Gutman f11ee9cfaf - Merge r45531 and r45545 from aicom-network-branch
svn path=/trunk/; revision=45546
2010-02-10 00:55:58 +00:00