https://git.reactos.org/?p=reactos.git;a=commitdiff;h=c188e387e3b80ce4a776d7...
commit c188e387e3b80ce4a776d74375d2649f8ffe8d7a Author: Thomas Faber thomas.faber@reactos.org AuthorDate: Sat Sep 1 18:23:25 2018 +0200 Commit: Thomas Faber thomas.faber@reactos.org CommitDate: Sat Sep 1 18:23:25 2018 +0200
[USBOHCI_NEW] Avoid storing pointers as ULONG and physical addresses as pointers. --- drivers/usb/usbohci_new/usbohci.c | 72 +++++++++++++++++++-------------------- drivers/usb/usbohci_new/usbohci.h | 6 ++-- 2 files changed, 39 insertions(+), 39 deletions(-)
diff --git a/drivers/usb/usbohci_new/usbohci.c b/drivers/usb/usbohci_new/usbohci.c index ef123288b2..e4bed31d6d 100644 --- a/drivers/usb/usbohci_new/usbohci.c +++ b/drivers/usb/usbohci_new/usbohci.c @@ -239,7 +239,7 @@ OHCI_InitializeTDs(IN POHCI_ENDPOINT OhciEndpoint,
TdVA = OhciEndpoint->FirstTD;
- TdPA = (ULONG)EndpointProperties->BufferPA + sizeof(OHCI_HCD_ED); + TdPA = EndpointProperties->BufferPA + sizeof(OHCI_HCD_ED);
for (ix = 0; ix < TdCount; ix++) { @@ -673,9 +673,9 @@ OHCI_StartController(IN PVOID ohciExtension, }
OhciExtension->HcResourcesVA = (POHCI_HC_RESOURCES)Resources->StartVA; - OhciExtension->HcResourcesPA = (POHCI_HC_RESOURCES)Resources->StartPA; + OhciExtension->HcResourcesPA = Resources->StartPA;
- DPRINT_OHCI("OHCI_StartController: HcResourcesVA - %p, HcResourcesPA - %p\n", + DPRINT_OHCI("OHCI_StartController: HcResourcesVA - %p, HcResourcesPA - %lx\n", OhciExtension->HcResourcesVA, OhciExtension->HcResourcesPA);
@@ -685,7 +685,7 @@ OHCI_StartController(IN PVOID ohciExtension, for (ix = 0; ix < INTERRUPT_ENDPOINTs; ix++) { IntED = &OhciExtension->HcResourcesVA->InterrruptHeadED[ix]; - IntEdPA = (ULONG_PTR)&OhciExtension->HcResourcesPA->InterrruptHeadED[ix]; + IntEdPA = OhciExtension->HcResourcesPA + FIELD_OFFSET(OHCI_HC_RESOURCES, InterrruptHeadED[ix]);
if (ix == (ENDPOINT_INTERRUPT_1ms - 1)) { @@ -819,7 +819,7 @@ OHCI_StartController(IN PVOID ohciExtension,
/* Setup HcHCCA register */ WRITE_REGISTER_ULONG(&OperationalRegs->HcHCCA, - (ULONG)&OhciExtension->HcResourcesPA->HcHCCA); + OhciExtension->HcResourcesPA + FIELD_OFFSET(OHCI_HC_RESOURCES, HcHCCA));
/* Setup HcInterruptEnable register */ Interrupts.AsULONG = 0; @@ -1249,7 +1249,7 @@ OHCI_RemainTDs(IN POHCI_EXTENSION OhciExtension, DPRINT_OHCI("OHCI_RemainTDs: ... \n");
MaxTDs = OhciEndpoint->MaxTransferDescriptors; - TD = (POHCI_HCD_TD)OhciEndpoint->FirstTD; + TD = OhciEndpoint->FirstTD;
RemainTDs = 0;
@@ -1273,7 +1273,7 @@ OHCI_ControlTransfer(IN POHCI_EXTENSION OhciExtension, IN PUSBPORT_SCATTER_GATHER_LIST SGList) { POHCI_HCD_TD FirstTD; - POHCI_HCD_TD FirstTdPA; + ULONG FirstTdPA; POHCI_HCD_TD TD; POHCI_HCD_TD TD2; POHCI_HCD_TD PrevTD; @@ -1302,7 +1302,7 @@ OHCI_ControlTransfer(IN POHCI_EXTENSION OhciExtension,
FirstTD->Flags |= OHCI_HCD_TD_FLAG_PROCESSED; FirstTD->NextHcdTD = 0; - FirstTD->OhciTransfer = (ULONG)OhciTransfer; + FirstTD->OhciTransfer = OhciTransfer;
FirstTD->HwTD.Padded[0] = 0; FirstTD->HwTD.Padded[1] = 0; @@ -1313,12 +1313,12 @@ OHCI_ControlTransfer(IN POHCI_EXTENSION OhciExtension, &TransferParameters->SetupPacket, sizeof(FirstTD->HwTD.SetupPacket));
- FirstTdPA = (POHCI_HCD_TD)FirstTD->PhysicalAddress; + FirstTdPA = FirstTD->PhysicalAddress;
- FirstTD->HwTD.gTD.CurrentBuffer = (ULONG)&FirstTdPA->HwTD.SetupPacket; + FirstTD->HwTD.gTD.CurrentBuffer = FirstTdPA + FIELD_OFFSET(OHCI_HCD_TD, HwTD.SetupPacket);
- BufferEnd = (ULONG_PTR)&FirstTdPA->HwTD.SetupPacket + - sizeof(USB_DEFAULT_PIPE_SETUP_PACKET) - 1; + BufferEnd = FirstTdPA + FIELD_OFFSET(OHCI_HCD_TD, HwTD.SetupPacket) + + sizeof(USB_DEFAULT_PIPE_SETUP_PACKET) - 1;
FirstTD->HwTD.gTD.BufferEnd = BufferEnd;
@@ -1336,7 +1336,7 @@ OHCI_ControlTransfer(IN POHCI_EXTENSION OhciExtension,
TD2->Flags |= OHCI_HCD_TD_FLAG_PROCESSED; TD2->NextHcdTD = 0; - TD2->OhciTransfer = (ULONG)OhciTransfer; + TD2->OhciTransfer = OhciTransfer;
RtlZeroMemory(&TD2->HwTD.SetupPacket, sizeof(TD2->HwTD.SetupPacket)); @@ -1348,7 +1348,7 @@ OHCI_ControlTransfer(IN POHCI_EXTENSION OhciExtension, TD = TD2;
PrevTD->HwTD.gTD.NextTD = TD2->PhysicalAddress; - PrevTD->NextHcdTD = (ULONG)TD2; + PrevTD->NextHcdTD = TD2;
MaxPacketSize = OhciEndpoint->EndpointProperties.TotalMaxPacketSize;
@@ -1387,7 +1387,7 @@ OHCI_ControlTransfer(IN POHCI_EXTENSION OhciExtension, TD->HwTD.gTD.Control.DelayInterrupt = OHCI_TD_INTERRUPT_NONE;
TD->NextHcdTD = 0; - TD->OhciTransfer = (ULONG)OhciTransfer; + TD->OhciTransfer = OhciTransfer;
TD->HwTD.gTD.CurrentBuffer = 0; TD->HwTD.gTD.BufferEnd = 0; @@ -1399,7 +1399,7 @@ OHCI_ControlTransfer(IN POHCI_EXTENSION OhciExtension, TD->HwTD.Padded[1] = 0;
PrevTD->HwTD.gTD.NextTD = TD->PhysicalAddress; - PrevTD->NextHcdTD = (ULONG)TD; + PrevTD->NextHcdTD = TD; }
if (TransferParameters->TransferFlags & USBD_SHORT_TRANSFER_OK) @@ -1435,7 +1435,7 @@ OHCI_ControlTransfer(IN POHCI_EXTENSION OhciExtension, NextTD = OHCI_AllocateTD(OhciExtension, OhciEndpoint);
TD->HwTD.gTD.NextTD = NextTD->PhysicalAddress; - TD->NextHcdTD = (ULONG)NextTD; + TD->NextHcdTD = NextTD;
NextTD->NextHcdTD = 0; NextTD->HwTD.gTD.NextTD = 0; @@ -1503,7 +1503,7 @@ OHCI_BulkOrInterruptTransfer(IN POHCI_EXTENSION OhciExtension, TD->HwTD.Padded[1] = 0;
TD->Flags |= OHCI_HCD_TD_FLAG_PROCESSED; - TD->OhciTransfer = (ULONG)OhciTransfer; + TD->OhciTransfer = OhciTransfer; TD->NextHcdTD = 0;
if (TransferParameters->TransferBufferLength) @@ -1533,7 +1533,7 @@ OHCI_BulkOrInterruptTransfer(IN POHCI_EXTENSION OhciExtension, OhciTransfer->PendingTDs++;
PrevTD->HwTD.gTD.NextTD = TD->PhysicalAddress; - PrevTD->NextHcdTD = (ULONG)TD; + PrevTD->NextHcdTD = TD; } while (TransferedLen < TransferParameters->TransferBufferLength);
@@ -1545,7 +1545,7 @@ OHCI_BulkOrInterruptTransfer(IN POHCI_EXTENSION OhciExtension,
PrevTD->HwTD.gTD.Control.DelayInterrupt = OHCI_TD_INTERRUPT_IMMEDIATE; PrevTD->HwTD.gTD.NextTD = TD->PhysicalAddress; - PrevTD->NextHcdTD = (ULONG)TD; + PrevTD->NextHcdTD = TD;
TD->HwTD.gTD.NextTD = 0; TD->NextHcdTD = 0; @@ -1630,7 +1630,7 @@ OHCI_ProcessDoneTD(IN POHCI_EXTENSION OhciExtension,
DPRINT_OHCI("OHCI_ProcessDoneTD: ... \n");
- OhciTransfer = (POHCI_TRANSFER)TD->OhciTransfer; + OhciTransfer = TD->OhciTransfer; OhciEndpoint = OhciTransfer->OhciEndpoint;
OhciTransfer->PendingTDs--; @@ -1735,7 +1735,7 @@ OHCI_AbortTransfer(IN PVOID ohciExtension, OhciExtension, OhciEndpoint);
- if (NextTD->OhciTransfer == (ULONG)OhciTransfer) + if (NextTD->OhciTransfer == OhciTransfer) { LastTD = OhciTransfer->NextTD;
@@ -1748,7 +1748,7 @@ OHCI_AbortTransfer(IN PVOID ohciExtension, { TD = &OhciEndpoint->FirstTD[ix];
- if (TD->OhciTransfer == (ULONG)OhciTransfer) + if (TD->OhciTransfer == OhciTransfer) { if (IsIsoEndpoint) OHCI_ProcessDoneIsoTD(OhciExtension, TD, FALSE); @@ -1768,10 +1768,10 @@ OHCI_AbortTransfer(IN PVOID ohciExtension,
do { - if (TD->OhciTransfer == (ULONG)ohciTransfer) + if (TD->OhciTransfer == ohciTransfer) { PrevTD = TD; - TD = (POHCI_HCD_TD)TD->NextHcdTD; + TD = TD->NextHcdTD;
if (PrevTD == OhciEndpoint->HcdHeadP) OhciEndpoint->HcdHeadP = TD; @@ -1785,7 +1785,7 @@ OHCI_AbortTransfer(IN PVOID ohciExtension, } else { - TD = (POHCI_HCD_TD)TD->NextHcdTD; + TD = TD->NextHcdTD; } } while (TD != NextTD); @@ -1799,7 +1799,7 @@ OHCI_AbortTransfer(IN PVOID ohciExtension,
while (TD != OhciEndpoint->HcdTailP) { - if (TD->OhciTransfer == (ULONG)OhciTransfer) + if (TD->OhciTransfer == OhciTransfer) { td = TD; break; @@ -1807,7 +1807,7 @@ OHCI_AbortTransfer(IN PVOID ohciExtension,
LastTD = TD;
- TD = (POHCI_HCD_TD)TD->NextHcdTD; + TD = TD->NextHcdTD; }
TD = td; @@ -1818,19 +1818,19 @@ OHCI_AbortTransfer(IN PVOID ohciExtension, break;
PrevTD = TD; - TD = (POHCI_HCD_TD)TD->NextHcdTD; + TD = TD->NextHcdTD;
if (IsIsoEndpoint) OHCI_ProcessDoneIsoTD(OhciExtension, PrevTD, FALSE); else OHCI_ProcessDoneTD(OhciExtension, PrevTD, FALSE); } - while (TD->OhciTransfer == (ULONG)OhciTransfer); + while (TD->OhciTransfer == OhciTransfer);
- TmpTransfer = (POHCI_TRANSFER)LastTD->OhciTransfer; + TmpTransfer = LastTD->OhciTransfer; TmpTransfer->NextTD = TD;
- LastTD->NextHcdTD = (ULONG)TD; + LastTD->NextHcdTD = TD; LastTD->HwTD.gTD.NextTD = TD->PhysicalAddress; }
@@ -1991,7 +1991,7 @@ OHCI_PollAsyncEndpoint(IN POHCI_EXTENSION OhciExtension, IsResetOnHalt = (ED->Flags & OHCI_HCD_ED_FLAG_RESET_ON_HALT) != 0; DPRINT1("PollAsyncEndpoint: IsResetOnHalt %x\n", IsResetOnHalt);
- for (TD = OhciEndpoint->HcdHeadP; ; TD = (POHCI_HCD_TD)TD->NextHcdTD) + for (TD = OhciEndpoint->HcdHeadP; ; TD = TD->NextHcdTD) { if (!TD) { @@ -2005,7 +2005,7 @@ OHCI_PollAsyncEndpoint(IN POHCI_EXTENSION OhciExtension, goto HandleDoneList; }
- OhciTransfer = (POHCI_TRANSFER)TD->OhciTransfer; + OhciTransfer = TD->OhciTransfer; ConditionCode = TD->HwTD.gTD.Control.ConditionCode;
DPRINT("TD - %p, ConditionCode - %X\n", TD, ConditionCode); @@ -2056,7 +2056,7 @@ OHCI_PollAsyncEndpoint(IN POHCI_EXTENSION OhciExtension,
do { - transfer = (POHCI_TRANSFER)transfer->NextTD->OhciTransfer; + transfer = transfer->NextTD->OhciTransfer; NextTD = transfer->NextTD; } while (transfer && TransferNumber == @@ -2111,7 +2111,7 @@ ProcessListTDs: OHCI_DumpHcdTD(TD); TD->Flags |= OHCI_HCD_TD_FLAG_DONE; InsertTailList(&OhciEndpoint->TDList, &TD->DoneLink); - TD = (POHCI_HCD_TD)TD->NextHcdTD; + TD = TD->NextHcdTD; }
HandleDoneList: diff --git a/drivers/usb/usbohci_new/usbohci.h b/drivers/usb/usbohci_new/usbohci.h index 8bf703e6a5..fffcb18b61 100644 --- a/drivers/usb/usbohci_new/usbohci.h +++ b/drivers/usb/usbohci_new/usbohci.h @@ -58,8 +58,8 @@ typedef struct _OHCI_HCD_TD { /* Software part */ ULONG PhysicalAddress; ULONG Flags; - ULONG OhciTransfer; - ULONG NextHcdTD; + POHCI_TRANSFER OhciTransfer; + struct _OHCI_HCD_TD *NextHcdTD; ULONG TransferLen; LIST_ENTRY DoneLink; ULONG Pad[1]; @@ -144,7 +144,7 @@ typedef struct _OHCI_EXTENSION { ULONG FrameHighPart; ULONG HcdFmNumber; POHCI_HC_RESOURCES HcResourcesVA; - POHCI_HC_RESOURCES HcResourcesPA; + ULONG HcResourcesPA; OHCI_STATIC_ED IntStaticED[63]; OHCI_STATIC_ED ControlStaticED; OHCI_STATIC_ED BulkStaticED;