mirror of
https://github.com/reactos/reactos.git
synced 2025-06-13 16:48:32 +00:00
[USBEHCI]
- Fix regressions caused by libusb svn path=/trunk/; revision=55916
This commit is contained in:
parent
743a8996a2
commit
ad333c1655
4 changed files with 47 additions and 7 deletions
|
@ -32,7 +32,7 @@ VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
StatusChangeWorkItemRoutine(PVOID Context);
|
StatusChangeWorkItemRoutine(PVOID Context);
|
||||||
|
|
||||||
class CUSBHardwareDevice : public IUSBHardwareDevice
|
class CUSBHardwareDevice : public IEHCIHardwareDevice
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
STDMETHODIMP QueryInterface( REFIID InterfaceId, PVOID* Interface);
|
STDMETHODIMP QueryInterface( REFIID InterfaceId, PVOID* Interface);
|
||||||
|
@ -127,6 +127,7 @@ CUSBHardwareDevice::QueryInterface(
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::Initialize(
|
CUSBHardwareDevice::Initialize(
|
||||||
PDRIVER_OBJECT DriverObject,
|
PDRIVER_OBJECT DriverObject,
|
||||||
PDEVICE_OBJECT FunctionalDeviceObject,
|
PDEVICE_OBJECT FunctionalDeviceObject,
|
||||||
|
@ -206,6 +207,7 @@ CUSBHardwareDevice::Initialize(
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::SetCommandRegister(PEHCI_USBCMD_CONTENT UsbCmd)
|
CUSBHardwareDevice::SetCommandRegister(PEHCI_USBCMD_CONTENT UsbCmd)
|
||||||
{
|
{
|
||||||
PULONG Register;
|
PULONG Register;
|
||||||
|
@ -214,6 +216,7 @@ CUSBHardwareDevice::SetCommandRegister(PEHCI_USBCMD_CONTENT UsbCmd)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::GetCommandRegister(PEHCI_USBCMD_CONTENT UsbCmd)
|
CUSBHardwareDevice::GetCommandRegister(PEHCI_USBCMD_CONTENT UsbCmd)
|
||||||
{
|
{
|
||||||
PULONG Register;
|
PULONG Register;
|
||||||
|
@ -277,6 +280,7 @@ CUSBHardwareDevice::PrintCapabilities()
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::PnpStart(
|
CUSBHardwareDevice::PnpStart(
|
||||||
PCM_RESOURCE_LIST RawResources,
|
PCM_RESOURCE_LIST RawResources,
|
||||||
PCM_RESOURCE_LIST TranslatedResources)
|
PCM_RESOURCE_LIST TranslatedResources)
|
||||||
|
@ -483,6 +487,7 @@ CUSBHardwareDevice::PnpStart(
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::PnpStop(void)
|
CUSBHardwareDevice::PnpStop(void)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED
|
UNIMPLEMENTED
|
||||||
|
@ -490,6 +495,7 @@ CUSBHardwareDevice::PnpStop(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::GetDeviceDetails(
|
CUSBHardwareDevice::GetDeviceDetails(
|
||||||
OUT OPTIONAL PUSHORT VendorId,
|
OUT OPTIONAL PUSHORT VendorId,
|
||||||
OUT OPTIONAL PUSHORT DeviceId,
|
OUT OPTIONAL PUSHORT DeviceId,
|
||||||
|
@ -508,7 +514,9 @@ CUSBHardwareDevice::GetDeviceDetails(
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS CUSBHardwareDevice::GetDMA(
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
|
CUSBHardwareDevice::GetDMA(
|
||||||
OUT struct IDMAMemoryManager **OutDMAMemoryManager)
|
OUT struct IDMAMemoryManager **OutDMAMemoryManager)
|
||||||
{
|
{
|
||||||
if (!m_MemoryManager)
|
if (!m_MemoryManager)
|
||||||
|
@ -518,6 +526,7 @@ NTSTATUS CUSBHardwareDevice::GetDMA(
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::GetUSBQueue(
|
CUSBHardwareDevice::GetUSBQueue(
|
||||||
OUT struct IUSBQueue **OutUsbQueue)
|
OUT struct IUSBQueue **OutUsbQueue)
|
||||||
{
|
{
|
||||||
|
@ -872,6 +881,7 @@ CUSBHardwareDevice::ResetController(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::ResetPort(
|
CUSBHardwareDevice::ResetPort(
|
||||||
IN ULONG PortIndex)
|
IN ULONG PortIndex)
|
||||||
{
|
{
|
||||||
|
@ -913,6 +923,7 @@ CUSBHardwareDevice::ResetPort(
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::GetPortStatus(
|
CUSBHardwareDevice::GetPortStatus(
|
||||||
ULONG PortId,
|
ULONG PortId,
|
||||||
OUT USHORT *PortStatus,
|
OUT USHORT *PortStatus,
|
||||||
|
@ -987,6 +998,7 @@ CUSBHardwareDevice::GetPortStatus(
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::ClearPortStatus(
|
CUSBHardwareDevice::ClearPortStatus(
|
||||||
ULONG PortId,
|
ULONG PortId,
|
||||||
ULONG Status)
|
ULONG Status)
|
||||||
|
@ -1096,6 +1108,7 @@ CUSBHardwareDevice::ClearPortStatus(
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::SetPortFeature(
|
CUSBHardwareDevice::SetPortFeature(
|
||||||
ULONG PortId,
|
ULONG PortId,
|
||||||
ULONG Feature)
|
ULONG Feature)
|
||||||
|
@ -1170,6 +1183,7 @@ CUSBHardwareDevice::SetPortFeature(
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::SetAsyncListRegister(
|
CUSBHardwareDevice::SetAsyncListRegister(
|
||||||
ULONG PhysicalAddress)
|
ULONG PhysicalAddress)
|
||||||
{
|
{
|
||||||
|
@ -1177,6 +1191,7 @@ CUSBHardwareDevice::SetAsyncListRegister(
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::SetPeriodicListRegister(
|
CUSBHardwareDevice::SetPeriodicListRegister(
|
||||||
ULONG PhysicalAddress)
|
ULONG PhysicalAddress)
|
||||||
{
|
{
|
||||||
|
@ -1187,18 +1202,23 @@ CUSBHardwareDevice::SetPeriodicListRegister(
|
||||||
}
|
}
|
||||||
|
|
||||||
struct _QUEUE_HEAD *
|
struct _QUEUE_HEAD *
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::GetAsyncListQueueHead()
|
CUSBHardwareDevice::GetAsyncListQueueHead()
|
||||||
{
|
{
|
||||||
return AsyncQueueHead;
|
return AsyncQueueHead;
|
||||||
}
|
}
|
||||||
|
|
||||||
ULONG CUSBHardwareDevice::GetPeriodicListRegister()
|
ULONG
|
||||||
|
STDMETHODCALLTYPE
|
||||||
|
CUSBHardwareDevice::GetPeriodicListRegister()
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED
|
UNIMPLEMENTED
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID CUSBHardwareDevice::SetStatusChangeEndpointCallBack(
|
VOID
|
||||||
|
STDMETHODCALLTYPE
|
||||||
|
CUSBHardwareDevice::SetStatusChangeEndpointCallBack(
|
||||||
PVOID CallBack,
|
PVOID CallBack,
|
||||||
PVOID Context)
|
PVOID Context)
|
||||||
{
|
{
|
||||||
|
@ -1437,6 +1457,7 @@ StatusChangeWorkItemRoutine(
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
CreateUSBHardware(
|
CreateUSBHardware(
|
||||||
PUSBHARDWAREDEVICE *OutHardware)
|
PUSBHARDWAREDEVICE *OutHardware)
|
||||||
{
|
{
|
||||||
|
|
|
@ -96,6 +96,7 @@ CUSBQueue::QueryInterface(
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBQueue::Initialize(
|
CUSBQueue::Initialize(
|
||||||
IN PUSBHARDWAREDEVICE Hardware,
|
IN PUSBHARDWAREDEVICE Hardware,
|
||||||
IN PDMA_ADAPTER AdapterObject,
|
IN PDMA_ADAPTER AdapterObject,
|
||||||
|
@ -276,6 +277,7 @@ CUSBQueue::InitializeSyncSchedule(
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBQueue::AddUSBRequest(
|
CUSBQueue::AddUSBRequest(
|
||||||
IUSBRequest * Req)
|
IUSBRequest * Req)
|
||||||
{
|
{
|
||||||
|
@ -367,6 +369,7 @@ CUSBQueue::AddUSBRequest(
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBQueue::CreateUSBRequest(
|
CUSBQueue::CreateUSBRequest(
|
||||||
IUSBRequest **OutRequest)
|
IUSBRequest **OutRequest)
|
||||||
{
|
{
|
||||||
|
@ -657,6 +660,7 @@ CUSBQueue::ProcessAsyncList(
|
||||||
|
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBQueue::InterruptCallback(
|
CUSBQueue::InterruptCallback(
|
||||||
IN NTSTATUS Status,
|
IN NTSTATUS Status,
|
||||||
OUT PULONG ShouldRingDoorBell)
|
OUT PULONG ShouldRingDoorBell)
|
||||||
|
@ -826,6 +830,7 @@ CUSBQueue::QueueHeadCleanup(
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBQueue::CompleteAsyncRequests()
|
CUSBQueue::CompleteAsyncRequests()
|
||||||
{
|
{
|
||||||
KIRQL OldLevel;
|
KIRQL OldLevel;
|
||||||
|
@ -900,6 +905,7 @@ CUSBQueue::CompleteAsyncRequests()
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBQueue::AbortDevicePipe(
|
CUSBQueue::AbortDevicePipe(
|
||||||
IN UCHAR DeviceAddress,
|
IN UCHAR DeviceAddress,
|
||||||
IN PUSB_ENDPOINT_DESCRIPTOR EndpointDescriptor)
|
IN PUSB_ENDPOINT_DESCRIPTOR EndpointDescriptor)
|
||||||
|
@ -984,6 +990,7 @@ CUSBQueue::AbortDevicePipe(
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
CreateUSBQueue(
|
CreateUSBQueue(
|
||||||
PUSBQUEUE *OutUsbQueue)
|
PUSBQUEUE *OutUsbQueue)
|
||||||
{
|
{
|
||||||
|
|
|
@ -145,6 +145,7 @@ CUSBRequest::QueryInterface(
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBRequest::InitializeWithSetupPacket(
|
CUSBRequest::InitializeWithSetupPacket(
|
||||||
IN PDMAMEMORYMANAGER DmaManager,
|
IN PDMAMEMORYMANAGER DmaManager,
|
||||||
IN PUSB_DEFAULT_PIPE_SETUP_PACKET SetupPacket,
|
IN PUSB_DEFAULT_PIPE_SETUP_PACKET SetupPacket,
|
||||||
|
@ -199,6 +200,7 @@ CUSBRequest::InitializeWithSetupPacket(
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBRequest::InitializeWithIrp(
|
CUSBRequest::InitializeWithIrp(
|
||||||
IN PDMAMEMORYMANAGER DmaManager,
|
IN PDMAMEMORYMANAGER DmaManager,
|
||||||
IN PUSBDEVICE Device,
|
IN PUSBDEVICE Device,
|
||||||
|
@ -330,6 +332,7 @@ CUSBRequest::InitializeWithIrp(
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
VOID
|
VOID
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBRequest::CompletionCallback(
|
CUSBRequest::CompletionCallback(
|
||||||
IN NTSTATUS NtStatusCode,
|
IN NTSTATUS NtStatusCode,
|
||||||
IN ULONG UrbStatusCode,
|
IN ULONG UrbStatusCode,
|
||||||
|
@ -419,6 +422,7 @@ CUSBRequest::CompletionCallback(
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBRequest::GetQueueHead(
|
CUSBRequest::GetQueueHead(
|
||||||
struct _QUEUE_HEAD ** OutHead)
|
struct _QUEUE_HEAD ** OutHead)
|
||||||
{
|
{
|
||||||
|
@ -476,6 +480,7 @@ CUSBRequest::GetQueueHead(
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBRequest::IsRequestComplete()
|
CUSBRequest::IsRequestComplete()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
|
@ -497,6 +502,7 @@ CUSBRequest::IsRequestComplete()
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
ULONG
|
ULONG
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBRequest::GetTransferType()
|
CUSBRequest::GetTransferType()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
|
@ -1283,6 +1289,7 @@ CUSBRequest::CreateQueueHead(
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
UCHAR
|
UCHAR
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBRequest::GetDeviceAddress()
|
CUSBRequest::GetDeviceAddress()
|
||||||
{
|
{
|
||||||
PIO_STACK_LOCATION IoStack;
|
PIO_STACK_LOCATION IoStack;
|
||||||
|
@ -1523,6 +1530,7 @@ CUSBRequest::BuildSetupPacketFromURB()
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
VOID
|
VOID
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBRequest::GetResultStatus(
|
CUSBRequest::GetResultStatus(
|
||||||
OUT OPTIONAL NTSTATUS * NtStatusCode,
|
OUT OPTIONAL NTSTATUS * NtStatusCode,
|
||||||
OUT OPTIONAL PULONG UrbStatusCode)
|
OUT OPTIONAL PULONG UrbStatusCode)
|
||||||
|
@ -1557,6 +1565,7 @@ CUSBRequest::GetResultStatus(
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------------------
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBRequest::ShouldReleaseRequestAfterCompletion()
|
CUSBRequest::ShouldReleaseRequestAfterCompletion()
|
||||||
{
|
{
|
||||||
if (m_Irp)
|
if (m_Irp)
|
||||||
|
@ -1577,6 +1586,7 @@ CUSBRequest::ShouldReleaseRequestAfterCompletion()
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------------------
|
||||||
VOID
|
VOID
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBRequest::FreeQueueHead(
|
CUSBRequest::FreeQueueHead(
|
||||||
IN struct _QUEUE_HEAD * QueueHead)
|
IN struct _QUEUE_HEAD * QueueHead)
|
||||||
{
|
{
|
||||||
|
@ -1639,6 +1649,7 @@ CUSBRequest::FreeQueueHead(
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------------------
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBRequest::IsQueueHeadComplete(
|
CUSBRequest::IsQueueHeadComplete(
|
||||||
struct _QUEUE_HEAD * QueueHead)
|
struct _QUEUE_HEAD * QueueHead)
|
||||||
{
|
{
|
||||||
|
@ -1733,6 +1744,7 @@ CUSBRequest::InternalCalculateTransferLength()
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------------------
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
InternalCreateUSBRequest(
|
InternalCreateUSBRequest(
|
||||||
PUSBREQUEST *OutRequest)
|
PUSBREQUEST *OutRequest)
|
||||||
{
|
{
|
||||||
|
|
|
@ -48,16 +48,16 @@ extern "C"
|
||||||
//
|
//
|
||||||
// hardware.cpp
|
// hardware.cpp
|
||||||
//
|
//
|
||||||
NTSTATUS CreateUSBHardware(PUSBHARDWAREDEVICE *OutHardware);
|
NTSTATUS NTAPI CreateUSBHardware(PUSBHARDWAREDEVICE *OutHardware);
|
||||||
|
|
||||||
//
|
//
|
||||||
// usb_queue.cpp
|
// usb_queue.cpp
|
||||||
//
|
//
|
||||||
NTSTATUS CreateUSBQueue(PUSBQUEUE *OutUsbQueue);
|
NTSTATUS NTAPI CreateUSBQueue(PUSBQUEUE *OutUsbQueue);
|
||||||
|
|
||||||
//
|
//
|
||||||
// usb_request.cpp
|
// usb_request.cpp
|
||||||
//
|
//
|
||||||
NTSTATUS InternalCreateUSBRequest(PUSBREQUEST *OutRequest);
|
NTSTATUS NTAPI InternalCreateUSBRequest(PUSBREQUEST *OutRequest);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue