From 4c4fd151f2812d148dc4f439d9617cfe82d46753 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Fri, 4 Jan 2013 12:31:46 +0000 Subject: [PATCH] while (TRUE); (when something is unimplemented) ---> ASSERT(FALSE); // while (TRUE); (unless we deal with a 'noreturn' function), and in some cases, return an adequate value. In some places however, I add an ASSERT(FALSE); before keeping the while (TRUE); in critical regions. (Only x86, as well as in r58110). More ASSERTS (in debug mode) or BSODs may appear, instead of having hung threads. Part 1-bis/2 svn path=/trunk/; revision=58111 --- reactos/lib/cmlib/hivecell.c | 2 +- reactos/ntoskrnl/cache/cachesub.c | 2 +- reactos/ntoskrnl/cache/copysup.c | 8 +++---- reactos/ntoskrnl/cache/fssup.c | 2 +- reactos/ntoskrnl/cache/logsup.c | 8 +++---- reactos/ntoskrnl/include/internal/i386/ke.h | 4 ++-- reactos/ntoskrnl/io/iomgr/irp.c | 5 +++-- reactos/ntoskrnl/io/pnpmgr/pnpmgr.c | 2 +- reactos/ntoskrnl/kd64/amd64/kdx64.c | 8 +++---- reactos/ntoskrnl/kd64/arm/kdarm.c | 24 ++++++++++----------- reactos/ntoskrnl/ke/bug.c | 1 + reactos/ntoskrnl/ke/dpc.c | 1 + reactos/ntoskrnl/ke/i386/context.c | 3 ++- reactos/ntoskrnl/ke/i386/traphdlr.c | 13 +++++++++-- reactos/ntoskrnl/po/povolume.c | 4 +++- 15 files changed, 51 insertions(+), 36 deletions(-) diff --git a/reactos/lib/cmlib/hivecell.c b/reactos/lib/cmlib/hivecell.c index c3e3dbea41b..3c82b450b9d 100644 --- a/reactos/lib/cmlib/hivecell.c +++ b/reactos/lib/cmlib/hivecell.c @@ -549,7 +549,7 @@ HvTrackCellRef(PHV_TRACK_CELL_REF CellRef, /* FIXME: TODO */ DPRINT1("ERROR: Too many references\n"); - while (TRUE); + ASSERT(FALSE); // while (TRUE); return FALSE; } diff --git a/reactos/ntoskrnl/cache/cachesub.c b/reactos/ntoskrnl/cache/cachesub.c index f9a949d69d0..0431a5666f6 100644 --- a/reactos/ntoskrnl/cache/cachesub.c +++ b/reactos/ntoskrnl/cache/cachesub.c @@ -132,7 +132,7 @@ CcGetFlushedValidData(IN PSECTION_OBJECT_POINTERS SectionObjectPointer, { LARGE_INTEGER Result = {{0}}; UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); return Result; } diff --git a/reactos/ntoskrnl/cache/copysup.c b/reactos/ntoskrnl/cache/copysup.c index eb344ee50b5..be2af04c983 100644 --- a/reactos/ntoskrnl/cache/copysup.c +++ b/reactos/ntoskrnl/cache/copysup.c @@ -122,7 +122,7 @@ CcFastCopyRead(IN PFILE_OBJECT FileObject, OUT PIO_STATUS_BLOCK IoStatus) { UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); } BOOLEAN @@ -209,7 +209,7 @@ CcFastCopyWrite(IN PFILE_OBJECT FileObject, IN PVOID Buffer) { UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); } BOOLEAN @@ -220,7 +220,7 @@ CcCanIWrite(IN PFILE_OBJECT FileObject, IN UCHAR Retrying) { UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); return FALSE; } @@ -234,7 +234,7 @@ CcDeferWrite(IN PFILE_OBJECT FileObject, IN BOOLEAN Retrying) { UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); } /* EOF */ diff --git a/reactos/ntoskrnl/cache/fssup.c b/reactos/ntoskrnl/cache/fssup.c index 4b4bc15cf23..f816100dfa8 100644 --- a/reactos/ntoskrnl/cache/fssup.c +++ b/reactos/ntoskrnl/cache/fssup.c @@ -399,7 +399,7 @@ CcSetDirtyPageThreshold(IN PFILE_OBJECT FileObject, IN ULONG DirtyPageThreshold) { UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); } /* diff --git a/reactos/ntoskrnl/cache/logsup.c b/reactos/ntoskrnl/cache/logsup.c index 6c5f3540ed5..cb4f78a3f0b 100644 --- a/reactos/ntoskrnl/cache/logsup.c +++ b/reactos/ntoskrnl/cache/logsup.c @@ -24,7 +24,7 @@ CcSetAdditionalCacheAttributes(IN PFILE_OBJECT FileObject, IN BOOLEAN DisableWriteBehind) { UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); } VOID @@ -48,7 +48,7 @@ CcGetDirtyPages(IN PVOID LogHandle, { LARGE_INTEGER Result = {{0}}; UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); return Result; } @@ -57,7 +57,7 @@ NTAPI CcIsThereDirtyData(IN PVPB Vpb) { UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); return FALSE; } @@ -68,7 +68,7 @@ CcGetLsnForFileObject(IN PFILE_OBJECT FileObject, { LARGE_INTEGER Result = {{0}}; UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); return Result; } diff --git a/reactos/ntoskrnl/include/internal/i386/ke.h b/reactos/ntoskrnl/include/internal/i386/ke.h index 8363477ab48..7e81de388aa 100644 --- a/reactos/ntoskrnl/include/internal/i386/ke.h +++ b/reactos/ntoskrnl/include/internal/i386/ke.h @@ -138,8 +138,8 @@ typedef union _KTRAP_EXIT_SKIP_BITS { \ /* Not yet handled */ \ UNIMPLEMENTED; \ - while (TRUE); \ - return TRUE; \ + ASSERT(FALSE); /* while (TRUE); */ \ + return FALSE; \ } C_ASSERT(NPX_FRAME_LENGTH == sizeof(FX_SAVE_AREA)); diff --git a/reactos/ntoskrnl/io/iomgr/irp.c b/reactos/ntoskrnl/io/iomgr/irp.c index f88e80f46d8..f19b496bb87 100644 --- a/reactos/ntoskrnl/io/iomgr/irp.c +++ b/reactos/ntoskrnl/io/iomgr/irp.c @@ -266,7 +266,8 @@ IopCompleteRequest(IN PKAPC Apc, { /* We should never get this yet */ DPRINT1("Reparse support not yet present!\n"); - while (TRUE); + ASSERT(FALSE); // while (TRUE); + return; } } @@ -1373,7 +1374,7 @@ IofCompleteRequest(IN PIRP Irp, #else /* Not implemented yet. */ DPRINT1("Not supported!\n"); - while (TRUE); + ASSERT(FALSE); // while (TRUE); #endif } diff --git a/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c b/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c index cd998bb70c6..54e5c410f3f 100644 --- a/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c +++ b/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c @@ -3784,7 +3784,7 @@ PiGetDeviceRegistryProperty(IN PDEVICE_OBJECT DeviceObject, #define PIP_RETURN_DATA(x, y) {ReturnLength = x; Data = y; Status = STATUS_SUCCESS; break;} #define PIP_REGISTRY_DATA(x, y) {ValueName = x; ValueType = y; break;} -#define PIP_UNIMPLEMENTED() {UNIMPLEMENTED; ASSERT(FALSE); break;} // while(TRUE); +#define PIP_UNIMPLEMENTED() {UNIMPLEMENTED; ASSERT(FALSE); /* while (TRUE); */ break;} /* * @implemented diff --git a/reactos/ntoskrnl/kd64/amd64/kdx64.c b/reactos/ntoskrnl/kd64/amd64/kdx64.c index df27345bf92..a496fd74a49 100644 --- a/reactos/ntoskrnl/kd64/amd64/kdx64.c +++ b/reactos/ntoskrnl/kd64/amd64/kdx64.c @@ -140,7 +140,7 @@ KdpSysReadBusData(IN ULONG BusDataType, OUT PULONG ActualLength) { UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); return STATUS_UNSUCCESSFUL; } @@ -155,7 +155,7 @@ KdpSysWriteBusData(IN ULONG BusDataType, OUT PULONG ActualLength) { UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); return STATUS_UNSUCCESSFUL; } @@ -358,7 +358,7 @@ NTAPI KdpSysCheckLowMemory(IN ULONG Flags) { UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); return STATUS_UNSUCCESSFUL; } @@ -367,6 +367,6 @@ NTAPI KdpAllowDisable(VOID) { UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); return STATUS_ACCESS_DENIED; } diff --git a/reactos/ntoskrnl/kd64/arm/kdarm.c b/reactos/ntoskrnl/kd64/arm/kdarm.c index 32a82ebb9d0..35f9211014d 100644 --- a/reactos/ntoskrnl/kd64/arm/kdarm.c +++ b/reactos/ntoskrnl/kd64/arm/kdarm.c @@ -23,7 +23,7 @@ KdpGetStateChange(IN PDBGKD_MANIPULATE_STATE64 State, IN PCONTEXT Context) { UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); } VOID @@ -32,7 +32,7 @@ KdpSetContextState(IN PDBGKD_ANY_WAIT_STATE_CHANGE WaitStateChange, IN PCONTEXT Context) { UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); } NTSTATUS @@ -41,7 +41,7 @@ KdpSysReadMsr(IN ULONG Msr, OUT PLARGE_INTEGER MsrValue) { UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); return STATUS_UNSUCCESSFUL; } @@ -51,7 +51,7 @@ KdpSysWriteMsr(IN ULONG Msr, IN PLARGE_INTEGER MsrValue) { UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); return STATUS_UNSUCCESSFUL; } @@ -66,7 +66,7 @@ KdpSysReadBusData(IN ULONG BusDataType, OUT PULONG ActualLength) { UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); return STATUS_UNSUCCESSFUL; } @@ -81,7 +81,7 @@ KdpSysWriteBusData(IN ULONG BusDataType, OUT PULONG ActualLength) { UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); return STATUS_UNSUCCESSFUL; } @@ -94,7 +94,7 @@ KdpSysReadControlSpace(IN ULONG Processor, OUT PULONG ActualLength) { UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); return STATUS_UNSUCCESSFUL; } @@ -107,7 +107,7 @@ KdpSysWriteControlSpace(IN ULONG Processor, OUT PULONG ActualLength) { UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); return STATUS_UNSUCCESSFUL; } @@ -122,7 +122,7 @@ KdpSysReadIoSpace(IN ULONG InterfaceType, OUT PULONG ActualDataSize) { UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); return STATUS_UNSUCCESSFUL; } @@ -137,7 +137,7 @@ KdpSysWriteIoSpace(IN ULONG InterfaceType, OUT PULONG ActualDataSize) { UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); return STATUS_UNSUCCESSFUL; } @@ -146,7 +146,7 @@ NTAPI KdpSysCheckLowMemory(IN ULONG Flags) { UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); return STATUS_UNSUCCESSFUL; } @@ -155,6 +155,6 @@ NTAPI KdpAllowDisable(VOID) { UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); return STATUS_ACCESS_DENIED; } diff --git a/reactos/ntoskrnl/ke/bug.c b/reactos/ntoskrnl/ke/bug.c index 641c544dfa9..d701444ae6b 100644 --- a/reactos/ntoskrnl/ke/bug.c +++ b/reactos/ntoskrnl/ke/bug.c @@ -1178,6 +1178,7 @@ KeBugCheckWithTf(IN ULONG BugCheckCode, KiBugCheckDebugBreak(DBG_STATUS_BUGCHECK_SECOND); /* Shouldn't get here */ + ASSERT(FALSE); while (TRUE); } diff --git a/reactos/ntoskrnl/ke/dpc.c b/reactos/ntoskrnl/ke/dpc.c index d507b726eb7..577fefbd587 100644 --- a/reactos/ntoskrnl/ke/dpc.c +++ b/reactos/ntoskrnl/ke/dpc.c @@ -780,6 +780,7 @@ KeInsertQueueDpc(IN PKDPC Dpc, { /* FIXME: Setup Threaded DPC */ DPRINT1("Threaded DPC not supported\n"); + ASSERT(FALSE); while (TRUE); } } diff --git a/reactos/ntoskrnl/ke/i386/context.c b/reactos/ntoskrnl/ke/i386/context.c index 085e9ae735b..cd36a145449 100644 --- a/reactos/ntoskrnl/ke/i386/context.c +++ b/reactos/ntoskrnl/ke/i386/context.c @@ -36,7 +36,8 @@ KiSwapProcess(IN PKPROCESS NewProcess, { /* Not handled yet */ UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); + return; } /* Update CR3 */ diff --git a/reactos/ntoskrnl/ke/i386/traphdlr.c b/reactos/ntoskrnl/ke/i386/traphdlr.c index 835d8e70417..2bd9a46d998 100644 --- a/reactos/ntoskrnl/ke/i386/traphdlr.c +++ b/reactos/ntoskrnl/ke/i386/traphdlr.c @@ -663,6 +663,7 @@ KiTrap06Handler(IN PKTRAP_FRAME TrapFrame) { /* Should only happen in VDM mode */ UNIMPLEMENTED; + ASSERT(FALSE); while (TRUE); } @@ -735,6 +736,7 @@ KiTrap07Handler(IN PKTRAP_FRAME TrapFrame) { /* Not implemented */ UNIMPLEMENTED; + ASSERT(FALSE); while (TRUE); } @@ -921,6 +923,7 @@ KiTrap0DHandler(IN PKTRAP_FRAME TrapFrame) { /* Should only happen in VDM mode */ UNIMPLEMENTED; + ASSERT(FALSE); while (TRUE); } @@ -1077,6 +1080,7 @@ KiTrap0DHandler(IN PKTRAP_FRAME TrapFrame) { /* Not implemented */ UNIMPLEMENTED; + ASSERT(FALSE); while (TRUE); } @@ -1133,6 +1137,7 @@ KiTrap0DHandler(IN PKTRAP_FRAME TrapFrame) { /* Otherwise, this is another kind of IRET fault */ UNIMPLEMENTED; + ASSERT(FALSE); while (TRUE); } } @@ -1191,6 +1196,7 @@ KiTrap0EHandler(IN PKTRAP_FRAME TrapFrame) { /* The stack is somewhere in between frames, we need to fix it */ UNIMPLEMENTED; + ASSERT(FALSE); while (TRUE); } } @@ -1256,6 +1262,7 @@ KiTrap0EHandler(IN PKTRAP_FRAME TrapFrame) { /* Not yet implemented */ UNIMPLEMENTED; + ASSERT(FALSE); while (TRUE); } #endif @@ -1439,7 +1446,7 @@ FASTCALL KiGetTickCountHandler(IN PKTRAP_FRAME TrapFrame) { UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); } VOID @@ -1447,7 +1454,7 @@ FASTCALL KiCallbackReturnHandler(IN PKTRAP_FRAME TrapFrame) { UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); } DECLSPEC_NORETURN @@ -1618,6 +1625,7 @@ KiSystemCall(IN PKTRAP_FRAME TrapFrame, { /* Access violation */ UNIMPLEMENTED; + ASSERT(FALSE); while (TRUE); } @@ -1683,6 +1691,7 @@ Kei386EoiHelper(VOID) { /* We should never see this call happening */ DPRINT1("Mismatched NT/HAL version"); + ASSERT(FALSE); while (TRUE); } diff --git a/reactos/ntoskrnl/po/povolume.c b/reactos/ntoskrnl/po/povolume.c index 77003029a43..13da03a43f2 100644 --- a/reactos/ntoskrnl/po/povolume.c +++ b/reactos/ntoskrnl/po/povolume.c @@ -300,7 +300,9 @@ PopFlushVolumes(IN BOOLEAN ShuttingDown) { /* ReactOS only implements this routine for shutdown, which requires it */ UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); + KeReleaseGuardedMutex(&PopVolumeLock); + return; } /* Check if there were no volumes at all */