Commit graph

42919 commits

Author SHA1 Message Date
Timo Kreuzer 9b4daa14f8 [ZLIB]
Revert r47411. This is a test to see if it fixes the sysreg crash in 1st stage.

svn path=/trunk/; revision=47688
2010-06-07 23:39:37 +00:00
Johannes Anderwald 65169e1f54 [WDMAUD_KERNEL]
- Extend the mdl hack

svn path=/trunk/; revision=47687
2010-06-07 23:00:04 +00:00
Sylvain Petreolle 5b8ed5479f Revert 47685.
svn path=/trunk/; revision=47686
2010-06-07 21:38:49 +00:00
Sylvain Petreolle 03b31fbc3f Enable debug in usetup. This will be reverted in next commit.
svn path=/trunk/; revision=47685
2010-06-07 21:36:37 +00:00
Sir Richard 90d92560f4 [HAL]: Use Bus Handler support for HalFindBusAddressTranslation. Implement HalpContextToBusHandler to support this. Seems to work fine with bootvid (only user).
All the HAL's bus functions now use Bus Handlers on Legacy systems. There are still big issues with PCI cards.
       eVb: PCI-x should work now.
       More PCI-related HAL patches may follow later.

svn path=/trunk/; revision=47684
2010-06-07 21:36:31 +00:00
Sir Richard a37a4a9e07 [HAL]: Use Bus Handlers for HalpAssignSlotResources. Warn that current PCI Slot assignment code is frelled.
[HAL]: Add PAGED_CODE();
[HAL]: Fix HALACPI build break.

svn path=/trunk/; revision=47683
2010-06-07 21:26:09 +00:00
Amine Khaldi 9ca3ec1085 [PSDK]
- Update/improve some usb related headers' headers.

svn path=/branches/header-work/; revision=47682
2010-06-07 21:19:24 +00:00
Amine Khaldi f19e851716 [PSDK]
- Fix a "FIXME! HACK!!!"

svn path=/branches/header-work/; revision=47681
2010-06-07 21:15:05 +00:00
Sir Richard 1491820d8d [HAL]: Implement HalAdjustResourceList using Bus Handler support. Previous HAL said this was "deprecated" and faked success. Although correct on ACPI HALs, this is a legacy HALs, so Bus Handlers have a chance to do ajdustment.
svn path=/trunk/; revision=47680
2010-06-07 21:06:16 +00:00
Sir Richard 28bde112e1 [HAL]: Implement HalTranslateBusAddress using Bus Handler support. The old HAL would just return whatever the caller gave (no translation was done). For example, with the new HAL, this now results in the translation of 0xCF800 in I/O space to fail (not sure which driver requests this), because this is not a valid I/O address on PC/AT systems (highest is 0xFFFF).
This change also allows for the PCI driver to override the translation mechanism (which will piggy-back to the system bus translator) with its own. Please test.

svn path=/trunk/; revision=47679
2010-06-07 21:01:53 +00:00
Sir Richard 0ae7a75158 [HAL]: Implement ISA BUS address translation.
svn path=/trunk/; revision=47678
2010-06-07 20:59:46 +00:00
Sir Richard fc0a9b1bef [HAL]: Implement system bus address translation.
svn path=/trunk/; revision=47677
2010-06-07 20:59:00 +00:00
Sir Richard 7ebba8b83c [HAL]: Implement Bus Handler support for HalGetInterruptVector too. The new functionality now includes support for checking against reserved HAL vectors instead of blindling assining IRQLs/Vectors to callers. A warning is printed on the debug log when the old HAL would've returned different values. Please test. If you have issues, the problem is in the DRIVERS, not this code.
svn path=/trunk/; revision=47676
2010-06-07 20:39:11 +00:00
Sir Richard 566408b2d9 [HAL]: Implement PCI Vector/IRQL translation too.
svn path=/trunk/; revision=47675
2010-06-07 20:37:45 +00:00
Sir Richard 6bbba6481b [HALMP]: MP HAL should have HalpDefaultInterruptAffinity too.
svn path=/trunk/; revision=47674
2010-06-07 20:37:19 +00:00
Sir Richard edda414937 [HAL]: Forgot file.
svn path=/trunk/; revision=47673
2010-06-07 20:35:02 +00:00
Sir Richard 1b1d03c8a0 [HAL]: Implement system bus (and ISA) vector/interrupt translation.
svn path=/trunk/; revision=47672
2010-06-07 20:34:41 +00:00
Sir Richard dcde6d79da [HAL]: Use Bus Handler support for HalSetBusDataByOffset. Please report any problems.
svn path=/trunk/; revision=47671
2010-06-07 20:13:05 +00:00
Sir Richard cc500cbf5c [HAL]: First use of bus handler support: HalGetBusDataByOffset now uses bus handlers. Please report any problems.
svn path=/trunk/; revision=47670
2010-06-07 20:10:53 +00:00
Sir Richard e8040d911e [HAL]: I don't like to swear, but F*CK this MiniHAL bullsh*t!
svn path=/trunk/; revision=47668
2010-06-07 18:30:20 +00:00
Amine Khaldi 4edc0517fc Sync up to trunk head (r47666)
svn path=/branches/header-work/; revision=47667
2010-06-07 17:15:29 +00:00
Sir Richard c2677cf238 [HAL]: Plug in the data from pcidata.c that was committed months ago to display a beautiful enumeration of all PCI devices on the machine. This will allow debug logs not only to contain nearly full hardware information, but also identify the VM the tester/reporter is using (based on the device's subsystem ID).
[HAL]: Display all the warning DPRINTs in-line with the PCI enumeration code, resulting in a much easier to read and comprehensive review of the machine.

svn path=/trunk/; revision=47666
2010-06-07 17:01:56 +00:00
Sir Richard bf8a146243 [HAL]: Implement HalpGetPciBridgeConfig to detect PCI-to-PCI/CardBus bridges, warn if they are found.
[HAL]: Modify the debug messages to be more accurate as to what exactly is unsupported.

svn path=/trunk/; revision=47665
2010-06-07 16:44:12 +00:00
Sir Richard f098f2ae2b [HAL]: Implement partly HalpFixupPciSupportedRanges to detect PCI Bridges, and PCI-to-PCI Bridges. The point is we want buses to be cramped down to the addresses supported by the parent bus/bridge. This is NOT currently done, so we warn users of these systems.
svn path=/trunk/; revision=47664
2010-06-07 16:15:01 +00:00
Sir Richard 9ef2a02386 [HAL]: Detect, check for, and warn about, chipset hacks that need to be applied for the machine.
svn path=/trunk/; revision=47662
2010-06-07 15:34:35 +00:00
Amine Khaldi 6bc4e97d08 Sync trunk.
svn path=/branches/header-work/; revision=47661
2010-06-07 15:30:17 +00:00
Sir Richard 2031c565df [NTOS]: Check registry for our CardList, check if the PCI hardware matches any entry in there that specifies it has full/extended address decoding, and write the registry flag for it.
svn path=/trunk/; revision=47660
2010-06-07 15:09:44 +00:00
Sir Richard 83c3c7abb2 [HAL]: Detect IDE controllers. Their interrupts should not be masked.
svn path=/trunk/; revision=47659
2010-06-07 15:02:49 +00:00
Michael Martin 7c5fd856ee [win32k]
- Change the number of windowless timers from 1024 to 32768.
- When destroying windowless timers, clear the bit number (IDEvent) in the bitmap so the bit number can be reused.
- Only create a windowless timer if there is no windowless timer matching IDEvent.
- Fixes case where applications create too many windowless timers and/or run out of windowless timers.

svn path=/trunk/; revision=47658
2010-06-07 13:37:43 +00:00
Cameron Gutman b2c96e402d [MSAFD]
- Fix a bug in GetSocketStructure that resulted in us missing the last entry of the list
- Remove an "optimization" which was supposed to find an unused socket entry (which it almost never did) but now just corrupts the linked list by trashing our NextSocket pointer

svn path=/trunk/; revision=47656
2010-06-07 05:40:08 +00:00
Sir Richard adc324f5c9 [HAL]: Detect, initialize, and create bus handlers for, all PCI buses that are found on the machine.
[HAL]: Detect PCI-to-PCI Bridges, Extended CardBus Addressing, read Chipset Hacks from Registry, and scan for IRQ lines used by PCI Devices. Scan for PCI-IDE controllers, broken Intel PCI Bridges/Controllers. Scan for OHCI and UHCI USB controllers. Warn the user that if any of these are found, the current HAL does not handle certain types of these devices (these checks are based on the ones the Legacy Windows HAL makes).

svn path=/trunk/; revision=47655
2010-06-07 03:23:48 +00:00
Sir Richard 07b14e926d [HAL]: Add missing PCI Bus Handler support functions, used on non-ACPI systems (ISA-PCI support and such).
svn path=/trunk/; revision=47654
2010-06-07 03:19:20 +00:00
Sir Richard e2d5c9d92b [HAL]: Kill debug spew.
svn path=/trunk/; revision=47653
2010-06-07 03:18:51 +00:00
Cameron Gutman e91cc9349b [MSAFD]
- Fix 2 more callers who don't pass a valid lpErrno pointer
- Check the return value of WSPSocket
- Return WSAEWOULDBLOCK if there are no connections that can be accepted instead of silently returning 0 which is not INVALID_SOCKET so the caller treats it as a valid socket pointer and passes it to other functions which caused wide-spread mayhem since we never checked whether the socket handle the caller passed was valid until my last commit

svn path=/trunk/; revision=47652
2010-06-07 01:50:26 +00:00
Cameron Gutman d19620d1ab [AFD]
- It is legal to send a NULL event object pointer to AFD (this is sent by msafd to cancel an existing event select)

svn path=/trunk/; revision=47651
2010-06-07 01:38:15 +00:00
Cameron Gutman 88c29ff4f2 [MSAFD]
- Validate that we found the corresponding socket information in our socket information list
- Fixes a crash in Firefox 2 when it tries to call accept() with a closed socket

svn path=/trunk/; revision=47650
2010-06-07 01:24:15 +00:00
Sir Richard ad1721c016 [HAL]: Bus support in the HAL actually creates a further wedge between the different x86 HALs: There are actually two dinstinct implementations. On the ACPI HAL, the system is assumed not to have things like special ISA, MCA, EISA buses, and a PCI driver is used in combination with the ACPI Interface for PCI Bus support. On non-ACPI systems, the legacy "Bus Handler" library is used, and the HAL provides a core set of CMOS, EISA, ISA, MCA and PCI bus handlers, each with their own routines and specific code. Additionally, PCI IRQ Routing and other PCI bus internals are handled directly by the HAL -- on the ACPI HAL, the PCI Bus support is implemented through a "Fake"/static bus handler, just to keep the functions shared. On ReactOS, both the ACPI and non-ACPI HAL were currently using a mix of both HAL bus handling types, mostly implemented the "ACPI way" (with a fake PCI bus handler and such).
As a result, none of the Hal*Bus HALDISPATCH routines were implemented, which bus drivers expect to find when they're not on ACPI systems (ReactOS today). eVb's new PCI driver was crashing, for example.
       Furthermore, legacy systems suffer, because the ACPI HAL Bus routines (that we currently have) expect perfect ACPI-style-compliant systems, not the legacy crap from the early 90ies. This works fine in VMs and new hardware, but old hardware is left behind.
       This patch basically corrects the first part of the problem, by making the bus handling support separate between ACPI and non-ACPI HALs. For now, the code remains 100% the same in functionality between both.
       However, I have started adding the first few elements:
[HAL]: Implement HalRegisterBusHandler HALDISPATCH routine.
[HAL]: On legacy HALs, register the CMOS, ISA, SYSTEM handlers.
[HAL]: Add cmosbus.c. Stub all bus-specific bus handler routines in the xxxbus.c files.
No real functionality change occurs with this patch, yet.

svn path=/trunk/; revision=47649
2010-06-07 01:09:41 +00:00
Sir Richard af870b6e47 [DHCP/FTP]: Fix building on OS X hosts.
svn path=/trunk/; revision=47648
2010-06-07 00:58:55 +00:00
Cameron Gutman 9cf2124763 I hate making the same mistake twice in one day
svn path=/trunk/; revision=47647
2010-06-07 00:44:00 +00:00
Cameron Gutman e0549f6100 [MSAFD]
- Use a linked list to store the socket information instead of allocating a massive array (1024 elements!) for each process in DllMain to hold all of the pointers
- Fix a massive memory leak (free the socket information which we leaked for every socket we allocated)
- This improves performance because we don't have to look through an array of stale socket information pointers (which we never actually removed from the socket information array in the old code) and the new code queues the socket information at the head of the list which makes newer sockets faster to access

svn path=/trunk/; revision=47646
2010-06-07 00:24:27 +00:00
Cameron Gutman 0b3f90dce4 Remove an unintended change
svn path=/trunk/; revision=47645
2010-06-06 23:49:27 +00:00
Daniel Reimer 8404cbb540 Add Opera 9 to rapps.
Update OOo to 3.2.1 and the last time... fix the FF2 link.

svn path=/trunk/; revision=47644
2010-06-06 23:45:20 +00:00
Cameron Gutman fbc1db9487 [MSAFD]
- Fix many times where we wait for an operation but don't update our status and return if it failed
- Fix the overlapped pending case in writing which was completely broken (callers would detect an error but GetLastError would return 0 because we didn't store the error in the lpErrno variable)
- Fix many times where we pass a pointer to an event that we close without waiting
- Fix a bug in WSPEnumNetworkEvents when we would set WSAEINVAL in the lpErrno variable but not return SOCKET_ERROR so the error got ignored

svn path=/trunk/; revision=47643
2010-06-06 23:07:26 +00:00
Cameron Gutman 444eec4511 [NDIS]
- Hold the miniport lock when we work with the timer queue
- Use the return value of KeSetTimer(Ex) to determine whether we need to queue the timer in our queue, otherwise we just use the entry that is already there
- Add more assertions

svn path=/trunk/; revision=47642
2010-06-06 22:08:40 +00:00
Cameron Gutman 6e1d1db7af Forgot to remove this ASSERT for r47636
svn path=/trunk/; revision=47639
2010-06-06 21:31:58 +00:00
Gregor Schneider 928accdc2c [WIN32K]
- Use TAG_KEYBOARD for keyboard layouts
- Free TAG_ACCEL and TAG_DRIVER allocations with their tags

svn path=/trunk/; revision=47637
2010-06-06 19:29:20 +00:00
Cameron Gutman c01132e4ff [NDIS]
- Only dequeue the timer in the DPC if the Period is 0 (which means that it's NOT a periodic timer so we only get called once)
- Attempt to dequeue the timer before inserting it so we don't end up with multiple copies of the same timer on the timer queue if somebody calls NdisMSet(Periodic)Timer twice

svn path=/trunk/; revision=47636
2010-06-06 19:18:19 +00:00
Gregor Schneider a4aeb090df [WIN32K]
- Use TAG_PALETTE for palette entries
- Remove mapping codes, the functions from pre r9000 don't even exist anymore

svn path=/trunk/; revision=47635
2010-06-06 19:11:52 +00:00
Gregor Schneider 218cfae51d [WIN32K] Use TAG_GDIICM tag for ICM allocations
svn path=/trunk/; revision=47634
2010-06-06 18:51:43 +00:00
Stefan Ginsberg 622c4a0919 [NTOS] Inline writing to PTEs through MI_WRITE_VALID/INVALID_PTE.
svn path=/trunk/; revision=47633
2010-06-06 18:45:46 +00:00