https://git.reactos.org/?p=reactos.git;a=commitdiff;h=56cc2ca11592fd2846c1da...
commit 56cc2ca11592fd2846c1daa6ca7414aa7bc71f8a Author: Amine Khaldi amine.khaldi@reactos.org AuthorDate: Tue Oct 31 15:44:39 2017 +0100
[SERIAL] Fix Serial{Get,Clear}PerfStats() to become proper PKSYNCHRONIZE_ROUTINE routines and get rid of the related casts. Brought to you by Thomas Faber. CORE-11799 (#94) --- drivers/serial/serial/devctrl.c | 57 +++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 28 deletions(-)
diff --git a/drivers/serial/serial/devctrl.c b/drivers/serial/serial/devctrl.c index 189f97eba2..74b81395c3 100644 --- a/drivers/serial/serial/devctrl.c +++ b/drivers/serial/serial/devctrl.c @@ -158,36 +158,37 @@ SerialSetLineControl( return Status; }
-static BOOLEAN -SerialClearPerfStats( - IN PSERIAL_DEVICE_EXTENSION DeviceExtension) +static +BOOLEAN +NTAPI +SerialClearPerfStats(IN PVOID SynchronizeContext) { - ASSERT(DeviceExtension); - - RtlZeroMemory(&DeviceExtension->SerialPerfStats, sizeof(SERIALPERF_STATS)); - DeviceExtension->BreakInterruptErrorCount = 0; - return TRUE; + PSERIAL_DEVICE_EXTENSION DeviceExtension = SynchronizeContext; + ASSERT(DeviceExtension); + RtlZeroMemory(&DeviceExtension->SerialPerfStats, sizeof(SERIALPERF_STATS)); + DeviceExtension->BreakInterruptErrorCount = 0; + return TRUE; }
-static BOOLEAN -SerialGetPerfStats(IN PIRP pIrp) +static +BOOLEAN +NTAPI +SerialGetPerfStats(IN PVOID SynchronizeContext) { - PSERIAL_DEVICE_EXTENSION pDeviceExtension; - - ASSERT(pIrp); - pDeviceExtension = (PSERIAL_DEVICE_EXTENSION) - IoGetCurrentIrpStackLocation(pIrp)->DeviceObject->DeviceExtension; - - /* - * we assume buffer is big enough to hold SerialPerfStats structure - * caller must verify this - */ - RtlCopyMemory( - pIrp->AssociatedIrp.SystemBuffer, - &pDeviceExtension->SerialPerfStats, - sizeof(SERIALPERF_STATS) - ); - return TRUE; + PIRP pIrp = SynchronizeContext; + PSERIAL_DEVICE_EXTENSION pDeviceExtension; + + ASSERT(pIrp); + pDeviceExtension = IoGetCurrentIrpStackLocation(pIrp)->DeviceObject->DeviceExtension; + + /* + * we assume buffer is big enough to hold SerialPerfStats structure + * caller must verify this + */ + RtlCopyMemory(pIrp->AssociatedIrp.SystemBuffer, + &pDeviceExtension->SerialPerfStats, + sizeof(SERIALPERF_STATS)); + return TRUE; }
static NTSTATUS @@ -309,7 +310,7 @@ SerialDeviceControl( TRACE_(SERIAL, "IOCTL_SERIAL_CLEAR_STATS\n"); KeSynchronizeExecution( DeviceExtension->Interrupt, - (PKSYNCHRONIZE_ROUTINE)SerialClearPerfStats, + SerialClearPerfStats, DeviceExtension); Status = STATUS_SUCCESS; break; @@ -519,7 +520,7 @@ SerialDeviceControl( else { KeSynchronizeExecution(DeviceExtension->Interrupt, - (PKSYNCHRONIZE_ROUTINE)SerialGetPerfStats, Irp); + SerialGetPerfStats, Irp); Information = sizeof(SERIALPERF_STATS); Status = STATUS_SUCCESS; }