[USBEHCI]

- Fix regressions caused by libusb

svn path=/trunk/; revision=55916
This commit is contained in:
Johannes Anderwald 2012-02-29 09:41:34 +00:00
parent 743a8996a2
commit ad333c1655
4 changed files with 47 additions and 7 deletions

View file

@ -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)
{ {

View file

@ -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)
{ {

View file

@ -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)
{ {

View file

@ -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