mirror of
https://github.com/reactos/reactos.git
synced 2025-08-04 03:46:38 +00:00
[USBPORT]
Patch by Vadim Galyant: - Move isochronous transfer functions to their own file - Fix return type of PUSBPORT_COMPLETE_TRANSFER - Improve some debug prints svn path=/trunk/; revision=75745
This commit is contained in:
parent
e8937c0896
commit
fae06a9723
6 changed files with 58 additions and 23 deletions
|
@ -7,6 +7,7 @@ list(APPEND SOURCE
|
||||||
endpoint.c
|
endpoint.c
|
||||||
iface.c
|
iface.c
|
||||||
ioctl.c
|
ioctl.c
|
||||||
|
iso.c
|
||||||
pnp.c
|
pnp.c
|
||||||
power.c
|
power.c
|
||||||
queue.c
|
queue.c
|
||||||
|
|
26
reactos/drivers/usb/usbport/iso.c
Normal file
26
reactos/drivers/usb/usbport/iso.c
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
#include "usbport.h"
|
||||||
|
|
||||||
|
#define NDEBUG
|
||||||
|
#include <debug.h>
|
||||||
|
|
||||||
|
USBD_STATUS
|
||||||
|
NTAPI
|
||||||
|
USBPORT_InitializeIsoTransfer(PDEVICE_OBJECT FdoDevice,
|
||||||
|
struct _URB_ISOCH_TRANSFER * Urb,
|
||||||
|
PUSBPORT_TRANSFER Transfer)
|
||||||
|
{
|
||||||
|
DPRINT1("USBPORT_InitializeIsoTransfer: UNIMPLEMENTED. FIXME.\n");
|
||||||
|
return USBD_STATUS_NOT_SUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
ULONG
|
||||||
|
NTAPI
|
||||||
|
USBPORT_CompleteIsoTransfer(IN PVOID MiniPortExtension,
|
||||||
|
IN PVOID MiniPortEndpoint,
|
||||||
|
IN PVOID TransferParameters,
|
||||||
|
IN ULONG TransferLength)
|
||||||
|
{
|
||||||
|
DPRINT1("USBPORT_CompleteIsoTransfer: UNIMPLEMENTED. FIXME.\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
|
@ -531,7 +531,7 @@ USBPORT_CancelActiveTransferIrp(IN PDEVICE_OBJECT DeviceObject,
|
||||||
PIRP irp;
|
PIRP irp;
|
||||||
KIRQL OldIrql;
|
KIRQL OldIrql;
|
||||||
|
|
||||||
DPRINT_CORE("USBPORT_CancelTransferIrp: Irp - %p\n", Irp);
|
DPRINT_CORE("USBPORT_CancelActiveTransferIrp: Irp - %p\n", Irp);
|
||||||
|
|
||||||
PdoExtension = DeviceObject->DeviceExtension;
|
PdoExtension = DeviceObject->DeviceExtension;
|
||||||
FdoDevice = PdoExtension->FdoDevice;
|
FdoDevice = PdoExtension->FdoDevice;
|
||||||
|
@ -549,7 +549,7 @@ USBPORT_CancelActiveTransferIrp(IN PDEVICE_OBJECT DeviceObject,
|
||||||
Transfer = Urb->UrbControlTransfer.hca.Reserved8[0];
|
Transfer = Urb->UrbControlTransfer.hca.Reserved8[0];
|
||||||
Endpoint = Transfer->Endpoint;
|
Endpoint = Transfer->Endpoint;
|
||||||
|
|
||||||
DPRINT_CORE("USBPORT_CancelTransferIrp: irp - %p, Urb - %p, Transfer - %p\n",
|
DPRINT_CORE("USBPORT_CancelActiveTransferIrp: irp - %p, Urb - %p, Transfer - %p\n",
|
||||||
irp,
|
irp,
|
||||||
Urb,
|
Urb,
|
||||||
Transfer);
|
Transfer);
|
||||||
|
|
|
@ -588,7 +588,7 @@ USBPORT_SoftInterruptDpc(IN PRKDPC Dpc,
|
||||||
PDEVICE_OBJECT FdoDevice;
|
PDEVICE_OBJECT FdoDevice;
|
||||||
PUSBPORT_DEVICE_EXTENSION FdoExtension;
|
PUSBPORT_DEVICE_EXTENSION FdoExtension;
|
||||||
|
|
||||||
DPRINT("USBPORT_SoftInterruptDpc: ... \n");
|
DPRINT_INT("USBPORT_SoftInterruptDpc: ... \n");
|
||||||
|
|
||||||
FdoDevice = DeferredContext;
|
FdoDevice = DeferredContext;
|
||||||
FdoExtension = FdoDevice->DeviceExtension;
|
FdoExtension = FdoDevice->DeviceExtension;
|
||||||
|
@ -606,7 +606,7 @@ USBPORT_SoftInterrupt(IN PDEVICE_OBJECT FdoDevice)
|
||||||
PUSBPORT_DEVICE_EXTENSION FdoExtension;
|
PUSBPORT_DEVICE_EXTENSION FdoExtension;
|
||||||
LARGE_INTEGER DueTime = {{0, 0}};
|
LARGE_INTEGER DueTime = {{0, 0}};
|
||||||
|
|
||||||
DPRINT("USBPORT_SoftInterrupt: ... \n");
|
DPRINT_INT("USBPORT_SoftInterrupt: ... \n");
|
||||||
|
|
||||||
FdoExtension = FdoDevice->DeviceExtension;
|
FdoExtension = FdoDevice->DeviceExtension;
|
||||||
|
|
||||||
|
@ -1079,7 +1079,8 @@ USBPORT_InterruptService(IN PKINTERRUPT Interrupt,
|
||||||
FdoExtension = FdoDevice->DeviceExtension;
|
FdoExtension = FdoDevice->DeviceExtension;
|
||||||
Packet = &FdoExtension->MiniPortInterface->Packet;
|
Packet = &FdoExtension->MiniPortInterface->Packet;
|
||||||
|
|
||||||
DPRINT_INT("USBPORT_InterruptService: FdoExtension->Flags - %lx\n",
|
DPRINT_INT("USBPORT_InterruptService: FdoExtension[%p]->Flags - %08X\n",
|
||||||
|
FdoExtension,
|
||||||
FdoExtension->Flags);
|
FdoExtension->Flags);
|
||||||
|
|
||||||
if (FdoExtension->Flags & USBPORT_FLAG_INTERRUPT_ENABLED &&
|
if (FdoExtension->Flags & USBPORT_FLAG_INTERRUPT_ENABLED &&
|
||||||
|
@ -1936,7 +1937,7 @@ USBPORT_Unload(IN PDRIVER_OBJECT DriverObject)
|
||||||
//MiniPortInterface->DriverUnload(DriverObject); // Call MiniPort _HCI_Unload
|
//MiniPortInterface->DriverUnload(DriverObject); // Call MiniPort _HCI_Unload
|
||||||
}
|
}
|
||||||
|
|
||||||
ULONG
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
USBPORT_MiniportCompleteTransfer(IN PVOID MiniPortExtension,
|
USBPORT_MiniportCompleteTransfer(IN PVOID MiniPortExtension,
|
||||||
IN PVOID MiniPortEndpoint,
|
IN PVOID MiniPortEndpoint,
|
||||||
|
@ -1969,18 +1970,7 @@ USBPORT_MiniportCompleteTransfer(IN PVOID MiniPortExtension,
|
||||||
&Transfer->TransferLink,
|
&Transfer->TransferLink,
|
||||||
&FdoExtension->DoneTransferSpinLock);
|
&FdoExtension->DoneTransferSpinLock);
|
||||||
|
|
||||||
return KeInsertQueueDpc(&FdoExtension->TransferFlushDpc, NULL, NULL);
|
KeInsertQueueDpc(&FdoExtension->TransferFlushDpc, NULL, NULL);
|
||||||
}
|
|
||||||
|
|
||||||
ULONG
|
|
||||||
NTAPI
|
|
||||||
USBPORT_CompleteIsoTransfer(IN PVOID MiniPortExtension,
|
|
||||||
IN PVOID MiniPortEndpoint,
|
|
||||||
IN PVOID TransferParameters,
|
|
||||||
IN ULONG TransferLength)
|
|
||||||
{
|
|
||||||
DPRINT1("USBPORT_CompleteIsoTransfer: UNIMPLEMENTED. FIXME.\n");
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
@ -2309,7 +2299,7 @@ USBPORT_MapTransfer(IN PDEVICE_OBJECT FdoDevice,
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
ElementLength = 0x1000 - (PhAddress.LowPart & 0xFFF);
|
ElementLength = PAGE_SIZE - (PhAddress.LowPart & (PAGE_SIZE - 1));
|
||||||
|
|
||||||
if (ElementLength > SgCurrentLength)
|
if (ElementLength > SgCurrentLength)
|
||||||
ElementLength = SgCurrentLength;
|
ElementLength = SgCurrentLength;
|
||||||
|
@ -2331,9 +2321,9 @@ USBPORT_MapTransfer(IN PDEVICE_OBJECT FdoDevice,
|
||||||
}
|
}
|
||||||
while (SgCurrentLength);
|
while (SgCurrentLength);
|
||||||
|
|
||||||
if ((PhAddr.LowPart == PhAddress.LowPart) &&
|
if (PhAddr.QuadPart == PhAddress.QuadPart)
|
||||||
(PhAddr.HighPart == PhAddress.HighPart))
|
|
||||||
{
|
{
|
||||||
|
DPRINT1("USBPORT_MapTransfer: PhAddr == PhAddress\n");
|
||||||
ASSERT(FALSE);
|
ASSERT(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -862,6 +862,22 @@ USBPORT_GetSymbolicName(
|
||||||
IN PDEVICE_OBJECT RootHubPdo,
|
IN PDEVICE_OBJECT RootHubPdo,
|
||||||
IN PUNICODE_STRING DestinationString);
|
IN PUNICODE_STRING DestinationString);
|
||||||
|
|
||||||
|
/* iso.c */
|
||||||
|
USBD_STATUS
|
||||||
|
NTAPI
|
||||||
|
USBPORT_InitializeIsoTransfer(
|
||||||
|
IN PDEVICE_OBJECT FdoDevice,
|
||||||
|
IN struct _URB_ISOCH_TRANSFER * Urb,
|
||||||
|
IN PUSBPORT_TRANSFER Transfer);
|
||||||
|
|
||||||
|
ULONG
|
||||||
|
NTAPI
|
||||||
|
USBPORT_CompleteIsoTransfer(
|
||||||
|
IN PVOID MiniPortExtension,
|
||||||
|
IN PVOID MiniPortEndpoint,
|
||||||
|
IN PVOID TransferParameters,
|
||||||
|
IN ULONG TransferLength);
|
||||||
|
|
||||||
/* pnp.c */
|
/* pnp.c */
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
|
|
|
@ -43,7 +43,7 @@
|
||||||
|
|
||||||
typedef struct _USBPORT_RESOURCES {
|
typedef struct _USBPORT_RESOURCES {
|
||||||
ULONG ResourcesTypes;
|
ULONG ResourcesTypes;
|
||||||
ULONG HcFlavor;
|
USB_CONTROLLER_FLAVOR HcFlavor;
|
||||||
ULONG InterruptVector;
|
ULONG InterruptVector;
|
||||||
KIRQL InterruptLevel;
|
KIRQL InterruptLevel;
|
||||||
UCHAR Padded1[3];
|
UCHAR Padded1[3];
|
||||||
|
@ -364,7 +364,7 @@ typedef ULONG
|
||||||
PVOID,
|
PVOID,
|
||||||
PVOID);
|
PVOID);
|
||||||
|
|
||||||
typedef ULONG
|
typedef VOID
|
||||||
(NTAPI *PUSBPORT_COMPLETE_TRANSFER)(
|
(NTAPI *PUSBPORT_COMPLETE_TRANSFER)(
|
||||||
PVOID,
|
PVOID,
|
||||||
PVOID,
|
PVOID,
|
||||||
|
@ -581,6 +581,8 @@ typedef struct _USBPORT_MINIPORT_INTERFACE {
|
||||||
C_ASSERT(sizeof(USBPORT_MINIPORT_INTERFACE) == 32 + 76 * sizeof(PVOID));
|
C_ASSERT(sizeof(USBPORT_MINIPORT_INTERFACE) == 32 + 76 * sizeof(PVOID));
|
||||||
|
|
||||||
#define USBPORT_TRANSFER_DIRECTION_OUT 1 // From host to device
|
#define USBPORT_TRANSFER_DIRECTION_OUT 1 // From host to device
|
||||||
|
#define USBPORT_MAX_DEVICE_ADDRESS 127
|
||||||
|
|
||||||
typedef struct _USBPORT_ENDPOINT_PROPERTIES {
|
typedef struct _USBPORT_ENDPOINT_PROPERTIES {
|
||||||
USHORT DeviceAddress;
|
USHORT DeviceAddress;
|
||||||
USHORT EndpointAddress;
|
USHORT EndpointAddress;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue