From 827cc2937b7b17cc882fd6ada0a5c1aee6966698 Mon Sep 17 00:00:00 2001 From: short <> Date: Wed, 13 Aug 2003 09:04:24 +0000 Subject: [PATCH] +Trace dumps compatible with TraceFS. CcCopyWrite(): 'Length' may not be PAGE_SIZE aligned. --- src/libcaptive/cc/copy.c | 39 +++++++++++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/src/libcaptive/cc/copy.c b/src/libcaptive/cc/copy.c index 1e17f2e..2c96e2d 100644 --- a/src/libcaptive/cc/copy.c +++ b/src/libcaptive/cc/copy.c @@ -51,6 +51,10 @@ BOOLEAN CcCopyRead(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset,IN ULONG Length,IN BOOLEAN Wait,OUT PVOID Buffer,OUT PIO_STATUS_BLOCK IoStatus) { CaptiveSharedCacheMapObject *SharedCacheMap; +BOOLEAN r; + + g_log(G_LOG_DOMAIN,G_LOG_LEVEL_DEBUG,"enter: CcCopyRead: FileObject=0x%lX,FileOffset=0x%lX,Length=0x%lX,Wait=%d,Buffer=0x%lX", + (long)FileObject,(!FileOffset ? -1 : (long)FileOffset->QuadPart),Length,Wait,(long)Buffer); g_return_val_if_fail(FileObject!=NULL,FALSE); g_return_val_if_fail(FileOffset!=NULL,FALSE); @@ -58,9 +62,6 @@ CaptiveSharedCacheMapObject *SharedCacheMap; g_return_val_if_fail(Buffer!=NULL,FALSE); g_return_val_if_fail(IoStatus!=NULL,FALSE); - g_log(G_LOG_DOMAIN,G_LOG_LEVEL_DEBUG,"%s: FileObject=%p,FileOffset=0x%llX,Length=0x%lX,Wait=%d",G_STRLOC, - FileObject,(guint64)FileOffset->QuadPart,(gulong)Length,(gint)Wait); - SharedCacheMap=captive_FileObject_to_SharedCacheMap(FileObject); captive_shared_cache_map_data_validate_read(SharedCacheMap,FileObject,FileOffset->QuadPart,FileOffset->QuadPart+Length); @@ -68,8 +69,12 @@ CaptiveSharedCacheMapObject *SharedCacheMap; IoStatus->Status=STATUS_SUCCESS; IoStatus->Information=Length; + r=TRUE; - return TRUE; + g_log(G_LOG_DOMAIN,G_LOG_LEVEL_DEBUG,"leave: CcCopyRead: r=%d,IoStatus->Status=0x%lX,IoStatus->Information=0x%lX", + r,(!IoStatus ? -1 : (long)IoStatus->Status),(!IoStatus ? -1 : (long)IoStatus->Information)); + + return r; } @@ -95,31 +100,42 @@ BOOLEAN CcCopyWrite(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset,IN ULONG Length,IN BOOLEAN Wait,IN PVOID Buffer) { CaptiveSharedCacheMapObject *SharedCacheMap; +BOOLEAN r; + + g_log(G_LOG_DOMAIN,G_LOG_LEVEL_DEBUG,"enter: CcCopyWrite: FileObject=0x%lX,FileOffset=0x%lX,Length=0x%lX,Wait=%d,Buffer=0x%lX", + (long)FileObject,(!FileOffset ? -1 : (long)FileOffset->QuadPart),Length,Wait,(long)Buffer); g_return_val_if_fail(FileObject!=NULL,FALSE); g_return_val_if_fail(FileOffset!=NULL,FALSE); g_return_val_if_fail(Wait==TRUE,FALSE); g_return_val_if_fail(Buffer!=NULL,FALSE); - g_log(G_LOG_DOMAIN,G_LOG_LEVEL_DEBUG,"%s: FileObject=%p,FileOffset=0x%llX,Length=0x%lX,Wait=%d",G_STRLOC, - FileObject,(guint64)FileOffset->QuadPart,(gulong)Length,(gint)Wait); - g_assert(0==CAPTIVE_ROUND_DOWN_EXCEEDING64(FileOffset->QuadPart,PAGE_SIZE)); /* NOT YET IMPLEMENTED */ - g_assert(0==CAPTIVE_ROUND_DOWN_EXCEEDING(Length,PAGE_SIZE)); /* NOT YET IMPLEMENTED */ + /* 'Length' may not be PAGE_SIZE aligned */ SharedCacheMap=captive_FileObject_to_SharedCacheMap(FileObject); captive_shared_cache_map_set_data_valid(SharedCacheMap,FileOffset->QuadPart,FileOffset->QuadPart+Length); memcpy(captive_shared_cache_map_get_buffer(SharedCacheMap)+FileOffset->QuadPart,Buffer,Length); captive_shared_cache_map_set_dirty(SharedCacheMap,FileOffset->QuadPart,FileOffset->QuadPart+Length); + r=TRUE; + + g_log(G_LOG_DOMAIN,G_LOG_LEVEL_DEBUG,"leave: CcCopyWrite: r=%d",r); - return TRUE; + return r; } BOOLEAN CcZeroData(IN PFILE_OBJECT FileObject,IN PLARGE_INTEGER StartOffset,IN PLARGE_INTEGER EndOffset,IN BOOLEAN Wait) { CaptiveSharedCacheMapObject *SharedCacheMap; +BOOLEAN r; + + g_log(G_LOG_DOMAIN,G_LOG_LEVEL_DEBUG,"enter: CcZeroData: FileObject=0x%lX,StartOffset=0x%lX,EndOffset=0x%lX,Wait=%d", + (long)FileObject, + (!StartOffset ? -1 : (long)StartOffset->QuadPart), + (!EndOffset ? -1 : (long)EndOffset->QuadPart), + Wait); g_return_val_if_fail(FileObject!=NULL,FALSE); g_return_val_if_fail(StartOffset!=NULL,FALSE); @@ -137,6 +153,9 @@ CaptiveSharedCacheMapObject *SharedCacheMap; captive_shared_cache_map_set_data_valid(SharedCacheMap,StartOffset->QuadPart,EndOffset->QuadPart); memset(captive_shared_cache_map_get_buffer(SharedCacheMap)+StartOffset->QuadPart,0,EndOffset->QuadPart-StartOffset->QuadPart); captive_shared_cache_map_set_dirty(SharedCacheMap,StartOffset->QuadPart,EndOffset->QuadPart); + r=TRUE; + + g_log(G_LOG_DOMAIN,G_LOG_LEVEL_DEBUG,"leave: CcZeroData: r=%d",r); - return TRUE; + return r; } -- 1.8.3.1