+Trace dumps compatible with TraceFS.
authorshort <>
Wed, 13 Aug 2003 09:03:03 +0000 (09:03 +0000)
committershort <>
Wed, 13 Aug 2003 09:03:03 +0000 (09:03 +0000)
CcFlushCache(): 'SharedCacheMap' is optional for 'FileObject'.

src/libcaptive/cc/cache.c

index 9f3fd9e..0bb9afd 100644 (file)
@@ -47,6 +47,14 @@ BOOLEAN CcPurgeCacheSection(IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
                IN PLARGE_INTEGER FileOffset OPTIONAL,IN ULONG Length,IN BOOLEAN UninitializeCacheMaps)
 {
 CaptiveSharedCacheMapObject *SharedCacheMap;
+BOOLEAN r;
+
+       g_log(G_LOG_DOMAIN,G_LOG_LEVEL_DEBUG,"enter: CcPurgeCacheSection: SectionObjectPointer=0x%lX,->SharedCacheMap=0x%lX,FileOffset=0x%lX,Length=0x%lX,"
+                                       "UninitializeCacheMaps=%d",
+                       (long)SectionObjectPointer,
+                       (!SectionObjectPointer ? -1 : (long)SectionObjectPointer->SharedCacheMap),
+                       (!FileOffset ? -1 : (long)FileOffset->QuadPart),Length,
+                                       UninitializeCacheMaps);
 
        g_return_val_if_fail(SectionObjectPointer!=NULL,FALSE);
        g_return_val_if_fail(FileOffset==NULL,FALSE);   /* NOT IMPLEMENTED YET */
@@ -56,7 +64,11 @@ CaptiveSharedCacheMapObject *SharedCacheMap;
 
        captive_shared_cache_map_purge(SharedCacheMap);
 
-       return TRUE;
+       r=TRUE;
+
+       g_log(G_LOG_DOMAIN,G_LOG_LEVEL_DEBUG,"leave: CcPurgeCacheSection: r=%d",r);
+
+       return r;
 }
 
 
@@ -85,25 +97,45 @@ VOID CcFlushCache(IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
 CaptiveSharedCacheMapObject *SharedCacheMap;
 guint64 flushed;
 
+       g_log(G_LOG_DOMAIN,G_LOG_LEVEL_DEBUG,"enter: CcFlushCache: SectionObjectPointer=0x%lX,->SharedCacheMap=0x%lX,FileOffset=0x%lX,Length=0x%lX",
+                       (long)SectionObjectPointer,
+                       (!SectionObjectPointer ? -1 : (long)SectionObjectPointer->SharedCacheMap),
+                       (!FileOffset ? -1 : (long)FileOffset->QuadPart),Length);
+
        g_return_if_fail(SectionObjectPointer!=NULL);
 
-       SharedCacheMap=captive_SectionObjectPointers_to_SharedCacheMap(SectionObjectPointer);
+       if (SectionObjectPointer->SharedCacheMap) {
+               SharedCacheMap=captive_SectionObjectPointers_to_SharedCacheMap(SectionObjectPointer);
 
-       if (FileOffset)
-               flushed=captive_shared_cache_map_flush(SharedCacheMap,FileOffset->QuadPart,FileOffset->QuadPart+Length);
+               if (FileOffset)
+                       flushed=captive_shared_cache_map_flush(SharedCacheMap,FileOffset->QuadPart,FileOffset->QuadPart+Length);
+               else
+                       flushed=captive_shared_cache_map_flush(SharedCacheMap,0,G_MAXUINT64-1); /* '-1' for overflow safety */
+               }
        else
-               flushed=captive_shared_cache_map_flush(SharedCacheMap,0,G_MAXUINT64-1); /* '-1' for overflow safety */
+               flushed=0;
 
        if (IoStatus) {
                IoStatus->Status=STATUS_SUCCESS;
                IoStatus->Information=flushed;
                }
+
+       g_log(G_LOG_DOMAIN,G_LOG_LEVEL_DEBUG,"leave: CcFlushCache: IoStatus->Status=0x%lX,IoStatus->Information=0x%lX",
+                       (!IoStatus ? -1 : (long)IoStatus->Status),(!IoStatus ? -1 : (long)IoStatus->Information));
 }
 
 
 BOOLEAN CcIsThereDirtyData(IN PVPB Vpb)
 {
+BOOLEAN r;
+
+       g_log(G_LOG_DOMAIN,G_LOG_LEVEL_DEBUG,"enter: CcIsThereDirtyData: Vpb=0x%lX",(long)Vpb);
+
        g_return_val_if_fail(Vpb!=NULL,FALSE);  /* We have just one volume mounted anyway. */
 
-       return captive_shared_cache_map_is_any_dirty();
+       r=captive_shared_cache_map_is_any_dirty();
+
+       g_log(G_LOG_DOMAIN,G_LOG_LEVEL_DEBUG,"leave: CcIsThereDirtyData: r=%d",r);
+
+       return r;
 }