mirror of
https://github.com/reactos/reactos.git
synced 2024-10-08 02:13:56 +00:00
378294a7df
- Split buffers on page to prevent non-contiguous memory being passed to driver. - Protect CIrpQueue::GetMappingWithTag, ReleaseMappingWithTag with spinlock to prevent race conditions (GetMapping, ReleaseMapping do not need spinlock, they are only called from a service routine). - Remove ASSERT in CIrpQueue::ReleaseMappingWithTag, when mappings are released out of order. Just ignore the tag argument and release the next one in the list. This is what windows does, confirmed by calling PortWavePciStream::ReleaseMapping() with tag argument set to 0, absolutly no difference observed. Allowing out of order release is essential given that a driver is not permitted to hold a spinlock when calling ReleaseMapping(). - Remove IIrpQueue::HasLastMappingFailed(), it never worked and there is no way it could work. CPortPinWavePci::HandleKsStream() call MappingAvailable() non-conditionally, this is what Windows does, verified by debug prints in ac97 driver. - Implement CIrpQueue::NumData(). - Remove incorrect interlocked operations/volatile variables and several (now unused) class fields. |
||
---|---|---|
.. | ||
adapter.cpp | ||
api.cpp | ||
CMakeLists.txt | ||
connection.cpp | ||
dispatcher.cpp | ||
dll.cpp | ||
dma_slave.cpp | ||
drm.cpp | ||
drm_port.cpp | ||
filter_dmus.cpp | ||
filter_topology.cpp | ||
filter_wavecyclic.cpp | ||
filter_wavepci.cpp | ||
filter_wavert.cpp | ||
guid.cpp | ||
interfaces.hpp | ||
interrupt.cpp | ||
irp.cpp | ||
irpstream.cpp | ||
miniport.cpp | ||
miniport_dmus.cpp | ||
miniport_fmsynth.cpp | ||
pin_dmus.cpp | ||
pin_wavecyclic.cpp | ||
pin_wavepci.cpp | ||
pin_wavert.cpp | ||
pool.cpp | ||
port.cpp | ||
port_dmus.cpp | ||
port_topology.cpp | ||
port_wavecyclic.cpp | ||
port_wavepci.cpp | ||
port_wavert.cpp | ||
port_wavertstream.cpp | ||
portcls.rc | ||
portcls.spec | ||
power.cpp | ||
private.hpp | ||
propertyhandler.cpp | ||
purecall.cpp | ||
registry.cpp | ||
resource.cpp | ||
service_group.cpp | ||
undoc.cpp | ||
unregister.cpp | ||
version.cpp |