[ros-diffs] [mbosma] 21400: Unify coding style using GNU Indent

aleksey at studiocerebral.com aleksey at studiocerebral.com
Mon Mar 27 20:17:14 CEST 2006


Author: mbosma
Date: Mon Mar 27 22:17:12 2006
New Revision: 21400

URL: http://svn.reactos.ru/svn/reactos?rev=21400&view=rev
Log:
Unify coding style using GNU Indent

Modified:
    branches/cache_manager_rewrite/reactos/ntoskrnl/cc/cacheman.c
    branches/cache_manager_rewrite/reactos/ntoskrnl/cc/copy.c
    branches/cache_manager_rewrite/reactos/ntoskrnl/cc/fs.c
    branches/cache_manager_rewrite/reactos/ntoskrnl/cc/mdl.c
    branches/cache_manager_rewrite/reactos/ntoskrnl/cc/pin.c
    branches/cache_manager_rewrite/reactos/ntoskrnl/cc/view.c

Modified: branches/cache_manager_rewrite/reactos/ntoskrnl/cc/cacheman.c
URL: http://svn.reactos.ru/svn/reactos/branches/cache_manager_rewrite/reactos/ntoskrnl/cc/cacheman.c?rev=21400&r1=21399&r2=21400&view=diff
==============================================================================
--- branches/cache_manager_rewrite/reactos/ntoskrnl/cc/cacheman.c (original)
+++ branches/cache_manager_rewrite/reactos/ntoskrnl/cc/cacheman.c Mon Mar 27 22:17:12 2006
@@ -16,41 +16,34 @@
 
 /* FUNCTIONS *****************************************************************/
 
-VOID
-NTAPI
-CcInit(VOID)
+VOID NTAPI
+CcInit (VOID)
 {
-  CcInitView();
+    CcInitView ();
 }
 
 /*
  * @unimplemented
  */
-LARGE_INTEGER
-STDCALL
-CcGetFlushedValidData (
-    IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
-    IN BOOLEAN BcbListHeld
-    )
+LARGE_INTEGER STDCALL
+CcGetFlushedValidData (IN PSECTION_OBJECT_POINTERS SectionObjectPointer, 
+                       IN BOOLEAN BcbListHeld)
 {
-	LARGE_INTEGER i;
+    LARGE_INTEGER i;
 
-	UNIMPLEMENTED;
+    UNIMPLEMENTED;
 
-	i.QuadPart = 0;
-	return i;
+    i.QuadPart = 0;
+    return i;
 }
 
 /*
  * @unimplemented
  */
-PVOID
-STDCALL
-CcRemapBcb (
-    IN PVOID Bcb
-    )
+PVOID STDCALL
+CcRemapBcb (IN PVOID Bcb)
 {
-	UNIMPLEMENTED;
+    UNIMPLEMENTED;
 
     return 0;
 }
@@ -58,66 +51,51 @@
 /*
  * @unimplemented
  */
-VOID
-STDCALL
-CcScheduleReadAhead (
-	IN	PFILE_OBJECT		FileObject,
-	IN	PLARGE_INTEGER		FileOffset,
-	IN	ULONG			Length
-	)
+VOID STDCALL
+CcScheduleReadAhead (IN PFILE_OBJECT FileObject, 
+                     IN PLARGE_INTEGER FileOffset, 
+                     IN ULONG Length)
 {
-	UNIMPLEMENTED;
+    UNIMPLEMENTED;
 }
 
 /*
  * @unimplemented
  */
-VOID
-STDCALL
-CcSetAdditionalCacheAttributes (
-	IN	PFILE_OBJECT	FileObject,
-	IN	BOOLEAN		DisableReadAhead,
-	IN	BOOLEAN		DisableWriteBehind
-	)
+VOID STDCALL
+CcSetAdditionalCacheAttributes (IN PFILE_OBJECT FileObject, 
+                                IN BOOLEAN DisableReadAhead, 
+                                IN BOOLEAN DisableWriteBehind)
 {
-	UNIMPLEMENTED;
+    UNIMPLEMENTED;
 }
 
 /*
  * @unimplemented
  */
-VOID
-STDCALL
-CcSetBcbOwnerPointer (
-	IN	PVOID	Bcb,
-	IN	PVOID	Owner
-	)
+VOID STDCALL
+CcSetBcbOwnerPointer (IN PVOID Bcb, 
+                      IN PVOID Owner)
 {
-	UNIMPLEMENTED;
+    UNIMPLEMENTED;
 }
 
 /*
  * @unimplemented
  */
-VOID
-STDCALL
-CcSetDirtyPageThreshold (
-	IN	PFILE_OBJECT	FileObject,
-	IN	ULONG		DirtyPageThreshold
-	)
+VOID STDCALL
+CcSetDirtyPageThreshold (IN PFILE_OBJECT FileObject, 
+                         IN ULONG DirtyPageThreshold)
 {
-	UNIMPLEMENTED;
+    UNIMPLEMENTED;
 }
 
 /*
  * @unimplemented
  */
-VOID
-STDCALL
-CcSetReadAheadGranularity (
-	IN	PFILE_OBJECT	FileObject,
-	IN	ULONG		Granularity
-	)
+VOID STDCALL
+CcSetReadAheadGranularity (IN PFILE_OBJECT FileObject, 
+                           IN ULONG Granularity)
 {
-	UNIMPLEMENTED;
+    UNIMPLEMENTED;
 }

Modified: branches/cache_manager_rewrite/reactos/ntoskrnl/cc/copy.c
URL: http://svn.reactos.ru/svn/reactos/branches/cache_manager_rewrite/reactos/ntoskrnl/cc/copy.c?rev=21400&r1=21399&r2=21400&view=diff
==============================================================================
--- branches/cache_manager_rewrite/reactos/ntoskrnl/cc/copy.c (original)
+++ branches/cache_manager_rewrite/reactos/ntoskrnl/cc/copy.c Mon Mar 27 22:17:12 2006
@@ -18,13 +18,13 @@
 
 static PFN_TYPE CcZeroPage = 0;
 
-#define MAX_ZERO_LENGTH	(256 * 1024)
-#define MAX_RW_LENGTH	(256 * 1024)
+#define MAX_ZERO_LENGTH    (256 * 1024)
+#define MAX_RW_LENGTH    (256 * 1024)
 
 #if defined(__GNUC__)
 /* void * alloca(size_t size); */
 #elif defined(_MSC_VER)
-void* _alloca(size_t size);
+void *_alloca (size_t size);
 #else
 #error Unknown compiler for alloca intrinsic stack allocation "function"
 #endif
@@ -41,600 +41,582 @@
 
 /* FUNCTIONS *****************************************************************/
 
-NTSTATUS STDCALL
-MmMapViewInSystemCache(PCACHE_VIEW);
-
-
-VOID 
-NTAPI
-CcInitCacheZeroPage(VOID)
-{
-   NTSTATUS Status;
-
-   Status = MmRequestPageMemoryConsumer(MC_NPPOOL, TRUE, &CcZeroPage);
-   if (!NT_SUCCESS(Status))
-   {
-       DbgPrint("Can't allocate CcZeroPage.\n");
-       KEBUGCHECKCC;
-   }
-   Status = MiZeroPage(CcZeroPage);
-   if (!NT_SUCCESS(Status))
-   {
-       DbgPrint("Can't zero out CcZeroPage.\n");
-       KEBUGCHECKCC;
-   }
+NTSTATUS STDCALL MmMapViewInSystemCache (PCACHE_VIEW);
+
+
+VOID NTAPI
+CcInitCacheZeroPage (VOID)
+{
+    NTSTATUS Status;
+
+    Status = MmRequestPageMemoryConsumer (MC_NPPOOL, TRUE, &CcZeroPage);
+    if (!NT_SUCCESS (Status))
+    {
+        DbgPrint ("Can't allocate CcZeroPage.\n");
+        KEBUGCHECKCC;
+    }
+    Status = MiZeroPage (CcZeroPage);
+    if (!NT_SUCCESS (Status))
+    {
+        DbgPrint ("Can't zero out CcZeroPage.\n");
+        KEBUGCHECKCC;
+    }
 }
 
 /*
  * @unimplemented
  */
 BOOLEAN STDCALL
-CcCanIWrite (
-			IN	PFILE_OBJECT	FileObject,
-			IN	ULONG			BytesToWrite,
-			IN	BOOLEAN			Wait,
-			IN	BOOLEAN			Retrying)
-{
-	UNIMPLEMENTED;
-	return FALSE;
+CcCanIWrite (IN PFILE_OBJECT FileObject, 
+             IN ULONG BytesToWrite, 
+             IN BOOLEAN Wait, 
+             IN BOOLEAN Retrying)
+{
+    UNIMPLEMENTED;
+    return FALSE;
 }
 
 BOOLEAN STDCALL
 CcCopyRead (IN PFILE_OBJECT FileObject,
-	    IN PLARGE_INTEGER FileOffset,
-	    IN ULONG Length,
-	    IN BOOLEAN Wait,
-	    OUT PVOID Buffer,
-	    OUT PIO_STATUS_BLOCK IoStatus)
-{
-
-   ULONG Index;
-   PBCB Bcb;
-   LARGE_INTEGER Offset;
-   PLIST_ENTRY entry;
-   PCACHE_VIEW current = NULL;
-   ULONG CurrentLength;
-   NTSTATUS Status;
-
-   DPRINT("CcCopyRead(FileObject 0x%p, FileOffset %I64x, "
-	  "Length %d, Wait %d, Buffer 0x%p, IoStatus 0x%p)\n",
-	  FileObject, FileOffset->QuadPart, Length, Wait,
-	  Buffer, IoStatus);
-
-
-   if (!Wait)
-   {
-      IoStatus->Information = 0;
-      IoStatus->Status = STATUS_UNSUCCESSFUL;
-      CHECKPOINT;
-      return FALSE;
-   }
-
-   IoStatus->Information = Length;
-   IoStatus->Status = STATUS_SUCCESS;
-
-   Bcb = FileObject->SectionObjectPointer->SharedCacheMap;
-
-   if (FileOffset->QuadPart + Length > Bcb->FileSizes.FileSize.QuadPart)
-   {
-      KEBUGCHECK(0);
-   }
-
-   if (Bcb->FileSizes.AllocationSize.QuadPart > sizeof(Bcb->CacheView) / sizeof(Bcb->CacheView[0]) * CACHE_VIEW_SIZE)
-   {
-      /* not implemented */
-      KEBUGCHECK(0);
-   }
-
-   Offset = *FileOffset;
-
-   ExAcquireFastMutex(&CcCacheViewLock);
-   while (Length)
-   {
-      Index = Offset.QuadPart / CACHE_VIEW_SIZE;
-      if (Bcb->CacheView[Index] && Bcb->CacheView[Index]->Bcb == Bcb)
-      {
-         CHECKPOINT;
-         if (Bcb->CacheView[Index]->RefCount == 0)
-         {
-            RemoveEntryList(&Bcb->CacheView[Index]->ListEntry);
-	    InsertHeadList(&CcInUseCacheViewListHead, &Bcb->CacheView[Index]->ListEntry);
-         }
-         Bcb->CacheView[Index]->RefCount++;
-      }
-      else
-      {
-         CHECKPOINT;
-         if (IsListEmpty(&CcFreeCacheViewListHead))
-         {
-            /* not implemented */
-            KEBUGCHECK(0);
-         }
-
-         entry = CcFreeCacheViewListHead.Flink;
-         while (entry != &CcFreeCacheViewListHead)
-         {
-            current = CONTAINING_RECORD(entry, CACHE_VIEW, ListEntry);
-	    entry = entry->Flink;
-	    if (current->Bcb == NULL)
-	    {
-	       break;
-	    }
-         }
-         if (entry == &CcFreeCacheViewListHead)
-         {
-            KEBUGCHECK(0);
-         }
-      
-	 if (current->Bcb)
-	 {
-	    current->Bcb->CacheView[current->SectionData.ViewOffset / CACHE_VIEW_SIZE] = NULL;
-	 }
-         Bcb->CacheView[Index] = current;
-
-
-         if(Bcb->CacheView[Index]->Bcb != NULL)
-         {
-            DPRINT1("%x\n", Bcb->CacheView[Index]->Bcb);
-            /* not implemented */
-            KEBUGCHECK(0);
-         }
-         Bcb->CacheView[Index]->RefCount = 1;
-         Bcb->CacheView[Index]->Bcb = Bcb;
-         Bcb->CacheView[Index]->SectionData.ViewOffset = Index * CACHE_VIEW_SIZE;
-	 Bcb->CacheView[Index]->SectionData.Section = Bcb->Section;
-	 Bcb->CacheView[Index]->SectionData.Segment = Bcb->Section->Segment;
-
-         Status = MmMapViewInSystemCache(Bcb->CacheView[Index]);
-
-         if (!NT_SUCCESS(Status))
-         {
-            KEBUGCHECK(0);
-         }
-      }
-      ExReleaseFastMutex(&CcCacheViewLock);
-
-      if (Offset.QuadPart % CACHE_VIEW_SIZE)
-      {
-         if (Length > CACHE_VIEW_SIZE - Offset.u.LowPart % CACHE_VIEW_SIZE)
-	 {
-	    CurrentLength = CACHE_VIEW_SIZE - Offset.u.LowPart % CACHE_VIEW_SIZE;
-	 }
-	 else
-	 {
-	    CurrentLength = Length;
-	 }
-         memcpy(Buffer, 
-                (PVOID)((ULONG_PTR)Bcb->CacheView[Index]->BaseAddress + Offset.u.LowPart % CACHE_VIEW_SIZE), 
-                CurrentLength);
-	 Buffer = (PVOID)((ULONG_PTR)Buffer + CurrentLength);
-	 Length -= CurrentLength;
-	 Offset.QuadPart += CurrentLength;
-      }
-      else
-      {
-	 CurrentLength = Length > CACHE_VIEW_SIZE ? CACHE_VIEW_SIZE : Length;
-         memcpy(Buffer, Bcb->CacheView[Index]->BaseAddress, CurrentLength);
-	 Buffer = (PVOID)((ULONG_PTR)Buffer + CurrentLength);
-	 Length -= CurrentLength;
-	 Offset.QuadPart += CurrentLength;
-      }
-      ExAcquireFastMutex(&CcCacheViewLock);
-
-      Bcb->CacheView[Index]->RefCount--;
-      if (Bcb->CacheView[Index]->RefCount == 0)
-      {
-         RemoveEntryList(&Bcb->CacheView[Index]->ListEntry);
-         InsertHeadList(&CcFreeCacheViewListHead, &Bcb->CacheView[Index]->ListEntry);
-      }
-   }
-   ExReleaseFastMutex(&CcCacheViewLock);
-
-   CHECKPOINT;
-
-   return TRUE;
-}
-
-/*
- * @implemented
- */
-BOOLEAN STDCALL
-CcCopyWrite(IN PFILE_OBJECT FileObject,
-	    IN PLARGE_INTEGER FileOffset,
-	    IN ULONG Length,
-	    IN BOOLEAN Wait,
-	    IN PVOID Buffer)
-{
-
-   ULONG Index;
-   PBCB Bcb;
-   LARGE_INTEGER Offset;
-   PLIST_ENTRY entry;
-   PCACHE_VIEW current = NULL;
-   ULONG CurrentLength;
-   NTSTATUS Status;
-
-   DPRINT("CcCopyWrite(FileObject 0x%p, FileOffset %I64x, "
-	  "Length %d, Wait %d, Buffer 0x%p)\n",
-          FileObject, FileOffset->QuadPart, Length, Wait, Buffer);
-
-   if (!Wait)
-   {
-      CHECKPOINT;
-      return FALSE;
-   }
-
-   Bcb = FileObject->SectionObjectPointer->SharedCacheMap;
-
-   if (FileOffset->QuadPart + Length > Bcb->FileSizes.FileSize.QuadPart)
-   {
-      KEBUGCHECK(0);
-   }
-
-   if (Bcb->FileSizes.AllocationSize.QuadPart > sizeof(Bcb->CacheView) / sizeof(Bcb->CacheView[0]) * CACHE_VIEW_SIZE)
-   {
-      /* not implemented */
-      KEBUGCHECK(0);
-   }
-
-   Offset = *FileOffset;
-
-   ExAcquireFastMutex(&CcCacheViewLock);
-   while (Length)
-   {
-      Index = Offset.QuadPart / CACHE_VIEW_SIZE;
-      if (Bcb->CacheView[Index] && Bcb->CacheView[Index]->Bcb == Bcb)
-      {
-         CHECKPOINT;
-         if (Bcb->CacheView[Index]->RefCount == 0)
-         {
-            RemoveEntryList(&Bcb->CacheView[Index]->ListEntry);
-	    InsertHeadList(&CcInUseCacheViewListHead, &Bcb->CacheView[Index]->ListEntry);
-         }
-         Bcb->CacheView[Index]->RefCount++;
-      }
-      else
-      {
-         CHECKPOINT;
-         if (IsListEmpty(&CcFreeCacheViewListHead))
-         {
-            /* not implemented */
-            KEBUGCHECK(0);
-         }
-
-         entry = CcFreeCacheViewListHead.Flink;
-         while (entry != &CcFreeCacheViewListHead)
-         {
-            current = CONTAINING_RECORD(entry, CACHE_VIEW, ListEntry);
-	    entry = entry->Flink;
-	    if (current->Bcb == NULL)
-	    {
-	       break;
-	    }
-         }
-         if (entry == &CcFreeCacheViewListHead)
-         {
-            KEBUGCHECK(0);
-         }
-
-      	 if (current->Bcb)
-	 {
-	    current->Bcb->CacheView[current->SectionData.ViewOffset / CACHE_VIEW_SIZE] = NULL;
-	 }
-
-         Bcb->CacheView[Index] = current;
-
-         if(Bcb->CacheView[Index]->Bcb != NULL)
-         {
-            DPRINT1("%x\n", Bcb->CacheView[Index]->Bcb);
-            /* not implemented */
-            KEBUGCHECK(0);
-         }
-         Bcb->CacheView[Index]->RefCount = 1;
-         Bcb->CacheView[Index]->Bcb = Bcb;
-         Bcb->CacheView[Index]->SectionData.ViewOffset = Index * CACHE_VIEW_SIZE;
-	 Bcb->CacheView[Index]->SectionData.Section = Bcb->Section;
-	 Bcb->CacheView[Index]->SectionData.Segment = Bcb->Section->Segment;
-
-         Status = MmMapViewInSystemCache(Bcb->CacheView[Index]);
-
-         if (!NT_SUCCESS(Status))
-         {
-            KEBUGCHECK(0);
-         }
-      }
-      ExReleaseFastMutex(&CcCacheViewLock);
-
-      if (Offset.QuadPart % CACHE_VIEW_SIZE)
-      {
-         if (Length > CACHE_VIEW_SIZE - Offset.u.LowPart % CACHE_VIEW_SIZE)
-	 {
-	    CurrentLength = CACHE_VIEW_SIZE - Offset.u.LowPart % CACHE_VIEW_SIZE;
-	 }
-	 else
-	 {
-	    CurrentLength = Length;
-	 }
-         memcpy((PVOID)((ULONG_PTR)Bcb->CacheView[Index]->BaseAddress + Offset.u.LowPart % CACHE_VIEW_SIZE), 
-                Buffer, CurrentLength);
-	 Buffer = (PVOID)((ULONG_PTR)Buffer + CurrentLength);
-	 Length -= CurrentLength;
-	 Offset.QuadPart += CurrentLength;
-      }
-      else
-      {
-	 CurrentLength = Length > CACHE_VIEW_SIZE ? CACHE_VIEW_SIZE : Length;
-         memcpy(Bcb->CacheView[Index]->BaseAddress, Buffer, CurrentLength);
-	 Buffer = (PVOID)((ULONG_PTR)Buffer + CurrentLength);
-	 Length -= CurrentLength;
-	 Offset.QuadPart += CurrentLength;
-      }
-      ExAcquireFastMutex(&CcCacheViewLock);
-
-      Bcb->CacheView[Index]->RefCount--;
-      if (Bcb->CacheView[Index]->RefCount == 0)
-      {
-         RemoveEntryList(&Bcb->CacheView[Index]->ListEntry);
-         InsertHeadList(&CcFreeCacheViewListHead, &Bcb->CacheView[Index]->ListEntry);
-      }
-   }
-   ExReleaseFastMutex(&CcCacheViewLock);
-
-   CHECKPOINT;
-
-   return TRUE;
-}
-
-/*
- * @unimplemented
- */
-VOID
-STDCALL
-CcDeferWrite (
-	IN	PFILE_OBJECT		FileObject,
-	IN	PCC_POST_DEFERRED_WRITE	PostRoutine,
-	IN	PVOID			Context1,
-	IN	PVOID			Context2,
-	IN	ULONG			BytesToWrite,
-	IN	BOOLEAN			Retrying
-	)
-{
-	UNIMPLEMENTED;
-}
-
-/*
- * @unimplemented
- */
-VOID
-STDCALL
-CcFastCopyRead (
-    IN  PFILE_OBJECT FileObject,
-    IN  ULONG FileOffset,
-    IN  ULONG Length,
-    IN  ULONG PageCount,
-    OUT PVOID Buffer,
-    OUT PIO_STATUS_BLOCK IoStatus
-	)
-{
-	UNIMPLEMENTED;
-}
-/*
- * @unimplemented
- */
-VOID
-STDCALL
-CcFastCopyWrite(
-    IN  PFILE_OBJECT FileObject,
-    IN  ULONG FileOffset,
-    IN  ULONG Length,
-    IN  PVOID Buffer)
-{
-	UNIMPLEMENTED;
-}
-
-/*
- * @unimplemented
- */
-NTSTATUS
-STDCALL
-CcWaitForCurrentLazyWriterActivity (
-    VOID
-    )
-{
-	UNIMPLEMENTED;
-	return STATUS_NOT_IMPLEMENTED;
-}
-
-/*
- * @implemented
- */
-BOOLEAN STDCALL
-CcZeroData (IN PFILE_OBJECT     FileObject,
-	    IN PLARGE_INTEGER   StartOffset,
-	    IN PLARGE_INTEGER   EndOffset,
-	    IN BOOLEAN          Wait)
-{
-  NTSTATUS Status;
-  LARGE_INTEGER WriteOffset;
-  ULONG Length;
-  ULONG CurrentLength;
-  PMDL Mdl;
-  ULONG i;
-  IO_STATUS_BLOCK Iosb;
-  KEVENT Event;
-  LARGE_INTEGER Offset;
-  ULONG Index;
-
-  DPRINT("CcZeroData(FileObject 0x%p, StartOffset %I64x, EndOffset %I64x, "
-	 "Wait %d)\n", FileObject, StartOffset->QuadPart, EndOffset->QuadPart,
-	 Wait);
-
-  Length = EndOffset->u.LowPart - StartOffset->u.LowPart;
-  WriteOffset.QuadPart = StartOffset->QuadPart;
-
-  if (FileObject->SectionObjectPointer->SharedCacheMap == NULL)
-    {
-      /* File is not cached */
-
-      Mdl = alloca(MmSizeOfMdl(NULL, MAX_ZERO_LENGTH));
-
-      while (Length > 0)
-	{
-	  if (Length + WriteOffset.u.LowPart % PAGE_SIZE > MAX_ZERO_LENGTH)
-	    {
-	      CurrentLength = MAX_ZERO_LENGTH - WriteOffset.u.LowPart % PAGE_SIZE;
-	    }
-	  else
-	    {
-	      CurrentLength = Length;
-	    }
-          MmInitializeMdl(Mdl, (PVOID)WriteOffset.u.LowPart, CurrentLength);
-	  Mdl->MdlFlags |= (MDL_PAGES_LOCKED | MDL_IO_PAGE_READ);
-	  for (i = 0; i < ((Mdl->Size - sizeof(MDL)) / sizeof(ULONG)); i++)
-	    {
-	      ((PPFN_TYPE)(Mdl + 1))[i] = CcZeroPage;
-	    }
-          KeInitializeEvent(&Event, NotificationEvent, FALSE);
-	  Status = IoSynchronousPageWrite(FileObject, Mdl, &WriteOffset, &Event, &Iosb);
-          if (Status == STATUS_PENDING)
-	  {
-             KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL);
-             Status = Iosb.Status;
-	  }
-          MmUnmapLockedPages(Mdl->MappedSystemVa, Mdl);
-	  if (!NT_SUCCESS(Status))
-	    {
-	      return(FALSE);
-	    }
-	  WriteOffset.QuadPart += CurrentLength;
-	  Length -= CurrentLength;
-	}
-    }
-  else
-    {
-      /* File is cached */
-      PBCB Bcb;
-      PCACHE_VIEW current = NULL;
-      PLIST_ENTRY entry;
-
-
-      Bcb = FileObject->SectionObjectPointer->SharedCacheMap;
-
-      if (!Wait)
-      {
-         CHECKPOINT;
-	 return FALSE;
-      }
-
-      if (EndOffset->QuadPart > Bcb->FileSizes.FileSize.QuadPart)
-      {
-         KEBUGCHECK(0);
-      }
-
-      if (Bcb->FileSizes.AllocationSize.QuadPart > sizeof(Bcb->CacheView) / sizeof(Bcb->CacheView[0]) * CACHE_VIEW_SIZE)
-      {
-         /* not implemented */
-         KEBUGCHECK(0);
-      }
-
-      Offset = *StartOffset;
-      Length = EndOffset->QuadPart - StartOffset->QuadPart;
-
-      ExAcquireFastMutex(&CcCacheViewLock);
-      while (Length)
-      {
-         Index = Offset.QuadPart / CACHE_VIEW_SIZE;
-         if (Bcb->CacheView[Index] && Bcb->CacheView[Index]->Bcb == Bcb)
-         {
+            IN PLARGE_INTEGER FileOffset, 
+            IN ULONG Length, 
+            IN BOOLEAN Wait, 
+            OUT PVOID Buffer, 
+            OUT PIO_STATUS_BLOCK IoStatus)
+{
+
+    ULONG Index;
+    PBCB Bcb;
+    LARGE_INTEGER Offset;
+    PLIST_ENTRY entry;
+    PCACHE_VIEW current = NULL;
+    ULONG CurrentLength;
+    NTSTATUS Status;
+
+    DPRINT ("CcCopyRead(FileObject 0x%p, FileOffset %I64x, "
+            "Length %d, Wait %d, Buffer 0x%p, IoStatus 0x%p)\n",
+            FileObject, FileOffset->QuadPart, Length, Wait, Buffer, IoStatus);
+
+
+    if (!Wait)
+    {
+        IoStatus->Information = 0;
+        IoStatus->Status = STATUS_UNSUCCESSFUL;
+        CHECKPOINT;
+        return FALSE;
+    }
+
+    IoStatus->Information = Length;
+    IoStatus->Status = STATUS_SUCCESS;
+
+    Bcb = FileObject->SectionObjectPointer->SharedCacheMap;
+
+    if (FileOffset->QuadPart + Length > Bcb->FileSizes.FileSize.QuadPart)
+    {
+        KEBUGCHECK (0);
+    }
+
+    if (Bcb->FileSizes.AllocationSize.QuadPart > sizeof (Bcb->CacheView) / sizeof (Bcb->CacheView[0]) * CACHE_VIEW_SIZE)
+    {
+        /* not implemented */
+        KEBUGCHECK (0);
+    }
+
+    Offset = *FileOffset;
+
+    ExAcquireFastMutex (&CcCacheViewLock);
+    while (Length)
+    {
+        Index = Offset.QuadPart / CACHE_VIEW_SIZE;
+        if (Bcb->CacheView[Index] && Bcb->CacheView[Index]->Bcb == Bcb)
+        {
             CHECKPOINT;
             if (Bcb->CacheView[Index]->RefCount == 0)
             {
-               RemoveEntryList(&Bcb->CacheView[Index]->ListEntry);
-	       InsertHeadList(&CcInUseCacheViewListHead, &Bcb->CacheView[Index]->ListEntry);
+                RemoveEntryList (&Bcb->CacheView[Index]->ListEntry);
+                InsertHeadList (&CcInUseCacheViewListHead, &Bcb->CacheView[Index]->ListEntry);
             }
             Bcb->CacheView[Index]->RefCount++;
-         }
-         else
-         {
+        }
+        else
+        {
             CHECKPOINT;
-            if (IsListEmpty(&CcFreeCacheViewListHead))
-            {
-               /* not implemented */
-               KEBUGCHECK(0);
+            if (IsListEmpty (&CcFreeCacheViewListHead))
+            {
+                /* not implemented */
+                KEBUGCHECK (0);
             }
 
             entry = CcFreeCacheViewListHead.Flink;
             while (entry != &CcFreeCacheViewListHead)
             {
-               current = CONTAINING_RECORD(entry, CACHE_VIEW, ListEntry);
-	       entry = entry->Flink;
-	       if (current->Bcb == NULL)
-	       {
-	          break;
-	       }
+                current = CONTAINING_RECORD (entry, CACHE_VIEW, ListEntry);
+                entry = entry->Flink;
+                if (current->Bcb == NULL)
+                {
+                    break;
+                }
             }
             if (entry == &CcFreeCacheViewListHead)
             {
-               KEBUGCHECK(0);
-            }
-      
+                KEBUGCHECK (0);
+            }
+
+            if (current->Bcb)
+            {
+                current->Bcb->CacheView[current->SectionData.ViewOffset / CACHE_VIEW_SIZE] = NULL;
+            }
             Bcb->CacheView[Index] = current;
 
-            if(Bcb->CacheView[Index]->Bcb != NULL)
-            {
-               DPRINT1("%x\n", Bcb->CacheView[Index]->Bcb);
-               /* not implemented */
-               KEBUGCHECK(0);
+
+            if (Bcb->CacheView[Index]->Bcb != NULL)
+            {
+                DPRINT1 ("%x\n", Bcb->CacheView[Index]->Bcb);
+                /* not implemented */
+                KEBUGCHECK (0);
             }
             Bcb->CacheView[Index]->RefCount = 1;
             Bcb->CacheView[Index]->Bcb = Bcb;
             Bcb->CacheView[Index]->SectionData.ViewOffset = Index * CACHE_VIEW_SIZE;
-	    Bcb->CacheView[Index]->SectionData.Section = Bcb->Section;
-	    Bcb->CacheView[Index]->SectionData.Segment = Bcb->Section->Segment;
-
-            Status = MmMapViewInSystemCache(Bcb->CacheView[Index]);
-
-            if (!NT_SUCCESS(Status))
-            {
-               KEBUGCHECK(0);
-            }
-         }
-         ExReleaseFastMutex(&CcCacheViewLock);
-
-         if (Offset.QuadPart % CACHE_VIEW_SIZE)
-         {
+            Bcb->CacheView[Index]->SectionData.Section = Bcb->Section;
+            Bcb->CacheView[Index]->SectionData.Segment = Bcb->Section->Segment;
+
+            Status = MmMapViewInSystemCache (Bcb->CacheView[Index]);
+
+            if (!NT_SUCCESS (Status))
+            {
+                KEBUGCHECK (0);
+            }
+        }
+        ExReleaseFastMutex (&CcCacheViewLock);
+
+        if (Offset.QuadPart % CACHE_VIEW_SIZE)
+        {
             if (Length > CACHE_VIEW_SIZE - Offset.u.LowPart % CACHE_VIEW_SIZE)
-	    {
-	       CurrentLength = CACHE_VIEW_SIZE - Offset.u.LowPart % CACHE_VIEW_SIZE;
-	    }
-	    else
-	    {
-	       CurrentLength = Length;
-	    }
-            memset((PVOID)((ULONG_PTR)Bcb->CacheView[Index]->BaseAddress + Offset.u.LowPart % CACHE_VIEW_SIZE), 0, CurrentLength);
-	    Length -= CurrentLength;
-	    Offset.QuadPart += CurrentLength;
-         }
-         else
-         {
-	    CurrentLength = Length > CACHE_VIEW_SIZE ? CACHE_VIEW_SIZE : Length;
-            memset(Bcb->CacheView[Index]->BaseAddress, 0, CurrentLength);
-   	    Length -= CurrentLength;
-	    Offset.QuadPart += CurrentLength;
-         }
-         ExAcquireFastMutex(&CcCacheViewLock);
-
-         Bcb->CacheView[Index]->RefCount--;
-         if (Bcb->CacheView[Index]->RefCount == 0)
-         {
-            RemoveEntryList(&Bcb->CacheView[Index]->ListEntry);
-            InsertHeadList(&CcFreeCacheViewListHead, &Bcb->CacheView[Index]->ListEntry);
-         }
-      }
-      ExReleaseFastMutex(&CcCacheViewLock);
-
-      CHECKPOINT;
-
-    }
-  return(TRUE);
-}
+            {
+                CurrentLength = CACHE_VIEW_SIZE - Offset.u.LowPart % CACHE_VIEW_SIZE;
+            }
+            else
+            {
+                CurrentLength = Length;
+            }
+            memcpy (Buffer,
+                    (PVOID) ((ULONG_PTR) Bcb->CacheView[Index]->BaseAddress + Offset.u.LowPart % CACHE_VIEW_SIZE), CurrentLength);
+            Buffer = (PVOID) ((ULONG_PTR) Buffer + CurrentLength);
+            Length -= CurrentLength;
+            Offset.QuadPart += CurrentLength;
+        }
+        else
+        {
+            CurrentLength = Length > CACHE_VIEW_SIZE ? CACHE_VIEW_SIZE : Length;
+            memcpy (Buffer, Bcb->CacheView[Index]->BaseAddress, CurrentLength);
+            Buffer = (PVOID) ((ULONG_PTR) Buffer + CurrentLength);
+            Length -= CurrentLength;
+            Offset.QuadPart += CurrentLength;
+        }
+        ExAcquireFastMutex (&CcCacheViewLock);
+
+        Bcb->CacheView[Index]->RefCount--;
+        if (Bcb->CacheView[Index]->RefCount == 0)
+        {
+            RemoveEntryList (&Bcb->CacheView[Index]->ListEntry);
+            InsertHeadList (&CcFreeCacheViewListHead, &Bcb->CacheView[Index]->ListEntry);
+        }
+    }
+    ExReleaseFastMutex (&CcCacheViewLock);
+
+    CHECKPOINT;
+
+    return TRUE;
+}
+
+/*
+ * @implemented
+ */
+BOOLEAN STDCALL
+CcCopyWrite (IN PFILE_OBJECT FileObject, 
+             IN PLARGE_INTEGER FileOffset, 
+             IN ULONG Length, 
+             IN BOOLEAN Wait, 
+             IN PVOID Buffer)
+{
+
+    ULONG Index;
+    PBCB Bcb;
+    LARGE_INTEGER Offset;
+    PLIST_ENTRY entry;
+    PCACHE_VIEW current = NULL;
+    ULONG CurrentLength;
+    NTSTATUS Status;
+
+    DPRINT ("CcCopyWrite(FileObject 0x%p, FileOffset %I64x, "
+            "Length %d, Wait %d, Buffer 0x%p)\n", FileObject, FileOffset->QuadPart, Length, Wait, Buffer);
+
+    if (!Wait)
+    {
+        CHECKPOINT;
+        return FALSE;
+    }
+
+    Bcb = FileObject->SectionObjectPointer->SharedCacheMap;
+
+    if (FileOffset->QuadPart + Length > Bcb->FileSizes.FileSize.QuadPart)
+    {
+        KEBUGCHECK (0);
+    }
+
+    if (Bcb->FileSizes.AllocationSize.QuadPart > sizeof (Bcb->CacheView) / sizeof (Bcb->CacheView[0]) * CACHE_VIEW_SIZE)
+    {
+        /* not implemented */
+        KEBUGCHECK (0);
+    }
+
+    Offset = *FileOffset;
+
+    ExAcquireFastMutex (&CcCacheViewLock);
+    while (Length)
+    {
+        Index = Offset.QuadPart / CACHE_VIEW_SIZE;
+        if (Bcb->CacheView[Index] && Bcb->CacheView[Index]->Bcb == Bcb)
+        {
+            CHECKPOINT;
+            if (Bcb->CacheView[Index]->RefCount == 0)
+            {
+                RemoveEntryList (&Bcb->CacheView[Index]->ListEntry);
+                InsertHeadList (&CcInUseCacheViewListHead, &Bcb->CacheView[Index]->ListEntry);
+            }
+            Bcb->CacheView[Index]->RefCount++;
+        }
+        else
+        {
+            CHECKPOINT;
+            if (IsListEmpty (&CcFreeCacheViewListHead))
+            {
+                /* not implemented */
+                KEBUGCHECK (0);
+            }
+
+            entry = CcFreeCacheViewListHead.Flink;
+            while (entry != &CcFreeCacheViewListHead)
+            {
+                current = CONTAINING_RECORD (entry, CACHE_VIEW, ListEntry);
+                entry = entry->Flink;
+                if (current->Bcb == NULL)
+                {
+                    break;
+                }
+            }
+            if (entry == &CcFreeCacheViewListHead)
+            {
+                KEBUGCHECK (0);
+            }
+
+            if (current->Bcb)
+            {
+                current->Bcb->CacheView[current->SectionData.ViewOffset / CACHE_VIEW_SIZE] = NULL;
+            }
+
+            Bcb->CacheView[Index] = current;
+
+            if (Bcb->CacheView[Index]->Bcb != NULL)
+            {
+                DPRINT1 ("%x\n", Bcb->CacheView[Index]->Bcb);
+                /* not implemented */
+                KEBUGCHECK (0);
+            }
+            Bcb->CacheView[Index]->RefCount = 1;
+            Bcb->CacheView[Index]->Bcb = Bcb;
+            Bcb->CacheView[Index]->SectionData.ViewOffset = Index * CACHE_VIEW_SIZE;
+            Bcb->CacheView[Index]->SectionData.Section = Bcb->Section;
+            Bcb->CacheView[Index]->SectionData.Segment = Bcb->Section->Segment;
+
+            Status = MmMapViewInSystemCache (Bcb->CacheView[Index]);
+
+            if (!NT_SUCCESS (Status))
+            {
+                KEBUGCHECK (0);
+            }
+        }
+        ExReleaseFastMutex (&CcCacheViewLock);
+
+        if (Offset.QuadPart % CACHE_VIEW_SIZE)
+        {
+            if (Length > CACHE_VIEW_SIZE - Offset.u.LowPart % CACHE_VIEW_SIZE)
+            {
+                CurrentLength = CACHE_VIEW_SIZE - Offset.u.LowPart % CACHE_VIEW_SIZE;
+            }
+            else
+            {
+                CurrentLength = Length;
+            }
+            memcpy ((PVOID) ((ULONG_PTR) Bcb->CacheView[Index]->BaseAddress + Offset.u.LowPart % CACHE_VIEW_SIZE),
+                    Buffer, CurrentLength);
+            Buffer = (PVOID) ((ULONG_PTR) Buffer + CurrentLength);
+            Length -= CurrentLength;
+            Offset.QuadPart += CurrentLength;
+        }
+        else
+        {
+            CurrentLength = Length > CACHE_VIEW_SIZE ? CACHE_VIEW_SIZE : Length;
+            memcpy (Bcb->CacheView[Index]->BaseAddress, Buffer, CurrentLength);
+            Buffer = (PVOID) ((ULONG_PTR) Buffer + CurrentLength);
+            Length -= CurrentLength;
+            Offset.QuadPart += CurrentLength;
+        }
+        ExAcquireFastMutex (&CcCacheViewLock);
+
+        Bcb->CacheView[Index]->RefCount--;
+        if (Bcb->CacheView[Index]->RefCount == 0)
+        {
+            RemoveEntryList (&Bcb->CacheView[Index]->ListEntry);
+            InsertHeadList (&CcFreeCacheViewListHead, &Bcb->CacheView[Index]->ListEntry);
+        }
+    }
+    ExReleaseFastMutex (&CcCacheViewLock);
+
+    CHECKPOINT;
+
+    return TRUE;
+}
+
+/*
+ * @unimplemented
+ */
+VOID STDCALL
+CcDeferWrite (IN PFILE_OBJECT FileObject,
+              IN PCC_POST_DEFERRED_WRITE PostRoutine,
+              IN PVOID Context1, 
+              IN PVOID Context2, 
+              IN ULONG BytesToWrite, 
+              IN BOOLEAN Retrying)
+{
+    UNIMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+VOID STDCALL
+CcFastCopyRead (IN PFILE_OBJECT FileObject,
+                IN ULONG FileOffset, 
+                IN ULONG Length, 
+                IN ULONG PageCount, 
+                OUT PVOID Buffer, 
+                OUT PIO_STATUS_BLOCK IoStatus)
+{
+    UNIMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+VOID STDCALL
+CcFastCopyWrite (IN PFILE_OBJECT FileObject, 
+                 IN ULONG FileOffset, 
+                 IN ULONG Length, 
+                 IN PVOID Buffer)
+{
+    UNIMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+CcWaitForCurrentLazyWriterActivity (VOID)
+{
+    UNIMPLEMENTED;
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ * @implemented
+ */
+BOOLEAN STDCALL
+CcZeroData (IN PFILE_OBJECT FileObject, 
+            IN PLARGE_INTEGER StartOffset, 
+            IN PLARGE_INTEGER EndOffset, 
+            IN BOOLEAN Wait)
+{
+    NTSTATUS Status;
+    LARGE_INTEGER WriteOffset;
+    ULONG Length;
+    ULONG CurrentLength;
+    PMDL Mdl;
+    ULONG i;
+    IO_STATUS_BLOCK Iosb;
+    KEVENT Event;
+    LARGE_INTEGER Offset;
+    ULONG Index;
+
+    DPRINT ("CcZeroData(FileObject 0x%p, StartOffset %I64x, EndOffset %I64x, "
+            "Wait %d)\n", FileObject, StartOffset->QuadPart, EndOffset->QuadPart, Wait);
+
+    Length = EndOffset->u.LowPart - StartOffset->u.LowPart;
+    WriteOffset.QuadPart = StartOffset->QuadPart;
+
+    if (FileObject->SectionObjectPointer->SharedCacheMap == NULL)
+    {
+        /* File is not cached */
+
+        Mdl = alloca (MmSizeOfMdl (NULL, MAX_ZERO_LENGTH));
+
+        while (Length > 0)
+        {
+            if (Length + WriteOffset.u.LowPart % PAGE_SIZE > MAX_ZERO_LENGTH)
+            {
+                CurrentLength = MAX_ZERO_LENGTH - WriteOffset.u.LowPart % PAGE_SIZE;
+            }
+            else
+            {
+                CurrentLength = Length;
+            }
+            MmInitializeMdl (Mdl, (PVOID) WriteOffset.u.LowPart, CurrentLength);
+            Mdl->MdlFlags |= (MDL_PAGES_LOCKED | MDL_IO_PAGE_READ);
+            for (i = 0; i < ((Mdl->Size - sizeof (MDL)) / sizeof (ULONG)); i++)
+            {
+                ((PPFN_TYPE) (Mdl + 1))[i] = CcZeroPage;
+            }
+            KeInitializeEvent (&Event, NotificationEvent, FALSE);
+            Status = IoSynchronousPageWrite (FileObject, Mdl, &WriteOffset, &Event, &Iosb);
+            if (Status == STATUS_PENDING)
+            {
+                KeWaitForSingleObject (&Event, Executive, KernelMode, FALSE, NULL);
+                Status = Iosb.Status;
+            }
+            MmUnmapLockedPages (Mdl->MappedSystemVa, Mdl);
+            if (!NT_SUCCESS (Status))
+            {
+                return (FALSE);
+            }
+            WriteOffset.QuadPart += CurrentLength;
+            Length -= CurrentLength;
+        }
+    }
+    else
+    {
+        /* File is cached */
+        PBCB Bcb;
+        PCACHE_VIEW current = NULL;
+        PLIST_ENTRY entry;
+
+        Bcb = FileObject->SectionObjectPointer->SharedCacheMap;
+
+        if (!Wait)
+        {
+            CHECKPOINT;
+            return FALSE;
+        }
+
+        if (EndOffset->QuadPart > Bcb->FileSizes.FileSize.QuadPart)
+        {
+            KEBUGCHECK (0);
+        }
+
+        if (Bcb->FileSizes.AllocationSize.QuadPart > sizeof (Bcb->CacheView) / sizeof (Bcb->CacheView[0]) * CACHE_VIEW_SIZE)
+        {
+            /* not implemented */
+            KEBUGCHECK (0);
+        }
+
+        Offset = *StartOffset;
+        Length = EndOffset->QuadPart - StartOffset->QuadPart;
+
+        ExAcquireFastMutex (&CcCacheViewLock);
+        while (Length)
+        {
+            Index = Offset.QuadPart / CACHE_VIEW_SIZE;
+            if (Bcb->CacheView[Index] && Bcb->CacheView[Index]->Bcb == Bcb)
+            {
+                CHECKPOINT;
+                if (Bcb->CacheView[Index]->RefCount == 0)
+                {
+                    RemoveEntryList (&Bcb->CacheView[Index]->ListEntry);
+                    InsertHeadList (&CcInUseCacheViewListHead, &Bcb->CacheView[Index]->ListEntry);
+                }
+                Bcb->CacheView[Index]->RefCount++;
+            }
+            else
+            {
+                CHECKPOINT;
+                if (IsListEmpty (&CcFreeCacheViewListHead))
+                {
+                    /* not implemented */
+                    KEBUGCHECK (0);
+                }
+
+                entry = CcFreeCacheViewListHead.Flink;
+                while (entry != &CcFreeCacheViewListHead)
+                {
+                    current = CONTAINING_RECORD (entry, CACHE_VIEW, ListEntry);
+                    entry = entry->Flink;
+                    if (current->Bcb == NULL)
+                    {
+                        break;
+                    }
+                }
+                if (entry == &CcFreeCacheViewListHead)
+                {
+                    KEBUGCHECK (0);
+                }
+
+                Bcb->CacheView[Index] = current;
+
+                if (Bcb->CacheView[Index]->Bcb != NULL)
+                {
+                    DPRINT1 ("%x\n", Bcb->CacheView[Index]->Bcb);
+                    /* not implemented */
+                    KEBUGCHECK (0);
+                }
+                Bcb->CacheView[Index]->RefCount = 1;
+                Bcb->CacheView[Index]->Bcb = Bcb;
+                Bcb->CacheView[Index]->SectionData.ViewOffset = Index * CACHE_VIEW_SIZE;
+                Bcb->CacheView[Index]->SectionData.Section = Bcb->Section;
+                Bcb->CacheView[Index]->SectionData.Segment = Bcb->Section->Segment;
+
+                Status = MmMapViewInSystemCache (Bcb->CacheView[Index]);
+
+                if (!NT_SUCCESS (Status))
+                {
+                    KEBUGCHECK (0);
+                }
+            }
+            ExReleaseFastMutex (&CcCacheViewLock);
+
+            if (Offset.QuadPart % CACHE_VIEW_SIZE)
+            {
+                if (Length > CACHE_VIEW_SIZE - Offset.u.LowPart % CACHE_VIEW_SIZE)
+                {
+                    CurrentLength = CACHE_VIEW_SIZE - Offset.u.LowPart % CACHE_VIEW_SIZE;
+                }
+                else
+                {
+                    CurrentLength = Length;
+                }
+                memset ((PVOID) ((ULONG_PTR) Bcb->CacheView[Index]->BaseAddress + Offset.u.LowPart % CACHE_VIEW_SIZE), 0,
+                        CurrentLength);
+                Length -= CurrentLength;
+                Offset.QuadPart += CurrentLength;
+            }
+            else
+            {
+                CurrentLength = Length > CACHE_VIEW_SIZE ? CACHE_VIEW_SIZE : Length;
+                memset (Bcb->CacheView[Index]->BaseAddress, 0, CurrentLength);
+                Length -= CurrentLength;
+                Offset.QuadPart += CurrentLength;
+            }
+            ExAcquireFastMutex (&CcCacheViewLock);
+
+            Bcb->CacheView[Index]->RefCount--;
+            if (Bcb->CacheView[Index]->RefCount == 0)
+            {
+                RemoveEntryList (&Bcb->CacheView[Index]->ListEntry);
+                InsertHeadList (&CcFreeCacheViewListHead, &Bcb->CacheView[Index]->ListEntry);
+            }
+        }
+        ExReleaseFastMutex (&CcCacheViewLock);
+
+        CHECKPOINT;
+    }
+    return (TRUE);
+}

Modified: branches/cache_manager_rewrite/reactos/ntoskrnl/cc/fs.c
URL: http://svn.reactos.ru/svn/reactos/branches/cache_manager_rewrite/reactos/ntoskrnl/cc/fs.c?rev=21400&r1=21399&r2=21400&view=diff
==============================================================================
--- branches/cache_manager_rewrite/reactos/ntoskrnl/cc/fs.c (original)
+++ branches/cache_manager_rewrite/reactos/ntoskrnl/cc/fs.c Mon Mar 27 22:17:12 2006
@@ -16,7 +16,7 @@
 
 
 #ifndef ROUND_DOWN
-#define ROUND_DOWN(X,Y)	((X) & ~((Y) - 1))
+#define ROUND_DOWN(X,Y)    ((X) & ~((Y) - 1))
 #endif
 
 /* GLOBALS   *****************************************************************/
@@ -25,89 +25,71 @@
 extern ULONG CcCacheViewArrayCount;
 extern FAST_MUTEX CcCacheViewLock;
 
-NTSTATUS STDCALL
-MmUnmapViewInSystemCache(PCACHE_VIEW);
+NTSTATUS STDCALL MmUnmapViewInSystemCache (PCACHE_VIEW);
 
-NTSTATUS STDCALL
-MmChangeSectionSize(PSECTION_OBJECT Section,
-		    PLARGE_INTEGER NewMaxSize);
+NTSTATUS STDCALL MmChangeSectionSize (PSECTION_OBJECT Section, PLARGE_INTEGER NewMaxSize);
 
 /* FUNCTIONS *****************************************************************/
 
 /*
  * @unimplemented
  */
-LARGE_INTEGER
-STDCALL
-CcGetDirtyPages (
-	IN	PVOID			LogHandle,
-	IN	PDIRTY_PAGE_ROUTINE	DirtyPageRoutine,
-	IN	PVOID			Context1,
-	IN	PVOID			Context2
-	)
+LARGE_INTEGER STDCALL
+CcGetDirtyPages (IN PVOID LogHandle, 
+                 IN PDIRTY_PAGE_ROUTINE DirtyPageRoutine, 
+                 IN PVOID Context1, 
+                 IN PVOID Context2)
 {
-	LARGE_INTEGER i;
-	UNIMPLEMENTED;
-	i.QuadPart = 0;
-	return i;
+    LARGE_INTEGER i;
+    UNIMPLEMENTED;
+    i.QuadPart = 0;
+    return i;
 }
 
 /*
  * @implemented
  */
-PFILE_OBJECT
-STDCALL
-CcGetFileObjectFromBcb (
-	IN	PVOID	Bcb
-	)
+PFILE_OBJECT STDCALL
+CcGetFileObjectFromBcb (IN PVOID Bcb)
 {
-	PINTERNAL_BCB iBcb = (PINTERNAL_BCB)Bcb;
-	return iBcb->Bcb->FileObject;
+    PINTERNAL_BCB iBcb = (PINTERNAL_BCB) Bcb;
+    return iBcb->Bcb->FileObject;
 }
 
 /*
  * @unimplemented
  */
-LARGE_INTEGER
-STDCALL
-CcGetLsnForFileObject (
-	IN	PFILE_OBJECT	FileObject,
-	OUT	PLARGE_INTEGER	OldestLsn OPTIONAL
-	)
+LARGE_INTEGER STDCALL
+CcGetLsnForFileObject (IN PFILE_OBJECT FileObject, 
+                       OUT PLARGE_INTEGER OldestLsn OPTIONAL)
 {
-	LARGE_INTEGER i;
-	UNIMPLEMENTED;
-	i.QuadPart = 0;
-	return i;
+    LARGE_INTEGER i;
+    UNIMPLEMENTED;
+    i.QuadPart = 0;
+    return i;
 }
 
 /*
  * @unimplemented
  */
-BOOLEAN
-STDCALL
-CcIsThereDirtyData (
-	IN	PVPB	Vpb
-	)
+BOOLEAN STDCALL
+CcIsThereDirtyData (IN PVPB Vpb)
 {
-	UNIMPLEMENTED;
-	return FALSE;
+    UNIMPLEMENTED;
+    return FALSE;
 }
 
 /*
  * @unimplemented
  */
-BOOLEAN
-STDCALL
-CcPurgeCacheSection (
-	IN	PSECTION_OBJECT_POINTERS	SectionObjectPointer,
-	IN	PLARGE_INTEGER			FileOffset OPTIONAL,
-	IN	ULONG				Length,
-	IN	BOOLEAN				UninitializeCacheMaps
-	)
+BOOLEAN STDCALL
+CcPurgeCacheSection (IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
+                     IN PLARGE_INTEGER FileOffset OPTIONAL, 
+                     IN ULONG Length, 
+                     IN BOOLEAN UninitializeCacheMaps)
 {
-	UNIMPLEMENTED;
-	return FALSE;
+    UNIMPLEMENTED;
+    return FALSE;
 }
 
 
@@ -115,101 +97,94 @@
  * @implemented
  */
 VOID STDCALL
-CcSetFileSizes (IN PFILE_OBJECT FileObject,
-		IN PCC_FILE_SIZES FileSizes)
+CcSetFileSizes (IN PFILE_OBJECT FileObject, 
+                IN PCC_FILE_SIZES FileSizes)
 {
-   PBCB Bcb;
-   NTSTATUS Status;
-   ULONG i;
+    PBCB Bcb;
+    NTSTATUS Status;
+    ULONG i;
 
-   DPRINT("CcSetFileSizes(FileObject 0x%p, FileSizes 0x%p)\n",
-	  FileObject, FileSizes);
-   DPRINT("AllocationSize %d, FileSize %d, ValidDataLength %d\n",
-          (ULONG)FileSizes->AllocationSize.QuadPart,
-          (ULONG)FileSizes->FileSize.QuadPart,
-          (ULONG)FileSizes->ValidDataLength.QuadPart);
-   DPRINT("%wZ\n", &FileObject->FileName);
-      
-   Bcb = FileObject->SectionObjectPointer->SharedCacheMap;
-   if (Bcb == NULL)
-   {
-      return;
-   }
-   DPRINT("AllocationSize %d, FileSize %d, ValidDataLength %d\n",
-          (ULONG)Bcb->FileSizes.AllocationSize.QuadPart,
-          (ULONG)Bcb->FileSizes.FileSize.QuadPart,
-          (ULONG)Bcb->FileSizes.ValidDataLength.QuadPart);
-   ExAcquireFastMutex(&CcCacheViewLock);
+    DPRINT ("CcSetFileSizes(FileObject 0x%p, FileSizes 0x%p)\n", FileObject, FileSizes);
+    DPRINT ("AllocationSize %d, FileSize %d, ValidDataLength %d\n",
+            (ULONG) FileSizes->AllocationSize.QuadPart,
+            (ULONG) FileSizes->FileSize.QuadPart, (ULONG) FileSizes->ValidDataLength.QuadPart);
+    DPRINT ("%wZ\n", &FileObject->FileName);
 
-   DPRINT("%d\n", Bcb->FileSizes.FileSize.u.LowPart);
+    Bcb = FileObject->SectionObjectPointer->SharedCacheMap;
+    if (Bcb == NULL)
+    {
+        return;
+    }
+    DPRINT ("AllocationSize %d, FileSize %d, ValidDataLength %d\n",
+            (ULONG) Bcb->FileSizes.AllocationSize.QuadPart,
+            (ULONG) Bcb->FileSizes.FileSize.QuadPart, (ULONG) Bcb->FileSizes.ValidDataLength.QuadPart);
+    ExAcquireFastMutex (&CcCacheViewLock);
 
-   for (i = ROUND_DOWN(FileSizes->AllocationSize.QuadPart, CACHE_VIEW_SIZE) / CACHE_VIEW_SIZE; 
-       i < ROUND_UP(Bcb->FileSizes.AllocationSize.QuadPart, CACHE_VIEW_SIZE) / CACHE_VIEW_SIZE; 
-       i++)
-   {
-      if (Bcb->CacheView[i] != NULL)
-      {
-	  if (Bcb->CacheView[i]->Bcb != Bcb)
-          {
-	     KEBUGCHECK(0);
-	  }
-       	  if (Bcb->CacheView[i]->RefCount > 0)
-	  {
-	     KEBUGCHECK(0);
-	  }
-	  Status = MmUnmapViewInSystemCache(Bcb->CacheView[i]);
-          if (!NT_SUCCESS(Status))
-	  {
-	    KEBUGCHECK(0);
-	  }
-	  Bcb->CacheView[i]->RefCount = 0;
-          Bcb->CacheView[i]->Bcb = NULL;
-	  Bcb->CacheView[i] = NULL;
-      }
-   }
-         
+    DPRINT ("%d\n", Bcb->FileSizes.FileSize.u.LowPart);
+
+    for (i = ROUND_DOWN (FileSizes->AllocationSize.QuadPart, CACHE_VIEW_SIZE) / CACHE_VIEW_SIZE;
+         i < ROUND_UP (Bcb->FileSizes.AllocationSize.QuadPart, CACHE_VIEW_SIZE) / CACHE_VIEW_SIZE; i++)
+    {
+        if (Bcb->CacheView[i] != NULL)
+        {
+            if (Bcb->CacheView[i]->Bcb != Bcb)
+            {
+                KEBUGCHECK (0);
+            }
+            if (Bcb->CacheView[i]->RefCount > 0)
+            {
+                KEBUGCHECK (0);
+            }
+            Status = MmUnmapViewInSystemCache (Bcb->CacheView[i]);
+            if (!NT_SUCCESS (Status))
+            {
+                KEBUGCHECK (0);
+            }
+            Bcb->CacheView[i]->RefCount = 0;
+            Bcb->CacheView[i]->Bcb = NULL;
+            Bcb->CacheView[i] = NULL;
+        }
+    }
+
 #if 0
-   for (i = 0; i < CcCacheViewArrayCount; i++)
-   {
-      if (CcCacheViewArray[i].Bcb == Bcb)
-      {
-         if (PAGE_ROUND_UP(FileSizes->AllocationSize.QuadPart) <= CcCacheViewArray[i].SectionData.ViewOffset ||
-             (PAGE_ROUND_UP(FileSizes->AllocationSize.QuadPart) > CcCacheViewArray[i].SectionData.ViewOffset &&
-              PAGE_ROUND_UP(FileSizes->AllocationSize.QuadPart) <= CcCacheViewArray[i].SectionData.ViewOffset + CACHE_VIEW_SIZE))
-	     
-	 {
-	    if (CcCacheViewArray[i].RefCount > 0)
-	    {
-	       KEBUGCHECK(0);
-	    }
-	    Status = MmUnmapViewInSystemCache(&CcCacheViewArray[i]);
-            if (!NT_SUCCESS(Status))
-	    {
-	       KEBUGCHECK(0);
-	    }
-	    CcCacheViewArray[i].RefCount = 0;
-            CcCacheViewArray[i].Bcb = NULL;
-	 }
-      }
-   }
+    for (i = 0; i < CcCacheViewArrayCount; i++)
+    {
+        if (CcCacheViewArray[i].Bcb == Bcb)
+        {
+            if (PAGE_ROUND_UP (FileSizes->AllocationSize.QuadPart) <= CcCacheViewArray[i].SectionData.ViewOffset ||
+                (PAGE_ROUND_UP (FileSizes->AllocationSize.QuadPart) > CcCacheViewArray[i].SectionData.ViewOffset &&
+                 PAGE_ROUND_UP (FileSizes->AllocationSize.QuadPart) <=
+                 CcCacheViewArray[i].SectionData.ViewOffset + CACHE_VIEW_SIZE))
+
+            {
+                if (CcCacheViewArray[i].RefCount > 0)
+                {
+                    KEBUGCHECK (0);
+                }
+                Status = MmUnmapViewInSystemCache (&CcCacheViewArray[i]);
+                if (!NT_SUCCESS (Status))
+                {
+                    KEBUGCHECK (0);
+                }
+                CcCacheViewArray[i].RefCount = 0;
+                CcCacheViewArray[i].Bcb = NULL;
+            }
+        }
+    }
 #endif
-   Status = MmChangeSectionSize(Bcb->Section, &FileSizes->FileSize);
-   Bcb->FileSizes = *FileSizes;
+    Status = MmChangeSectionSize (Bcb->Section, &FileSizes->FileSize);
+    Bcb->FileSizes = *FileSizes;
 
-   ExReleaseFastMutex(&CcCacheViewLock);
+    ExReleaseFastMutex (&CcCacheViewLock);
 }
 
 /*
  * @unimplemented
  */
-VOID
-STDCALL
-CcSetLogHandleForFile (
-	IN	PFILE_OBJECT	FileObject,
-	IN	PVOID		LogHandle,
-	IN	PFLUSH_TO_LSN	FlushToLsnRoutine
-	)
+VOID STDCALL
+CcSetLogHandleForFile (IN PFILE_OBJECT FileObject, 
+                       IN PVOID LogHandle, 
+                       IN PFLUSH_TO_LSN FlushToLsnRoutine)
 {
-	UNIMPLEMENTED;
+    UNIMPLEMENTED;
 }
-

Modified: branches/cache_manager_rewrite/reactos/ntoskrnl/cc/mdl.c
URL: http://svn.reactos.ru/svn/reactos/branches/cache_manager_rewrite/reactos/ntoskrnl/cc/mdl.c?rev=21400&r1=21399&r2=21400&view=diff
==============================================================================
--- branches/cache_manager_rewrite/reactos/ntoskrnl/cc/mdl.c (original)
+++ branches/cache_manager_rewrite/reactos/ntoskrnl/cc/mdl.c Mon Mar 27 22:17:12 2006
@@ -19,21 +19,18 @@
 /*
  * @implemented
  */
-VOID
-STDCALL
-CcMdlRead(
-	IN	PFILE_OBJECT		FileObject,
-	IN	PLARGE_INTEGER		FileOffset,
-	IN	ULONG			Length,
-	OUT	PMDL			* MdlChain,
-	OUT	PIO_STATUS_BLOCK	IoStatus
-	)
+VOID STDCALL
+CcMdlRead (IN PFILE_OBJECT FileObject,
+           IN PLARGE_INTEGER FileOffset, 
+           IN ULONG Length, 
+           OUT PMDL * MdlChain, 
+           OUT PIO_STATUS_BLOCK IoStatus)
 {
-	UNIMPLEMENTED;
+    UNIMPLEMENTED;
 }
 
 /*
- * NAME							INTERNAL
+ * NAME                            INTERNAL
  * CcMdlReadCompleteDev at 8
  *
  * DESCRIPTION
@@ -46,13 +43,12 @@
  *  None.
  *
  * NOTE
- * 	Used by CcMdlReadComplete at 8 and FsRtl
+ *     Used by CcMdlReadComplete at 8 and FsRtl
  *
  */
-VOID
-STDCALL
-CcMdlReadCompleteDev(IN PMDL MdlChain,
-                     IN PFILE_OBJECT FileObject)
+VOID STDCALL
+CcMdlReadCompleteDev (IN PMDL MdlChain, 
+                      IN PFILE_OBJECT FileObject)
 {
     PMDL Mdl;
 
@@ -60,8 +56,8 @@
     while ((Mdl = MdlChain))
     {
         MdlChain = Mdl->Next;
-        MmUnlockPages(Mdl);
-        IoFreeMdl(Mdl);
+        MmUnlockPages (Mdl);
+        IoFreeMdl (Mdl);
     }
 }
 
@@ -81,66 +77,58 @@
  *
  * @implemented
  */
-VOID
-STDCALL
-CcMdlReadComplete(IN PFILE_OBJECT FileObject,
-                  IN PMDL MdlChain)
-{
-    PDEVICE_OBJECT DeviceObject = NULL;
-    PFAST_IO_DISPATCH FastDispatch;
-
-    /* Get Fast Dispatch Data */
-    DeviceObject = IoGetRelatedDeviceObject(FileObject);
-    FastDispatch = DeviceObject->DriverObject->FastIoDispatch;
-
-    /* Check if we support Fast Calls, and check this one */
-    if (FastDispatch && FastDispatch->MdlReadComplete)
-    {
-         /* Use the fast path */
-        FastDispatch->MdlReadComplete(FileObject,
-                                      MdlChain,
-                                      DeviceObject);
-    }
-
-    /* Use slow path */
-    CcMdlReadCompleteDev(MdlChain, FileObject);
-}
-
-/*
- * @implemented
- */
-VOID
-STDCALL
-CcMdlWriteComplete(IN PFILE_OBJECT FileObject,
-                   IN PLARGE_INTEGER FileOffset,
+VOID STDCALL
+CcMdlReadComplete (IN PFILE_OBJECT FileObject, 
                    IN PMDL MdlChain)
 {
     PDEVICE_OBJECT DeviceObject = NULL;
     PFAST_IO_DISPATCH FastDispatch;
 
     /* Get Fast Dispatch Data */
-    DeviceObject = IoGetRelatedDeviceObject(FileObject);
+    DeviceObject = IoGetRelatedDeviceObject (FileObject);
+    FastDispatch = DeviceObject->DriverObject->FastIoDispatch;
+
+    /* Check if we support Fast Calls, and check this one */
+    if (FastDispatch && FastDispatch->MdlReadComplete)
+    {
+        /* Use the fast path */
+        FastDispatch->MdlReadComplete (FileObject, MdlChain, DeviceObject);
+    }
+
+    /* Use slow path */
+    CcMdlReadCompleteDev (MdlChain, FileObject);
+}
+
+/*
+ * @implemented
+ */
+VOID STDCALL
+CcMdlWriteComplete (IN PFILE_OBJECT FileObject, 
+                    IN PLARGE_INTEGER FileOffset, 
+                    IN PMDL MdlChain)
+{
+    PDEVICE_OBJECT DeviceObject = NULL;
+    PFAST_IO_DISPATCH FastDispatch;
+
+    /* Get Fast Dispatch Data */
+    DeviceObject = IoGetRelatedDeviceObject (FileObject);
     FastDispatch = DeviceObject->DriverObject->FastIoDispatch;
 
     /* Check if we support Fast Calls, and check this one */
     if (FastDispatch && FastDispatch->MdlWriteComplete)
     {
-         /* Use the fast path */
-        FastDispatch->MdlWriteComplete(FileObject,
-                                       FileOffset,
-                                       MdlChain,
-                                       DeviceObject);
+        /* Use the fast path */
+        FastDispatch->MdlWriteComplete (FileObject, FileOffset, MdlChain, DeviceObject);
     }
 
     /* Use slow path */
-    CcMdlWriteCompleteDev(FileOffset, MdlChain, FileObject);
+    CcMdlWriteCompleteDev (FileOffset, MdlChain, FileObject);
 }
 
-VOID
-STDCALL
-CcMdlWriteCompleteDev(IN PLARGE_INTEGER FileOffset,
-                      IN PMDL MdlChain,
-                      IN PFILE_OBJECT FileObject)
+VOID STDCALL
+CcMdlWriteCompleteDev (IN PLARGE_INTEGER FileOffset, 
+                       IN PMDL MdlChain, 
+                       IN PFILE_OBJECT FileObject)
 {
     UNIMPLEMENTED;
 }
@@ -148,28 +136,22 @@
 /*
  * @unimplemented
  */
-VOID
-STDCALL
-CcMdlWriteAbort (
-    IN PFILE_OBJECT FileObject,
-    IN PMDL MdlChain
-    )
+VOID STDCALL
+CcMdlWriteAbort (IN PFILE_OBJECT FileObject, 
+                 IN PMDL MdlChain)
 {
-	UNIMPLEMENTED;
+    UNIMPLEMENTED;
 }
 
 /*
  * @unimplemented
  */
-VOID
-STDCALL
-CcPrepareMdlWrite (
-	IN	PFILE_OBJECT		FileObject,
-	IN	PLARGE_INTEGER		FileOffset,
-	IN	ULONG			Length,
-	OUT	PMDL			* MdlChain,
-	OUT	PIO_STATUS_BLOCK	IoStatus
-	)
+VOID STDCALL
+CcPrepareMdlWrite (IN PFILE_OBJECT FileObject,
+                   IN PLARGE_INTEGER FileOffset, 
+                   IN ULONG Length, 
+                   OUT PMDL * MdlChain, 
+                   OUT PIO_STATUS_BLOCK IoStatus)
 {
-	UNIMPLEMENTED;
+    UNIMPLEMENTED;
 }

Modified: branches/cache_manager_rewrite/reactos/ntoskrnl/cc/pin.c
URL: http://svn.reactos.ru/svn/reactos/branches/cache_manager_rewrite/reactos/ntoskrnl/cc/pin.c?rev=21400&r1=21399&r2=21400&view=diff
==============================================================================
--- branches/cache_manager_rewrite/reactos/ntoskrnl/cc/pin.c (original)
+++ branches/cache_manager_rewrite/reactos/ntoskrnl/cc/pin.c Mon Mar 27 22:17:12 2006
@@ -24,217 +24,208 @@
 
 /* FUNCTIONS *****************************************************************/
 
-NTSTATUS STDCALL
-MmMapViewInSystemCache(PCACHE_VIEW);
-
-
-/*
- * @implemented
- */
-BOOLEAN STDCALL
-CcMapData(IN PFILE_OBJECT FileObject,
-          IN PLARGE_INTEGER FileOffset,
-          IN ULONG Length,
-          IN BOOLEAN Wait,
-          OUT PVOID* piBcb,
-          OUT PVOID* pBuffer)
-{
-   PINTERNAL_BCB iBcb;
-   PBCB Bcb;
-   ULONG Index;
-   NTSTATUS Status;
-   PLIST_ENTRY entry;
-   PCACHE_VIEW current = NULL;
-
-   DPRINT("CcMapData(FileObject 0x%p, FileOffset %I64x, Length %d, Wait %d,"
-          " pBcb 0x%p, pBuffer 0x%p)\n", FileObject, FileOffset->QuadPart,
-          Length, Wait, piBcb, pBuffer);
-
-   ASSERT (FileObject);
-   ASSERT (FileObject->SectionObjectPointer);
-   ASSERT (FileObject->SectionObjectPointer->SharedCacheMap);
-   ASSERT (FileOffset);
-   ASSERT (piBcb);
-   ASSERT (pBuffer);
-
-   if (!Wait)
-   {
-      *piBcb = NULL;
-      *pBuffer = NULL;
-      return FALSE;
-   }
-
-   Bcb = FileObject->SectionObjectPointer->SharedCacheMap;
-
-   if (FileOffset->QuadPart + Length > Bcb->FileSizes.AllocationSize.QuadPart)
-   {
-      DPRINT("%d %I64d %I64d\n", Length, FileOffset->QuadPart + Length, Bcb->FileSizes.AllocationSize.QuadPart);
+NTSTATUS STDCALL MmMapViewInSystemCache (PCACHE_VIEW);
+
+
+/*
+ * @implemented
+ */
+BOOLEAN STDCALL
+CcMapData (IN PFILE_OBJECT FileObject,
+           IN PLARGE_INTEGER FileOffset, 
+           IN ULONG Length, 
+           IN BOOLEAN Wait, 
+           OUT PVOID * piBcb, 
+           OUT PVOID * pBuffer)
+{
+    PINTERNAL_BCB iBcb;
+    PBCB Bcb;
+    ULONG Index;
+    NTSTATUS Status;
+    PLIST_ENTRY entry;
+    PCACHE_VIEW current = NULL;
+
+    DPRINT ("CcMapData(FileObject 0x%p, FileOffset %I64x, Length %d, Wait %d,"
+            " pBcb 0x%p, pBuffer 0x%p)\n", FileObject, FileOffset->QuadPart, Length, Wait, piBcb, pBuffer);
+
+    ASSERT (FileObject);
+    ASSERT (FileObject->SectionObjectPointer);
+    ASSERT (FileObject->SectionObjectPointer->SharedCacheMap);
+    ASSERT (FileOffset);
+    ASSERT (piBcb);
+    ASSERT (pBuffer);
+
+    if (!Wait)
+    {
+        *piBcb = NULL;
+        *pBuffer = NULL;
+        return FALSE;
+    }
+
+    Bcb = FileObject->SectionObjectPointer->SharedCacheMap;
+
+    if (FileOffset->QuadPart + Length > Bcb->FileSizes.AllocationSize.QuadPart)
+    {
+        DPRINT ("%d %I64d %I64d\n", Length, FileOffset->QuadPart + Length, Bcb->FileSizes.AllocationSize.QuadPart);
 //      KEBUGCHECK(0);
-   }
-
-   if (FileOffset->QuadPart + Length - ROUND_DOWN(FileOffset->QuadPart, CACHE_VIEW_SIZE) > CACHE_VIEW_SIZE)
-   {
-      /* not implemented */
-      KEBUGCHECK(0);
-   }
-
-
-
-   if (Bcb->FileSizes.AllocationSize.QuadPart > sizeof(Bcb->CacheView) / sizeof(Bcb->CacheView[0]) * CACHE_VIEW_SIZE)
-   {
-      /* not implemented */
-      KEBUGCHECK(0);
-   }
-
-   ExAcquireFastMutex(&CcCacheViewLock);
-
-   Index = FileOffset->QuadPart / CACHE_VIEW_SIZE;
-   if (Bcb->CacheView[Index] && Bcb->CacheView[Index]->Bcb == Bcb)
-   {
-      if (Bcb->CacheView[Index]->RefCount == 0)
-      {
-         RemoveEntryList(&Bcb->CacheView[Index]->ListEntry);
-         InsertHeadList(&CcInUseCacheViewListHead, &Bcb->CacheView[Index]->ListEntry);
-      }
-      Bcb->CacheView[Index]->RefCount++;
-   }
-   else
-   {
-      if (IsListEmpty(&CcFreeCacheViewListHead))
-      {
-         /* not implemented */
-         KEBUGCHECK(0);
-      }
-
-      entry = CcFreeCacheViewListHead.Flink;
-      while (entry != &CcFreeCacheViewListHead)
-      {
-         current = CONTAINING_RECORD(entry, CACHE_VIEW, ListEntry);
-         entry = entry->Flink;
-         if (current->Bcb == NULL)
-         {
-            break;
-         }
-      }
-      if (entry == &CcFreeCacheViewListHead)
-      {
-         KEBUGCHECK(0);
-      }
-      
-      Bcb->CacheView[Index] = current;
-
-      if(Bcb->CacheView[Index]->Bcb != NULL)
-      {
-         DPRINT1("%x\n", Bcb->CacheView[Index]->Bcb);
-         /* not implemented */
-         KEBUGCHECK(0);
-      }
-      Bcb->CacheView[Index]->RefCount = 1;
-      Bcb->CacheView[Index]->Bcb = Bcb;
-      Bcb->CacheView[Index]->SectionData.ViewOffset = Index * CACHE_VIEW_SIZE;
-      Bcb->CacheView[Index]->SectionData.Section = Bcb->Section;
-      Bcb->CacheView[Index]->SectionData.Segment = Bcb->Section->Segment;
-
-      Status = MmMapViewInSystemCache(Bcb->CacheView[Index]);
-
-      if (!NT_SUCCESS(Status))
-      {
-         KEBUGCHECK(0);
-      }
-   }
-   ExReleaseFastMutex(&CcCacheViewLock);
-
-   iBcb = ExAllocateFromNPagedLookasideList(&iBcbLookasideList);
-   if (iBcb == NULL)
-   {
-      KEBUGCHECK(0);
-   }
-   memset(iBcb, 0, sizeof(INTERNAL_BCB));
-
-   iBcb->Bcb = Bcb;
-   iBcb->Index = Index;
-
-   *piBcb = iBcb;
-   *pBuffer = (PVOID)((ULONG_PTR)Bcb->CacheView[Index]->BaseAddress + (ULONG_PTR)(FileOffset->QuadPart - Bcb->CacheView[Index]->SectionData.ViewOffset));
-
-   DPRINT("CcMapData() done\n");
-
-   return TRUE;
-}
-
-/*
- * @unimplemented
- */
-BOOLEAN
-STDCALL
-CcPinMappedData (
-        IN	PFILE_OBJECT		FileObject,
-        IN	PLARGE_INTEGER		FileOffset,
-        IN	ULONG			Length,
-        IN	ULONG			Flags,
-        OUT	PVOID			* Bcb
-        )
-{
-  /* no-op for current implementation. */
-  return TRUE;
-}
-
-/*
- * @unimplemented
- */
-BOOLEAN
-STDCALL
-CcPinRead (
-        IN	PFILE_OBJECT		FileObject,
-        IN	PLARGE_INTEGER		FileOffset,
-        IN	ULONG			Length,
-        IN	ULONG			Flags,
-        OUT	PVOID			* Bcb,
-        OUT	PVOID			* Buffer
-        )
-{
-  if (CcMapData(FileObject, FileOffset, Length, Flags, Bcb, Buffer))
-  {
-    if (CcPinMappedData(FileObject, FileOffset, Length, Flags, Bcb))
-      return TRUE;
+    }
+
+    if (FileOffset->QuadPart + Length - ROUND_DOWN (FileOffset->QuadPart, CACHE_VIEW_SIZE) > CACHE_VIEW_SIZE)
+    {
+        /* not implemented */
+        KEBUGCHECK (0);
+    }
+
+
+
+    if (Bcb->FileSizes.AllocationSize.QuadPart > sizeof (Bcb->CacheView) / sizeof (Bcb->CacheView[0]) * CACHE_VIEW_SIZE)
+    {
+        /* not implemented */
+        KEBUGCHECK (0);
+    }
+
+    ExAcquireFastMutex (&CcCacheViewLock);
+
+    Index = FileOffset->QuadPart / CACHE_VIEW_SIZE;
+    if (Bcb->CacheView[Index] && Bcb->CacheView[Index]->Bcb == Bcb)
+    {
+        if (Bcb->CacheView[Index]->RefCount == 0)
+        {
+            RemoveEntryList (&Bcb->CacheView[Index]->ListEntry);
+            InsertHeadList (&CcInUseCacheViewListHead, &Bcb->CacheView[Index]->ListEntry);
+        }
+        Bcb->CacheView[Index]->RefCount++;
+    }
     else
-      CcUnpinData(Bcb);
-  }
-  return FALSE;
-}
-
-/*
- * @unimplemented
- */
-BOOLEAN
-STDCALL
-CcPreparePinWrite (
-        IN	PFILE_OBJECT		FileObject,
-        IN	PLARGE_INTEGER		FileOffset,
-        IN	ULONG			Length,
-        IN	BOOLEAN			Zero,
-        IN	ULONG			Flags,
-        OUT	PVOID			* Bcb,
-        OUT	PVOID			* Buffer
-        )
-{
-        /*
-         * FIXME: This is function is similar to CcPinRead, but doesn't
-         * read the data if they're not present. Instead it should just
-         * prepare the cache segments and zero them out if Zero == TRUE.
-         *
-         * For now calling CcPinRead is better than returning error or
-         * just having UNIMPLEMENTED here.
-         */
-        return CcPinRead(FileObject, FileOffset, Length, Flags, Bcb, Buffer);
-}
-
-/*
- * @implemented
- */
-VOID STDCALL
-CcSetDirtyPinnedData (IN PVOID Bcb,
-        	      IN PLARGE_INTEGER Lsn)
+    {
+        if (IsListEmpty (&CcFreeCacheViewListHead))
+        {
+            /* not implemented */
+            KEBUGCHECK (0);
+        }
+
+        entry = CcFreeCacheViewListHead.Flink;
+        while (entry != &CcFreeCacheViewListHead)
+        {
+            current = CONTAINING_RECORD (entry, CACHE_VIEW, ListEntry);
+            entry = entry->Flink;
+            if (current->Bcb == NULL)
+            {
+                break;
+            }
+        }
+        if (entry == &CcFreeCacheViewListHead)
+        {
+            KEBUGCHECK (0);
+        }
+
+        Bcb->CacheView[Index] = current;
+
+        if (Bcb->CacheView[Index]->Bcb != NULL)
+        {
+            DPRINT1 ("%x\n", Bcb->CacheView[Index]->Bcb);
+            /* not implemented */
+            KEBUGCHECK (0);
+        }
+        Bcb->CacheView[Index]->RefCount = 1;
+        Bcb->CacheView[Index]->Bcb = Bcb;
+        Bcb->CacheView[Index]->SectionData.ViewOffset = Index * CACHE_VIEW_SIZE;
+        Bcb->CacheView[Index]->SectionData.Section = Bcb->Section;
+        Bcb->CacheView[Index]->SectionData.Segment = Bcb->Section->Segment;
+
+        Status = MmMapViewInSystemCache (Bcb->CacheView[Index]);
+
+        if (!NT_SUCCESS (Status))
+        {
+            KEBUGCHECK (0);
+        }
+    }
+    ExReleaseFastMutex (&CcCacheViewLock);
+
+    iBcb = ExAllocateFromNPagedLookasideList (&iBcbLookasideList);
+    if (iBcb == NULL)
+    {
+        KEBUGCHECK (0);
+    }
+    memset (iBcb, 0, sizeof (INTERNAL_BCB));
+
+    iBcb->Bcb = Bcb;
+    iBcb->Index = Index;
+
+    *piBcb = iBcb;
+    *pBuffer =
+        (PVOID) ((ULONG_PTR) Bcb->CacheView[Index]->BaseAddress +
+                 (ULONG_PTR) (FileOffset->QuadPart - Bcb->CacheView[Index]->SectionData.ViewOffset));
+
+    DPRINT ("CcMapData() done\n");
+
+    return TRUE;
+}
+
+/*
+ * @unimplemented
+ */
+BOOLEAN STDCALL
+CcPinMappedData (IN PFILE_OBJECT FileObject, 
+                 IN PLARGE_INTEGER FileOffset, 
+                 IN ULONG Length, 
+                 IN ULONG Flags, 
+                 OUT PVOID * Bcb)
+{
+    /* no-op for current implementation. */
+    return TRUE;
+}
+
+/*
+ * @unimplemented
+ */
+BOOLEAN STDCALL
+CcPinRead (IN PFILE_OBJECT FileObject,
+           IN PLARGE_INTEGER FileOffset, 
+           IN ULONG Length, 
+           IN ULONG Flags, 
+           OUT PVOID * Bcb, 
+           OUT PVOID * Buffer)
+{
+    if (CcMapData (FileObject, FileOffset, Length, Flags, Bcb, Buffer))
+    {
+        if (CcPinMappedData (FileObject, FileOffset, Length, Flags, Bcb))
+            return TRUE;
+        else
+            CcUnpinData (Bcb);
+    }
+    return FALSE;
+}
+
+/*
+ * @unimplemented
+ */
+BOOLEAN STDCALL
+CcPreparePinWrite (IN PFILE_OBJECT FileObject,
+                   IN PLARGE_INTEGER FileOffset,
+                   IN ULONG Length, 
+                   IN BOOLEAN Zero, 
+                   IN ULONG Flags, 
+                   OUT PVOID * Bcb, 
+                   OUT PVOID * Buffer)
+{
+    /*
+     * FIXME: This is function is similar to CcPinRead, but doesn't
+     * read the data if they're not present. Instead it should just
+     * prepare the cache segments and zero them out if Zero == TRUE.
+     *
+     * For now calling CcPinRead is better than returning error or
+     * just having UNIMPLEMENTED here.
+     */
+    return CcPinRead (FileObject, FileOffset, Length, Flags, Bcb, Buffer);
+}
+
+/*
+ * @implemented
+ */
+VOID STDCALL
+CcSetDirtyPinnedData (IN PVOID Bcb, 
+                      IN PLARGE_INTEGER Lsn)
 {
 //   PINTERNAL_BCB iBcb = Bcb;
 //   iBcb->Dirty = TRUE;
@@ -248,44 +239,38 @@
 VOID STDCALL
 CcUnpinData (IN PVOID _iBcb)
 {
-   PINTERNAL_BCB iBcb = _iBcb;
-
-   DPRINT("CcUnpinData(%x)\n", _iBcb);
-
-   ExAcquireFastMutex(&CcCacheViewLock);
-   iBcb->Bcb->CacheView[iBcb->Index]->RefCount--;
-   if (iBcb->Bcb->CacheView[iBcb->Index]->RefCount == 0)
-   {
-     RemoveEntryList(&iBcb->Bcb->CacheView[iBcb->Index]->ListEntry);
-     InsertHeadList(&CcFreeCacheViewListHead, &iBcb->Bcb->CacheView[iBcb->Index]->ListEntry);
-   }
-   ExReleaseFastMutex(&CcCacheViewLock);
-   ExFreeToNPagedLookasideList(&iBcbLookasideList, iBcb);
-   
-   DPRINT("CcUnpinData done\n");
-}
-
-/*
- * @unimplemented
- */
-VOID
-STDCALL
-CcUnpinDataForThread (
-        IN	PVOID			Bcb,
-        IN	ERESOURCE_THREAD	ResourceThreadId
-        )
-{
-        UNIMPLEMENTED;
-}
-
-/*
- * @implemented
- */
-VOID
-STDCALL
-CcRepinBcb (
-        IN	PVOID	Bcb
-        )
+    PINTERNAL_BCB iBcb = _iBcb;
+
+    DPRINT ("CcUnpinData(%x)\n", _iBcb);
+
+    ExAcquireFastMutex (&CcCacheViewLock);
+    iBcb->Bcb->CacheView[iBcb->Index]->RefCount--;
+    if (iBcb->Bcb->CacheView[iBcb->Index]->RefCount == 0)
+    {
+        RemoveEntryList (&iBcb->Bcb->CacheView[iBcb->Index]->ListEntry);
+        InsertHeadList (&CcFreeCacheViewListHead, &iBcb->Bcb->CacheView[iBcb->Index]->ListEntry);
+    }
+    ExReleaseFastMutex (&CcCacheViewLock);
+    ExFreeToNPagedLookasideList (&iBcbLookasideList, iBcb);
+
+    DPRINT ("CcUnpinData done\n");
+}
+
+/*
+ * @unimplemented
+ */
+VOID STDCALL
+CcUnpinDataForThread (IN PVOID Bcb, 
+                      IN ERESOURCE_THREAD ResourceThreadId)
+{
+    UNIMPLEMENTED;
+}
+
+/*
+ * @implemented
+ */
+VOID STDCALL
+CcRepinBcb (IN PVOID Bcb)
 {
 //  PINTERNAL_BCB iBcb = Bcb;
 //  iBcb->RefCount++;
@@ -295,13 +280,10 @@
 /*
  * @unimplemented
  */
-VOID
-STDCALL
-CcUnpinRepinnedBcb (
-        IN	PVOID			Bcb,
-        IN	BOOLEAN			WriteThrough,
-        IN	PIO_STATUS_BLOCK	IoStatus)
-{
-   KEBUGCHECK(0);
-}
-
+VOID STDCALL
+CcUnpinRepinnedBcb (IN PVOID Bcb, 
+                    IN BOOLEAN WriteThrough, 
+                    IN PIO_STATUS_BLOCK IoStatus)
+{
+    KEBUGCHECK (0);
+}

Modified: branches/cache_manager_rewrite/reactos/ntoskrnl/cc/view.c
URL: http://svn.reactos.ru/svn/reactos/branches/cache_manager_rewrite/reactos/ntoskrnl/cc/view.c?rev=21400&r1=21399&r2=21400&view=diff
==============================================================================
--- branches/cache_manager_rewrite/reactos/ntoskrnl/cc/view.c (original)
+++ branches/cache_manager_rewrite/reactos/ntoskrnl/cc/view.c Mon Mar 27 22:17:12 2006
@@ -23,7 +23,7 @@
 #undef ROUND_DOWN
 #endif
 
-#define ROUND_UP(N, S)	    (((N) + (S) - 1) & ~((S) - 1))
+#define ROUND_UP(N, S)        (((N) + (S) - 1) & ~((S) - 1))
 #define ROUND_DOWN(N, S)    ((N) & ~((S) - 1))
 
 NPAGED_LOOKASIDE_LIST iBcbLookasideList;
@@ -37,21 +37,18 @@
 LIST_ENTRY CcInUseCacheViewListHead;
 PMEMORY_AREA CcCacheViewMemoryArea;
 
-NTSTATUS NTAPI
-MmCreateDataFileSection(PSECTION_OBJECT *SectionObject,
-                        ACCESS_MASK DesiredAccess,
-                        POBJECT_ATTRIBUTES ObjectAttributes,
-                        PLARGE_INTEGER UMaximumSize,
-                        ULONG SectionPageProtection,
-                        ULONG AllocationAttributes,
-                        PFILE_OBJECT FileObject,
-			BOOLEAN CacheManager);
-
-NTSTATUS STDCALL
-MmUnmapViewInSystemCache(PCACHE_VIEW);
-
-NTSTATUS
-MmFlushDataFileSection(PSECTION_OBJECT Section, PLARGE_INTEGER StartOffset, ULONG Length);
+NTSTATUS NTAPI MmCreateDataFileSection (PSECTION_OBJECT * SectionObject,
+                                        ACCESS_MASK DesiredAccess,
+                                        POBJECT_ATTRIBUTES ObjectAttributes,
+                                        PLARGE_INTEGER UMaximumSize,
+                                        ULONG SectionPageProtection,
+                                        ULONG AllocationAttributes, 
+                                        PFILE_OBJECT FileObject, 
+                                        BOOLEAN CacheManager);
+
+NTSTATUS STDCALL MmUnmapViewInSystemCache (PCACHE_VIEW);
+
+NTSTATUS MmFlushDataFileSection (PSECTION_OBJECT Section, PLARGE_INTEGER StartOffset, ULONG Length);
 
 /* FUNCTIONS *****************************************************************/
 
@@ -59,247 +56,220 @@
  * @implemented
  */
 VOID STDCALL
-CcFlushCache(IN PSECTION_OBJECT_POINTERS SectionObjectPointers,
-	     IN PLARGE_INTEGER FileOffset OPTIONAL,
-	     IN ULONG Length,
-	     OUT PIO_STATUS_BLOCK IoStatus)
-{
-   PBCB Bcb;
-   NTSTATUS Status = STATUS_SUCCESS;
-
-   DPRINT("CcFlushCache(SectionObjectPointers 0x%p, FileOffset 0x%p, Length %d, IoStatus 0x%p)\n",
-           SectionObjectPointers, FileOffset, Length, IoStatus);
-
-   if (SectionObjectPointers && SectionObjectPointers->SharedCacheMap)
-   {
-      Bcb = (PBCB)SectionObjectPointers->SharedCacheMap;
-      ASSERT(Bcb);
-
-      Status = MmFlushDataFileSection(Bcb->Section, FileOffset, Length);
-   }
-   if (IoStatus)
-   {
-      IoStatus->Status = Status;
-      IoStatus->Status = STATUS_SUCCESS;
-   }
+CcFlushCache (IN PSECTION_OBJECT_POINTERS SectionObjectPointers,
+              IN PLARGE_INTEGER FileOffset OPTIONAL, 
+              IN ULONG Length, 
+              OUT PIO_STATUS_BLOCK IoStatus)
+{
+    PBCB Bcb;
+    NTSTATUS Status = STATUS_SUCCESS;
+
+    DPRINT ("CcFlushCache(SectionObjectPointers 0x%p, FileOffset 0x%p, Length %d, IoStatus 0x%p)\n",
+            SectionObjectPointers, FileOffset, Length, IoStatus);
+
+    if (SectionObjectPointers && SectionObjectPointers->SharedCacheMap)
+    {
+        Bcb = (PBCB) SectionObjectPointers->SharedCacheMap;
+        ASSERT (Bcb);
+
+        Status = MmFlushDataFileSection (Bcb->Section, FileOffset, Length);
+    }
+    if (IoStatus)
+    {
+        IoStatus->Status = Status;
+        IoStatus->Status = STATUS_SUCCESS;
+    }
 }
 
 /*
  * @implemented
  */
 PFILE_OBJECT STDCALL
-CcGetFileObjectFromSectionPtrs(IN PSECTION_OBJECT_POINTERS SectionObjectPointers)
-{
-   PBCB Bcb;
-   if (SectionObjectPointers && SectionObjectPointers->SharedCacheMap)
-   {
-      Bcb = (PBCB)SectionObjectPointers->SharedCacheMap;
-      ASSERT(Bcb);
-      return Bcb->FileObject;
-   }
-   return NULL;
-}
-
-
-VOID 
-INIT_FUNCTION
-NTAPI
-CcInitView(VOID)
-
-{
-   NTSTATUS Status;
-   PHYSICAL_ADDRESS BoundaryAddressMultiple;
-   ULONG i;
-   ULONG Size;
-   PVOID Base;
-
-   DPRINT("CcInitView()\n");
-
-   ExInitializeFastMutex(&CcCacheViewLock);
-
-   ExInitializeNPagedLookasideList (&iBcbLookasideList,
-	                            NULL,
-				    NULL,
-				    0,
-				    sizeof(INTERNAL_BCB),
-				    TAG_IBCB,
-				    20);
-   ExInitializeNPagedLookasideList (&BcbLookasideList,
-	                            NULL,
-				    NULL,
-				    0,
-				    sizeof(BCB),
-				    TAG_BCB,
-				    20);
-				    
-   InitializeListHead(&CcFreeCacheViewListHead);
-   InitializeListHead(&CcInUseCacheViewListHead);
-
-   BoundaryAddressMultiple.QuadPart = 0LL;
-
-   Size = MmSystemRangeStart >= (PVOID)0xC0000000 ? 0x18000000 : 0x20000000;
-   CcCacheViewBase = (PVOID)(0xF0000000 - Size);
-   MmLockAddressSpace(MmGetKernelAddressSpace());
-
-   Status = MmCreateMemoryArea(
-				   MmGetKernelAddressSpace(),
-			       MEMORY_AREA_CACHE_SEGMENT,
-			       &CcCacheViewBase,
-			       Size,
-			       0,
-			       &CcCacheViewMemoryArea,
-			       FALSE,
-			       FALSE,
-			       BoundaryAddressMultiple);
-   MmUnlockAddressSpace(MmGetKernelAddressSpace());
-   DPRINT1("CcCacheViewBase: %x\n", CcCacheViewBase);
-   if (!NT_SUCCESS(Status))
-   {
-      KEBUGCHECK(0);
-   }
-   CcCacheViewArray = ExAllocatePool(NonPagedPool, sizeof(CACHE_VIEW) * (Size / CACHE_VIEW_SIZE));
-   if (CcCacheViewArray == NULL)
-   {
-      KEBUGCHECK(0);
-   }
-
-   Base = CcCacheViewBase;
-   CcCacheViewArrayCount = Size / CACHE_VIEW_SIZE;
-   for (i = 0; i < CcCacheViewArrayCount; i++)
-   {
-      CcCacheViewArray[i].BaseAddress = Base;
-      CcCacheViewArray[i].RefCount = 0;
-      CcCacheViewArray[i].Bcb = NULL;
-      CcCacheViewArray[i].SectionData.ViewOffset = 0;
-      InsertTailList(&CcFreeCacheViewListHead, &CcCacheViewArray[i].ListEntry);
-      Base = (PVOID)((ULONG_PTR)Base + CACHE_VIEW_SIZE);
-   }
-   CcInitCacheZeroPage();
-  
+CcGetFileObjectFromSectionPtrs (IN PSECTION_OBJECT_POINTERS SectionObjectPointers)
+{
+    PBCB Bcb;
+    if (SectionObjectPointers && SectionObjectPointers->SharedCacheMap)
+    {
+        Bcb = (PBCB) SectionObjectPointers->SharedCacheMap;
+        ASSERT (Bcb);
+        return Bcb->FileObject;
+    }
+    return NULL;
+}
+
+
+VOID INIT_FUNCTION NTAPI
+CcInitView (VOID)
+{
+    NTSTATUS Status;
+    PHYSICAL_ADDRESS BoundaryAddressMultiple;
+    ULONG i;
+    ULONG Size;
+    PVOID Base;
+
+    DPRINT ("CcInitView()\n");
+
+    ExInitializeFastMutex (&CcCacheViewLock);
+
+    ExInitializeNPagedLookasideList (&iBcbLookasideList, NULL, NULL, 0, sizeof (INTERNAL_BCB), TAG_IBCB, 20);
+    ExInitializeNPagedLookasideList (&BcbLookasideList, NULL, NULL, 0, sizeof (BCB), TAG_BCB, 20);
+
+    InitializeListHead (&CcFreeCacheViewListHead);
+    InitializeListHead (&CcInUseCacheViewListHead);
+
+    BoundaryAddressMultiple.QuadPart = 0LL;
+
+    Size = MmSystemRangeStart >= (PVOID) 0xC0000000 ? 0x18000000 : 0x20000000;
+    CcCacheViewBase = (PVOID) (0xF0000000 - Size);
+    MmLockAddressSpace (MmGetKernelAddressSpace ());
+
+    Status = MmCreateMemoryArea (MmGetKernelAddressSpace (),
+                                 MEMORY_AREA_CACHE_SEGMENT,
+                                 &CcCacheViewBase, Size, 0, &CcCacheViewMemoryArea, FALSE, FALSE, BoundaryAddressMultiple);
+    MmUnlockAddressSpace (MmGetKernelAddressSpace ());
+    DPRINT1 ("CcCacheViewBase: %x\n", CcCacheViewBase);
+    if (!NT_SUCCESS (Status))
+    {
+        KEBUGCHECK (0);
+    }
+    CcCacheViewArray = ExAllocatePool (NonPagedPool, sizeof (CACHE_VIEW) * (Size / CACHE_VIEW_SIZE));
+    if (CcCacheViewArray == NULL)
+    {
+        KEBUGCHECK (0);
+    }
+
+    Base = CcCacheViewBase;
+    CcCacheViewArrayCount = Size / CACHE_VIEW_SIZE;
+    for (i = 0; i < CcCacheViewArrayCount; i++)
+    {
+        CcCacheViewArray[i].BaseAddress = Base;
+        CcCacheViewArray[i].RefCount = 0;
+        CcCacheViewArray[i].Bcb = NULL;
+        CcCacheViewArray[i].SectionData.ViewOffset = 0;
+        InsertTailList (&CcFreeCacheViewListHead, &CcCacheViewArray[i].ListEntry);
+        Base = (PVOID) ((ULONG_PTR) Base + CACHE_VIEW_SIZE);
+    }
+    CcInitCacheZeroPage ();
+
 }
 
 VOID STDCALL
-CcInitializeCacheMap(IN PFILE_OBJECT FileObject,
-		     IN PCC_FILE_SIZES FileSizes,
-		     IN BOOLEAN PinAccess,
-		     IN PCACHE_MANAGER_CALLBACKS CallBacks,
-		     IN PVOID LazyWriterContext)
-{
-   PBCB Bcb;
-   NTSTATUS Status;
-
-   DPRINT("CcInitializeCacheMap(), %wZ\n", &FileObject->FileName);
-   DPRINT("%I64x (%I64d)\n", FileSizes->FileSize.QuadPart, FileSizes->FileSize.QuadPart);
-
-   ASSERT (FileObject);
-   ASSERT (FileSizes);
-
-   ExAcquireFastMutex(&CcCacheViewLock);
-
-   Bcb = FileObject->SectionObjectPointer->SharedCacheMap;
-   if (Bcb == NULL)
-   {
-      Bcb = ExAllocateFromNPagedLookasideList(&BcbLookasideList);
-      if (Bcb == NULL)
-      {
-         KEBUGCHECK(0);
-      }
-      memset(Bcb, 0, sizeof(BCB));
-
-      Bcb->FileObject = FileObject;
-      Bcb->FileSizes = *FileSizes;
-      Bcb->PinAccess = PinAccess;
-      Bcb->CallBacks = CallBacks;
-      Bcb->LazyWriterContext = LazyWriterContext;
-      Bcb->RefCount = 0;
-
-      DPRINT("%x %x\n", FileObject, FileSizes->FileSize.QuadPart);
-
-      Status = MmCreateDataFileSection(&Bcb->Section, 
-	                               STANDARD_RIGHTS_REQUIRED | SECTION_QUERY | SECTION_MAP_READ | SECTION_MAP_WRITE,
-		                       NULL,
-		                       &Bcb->FileSizes.FileSize,
-		                       PAGE_READWRITE,
-		                       SEC_COMMIT,
-		                       Bcb->FileObject,
-				       TRUE);
-      if (!NT_SUCCESS(Status))
-      {
-         DPRINT1("%x\n", Status);
-         KEBUGCHECK(0);
-      }
-
-      FileObject->SectionObjectPointer->SharedCacheMap = Bcb;
-   }
-
-   if (FileObject->PrivateCacheMap == NULL)
-   {
-      FileObject->PrivateCacheMap = Bcb;
-      Bcb->RefCount++;
-   }
-   
-   ExReleaseFastMutex(&CcCacheViewLock);
-   DPRINT("CcInitializeCacheMap() done\n");
+CcInitializeCacheMap (IN PFILE_OBJECT FileObject,
+                      IN PCC_FILE_SIZES FileSizes,
+                      IN BOOLEAN PinAccess, 
+                      IN PCACHE_MANAGER_CALLBACKS CallBacks, 
+                      IN PVOID LazyWriterContext)
+{
+    PBCB Bcb;
+    NTSTATUS Status;
+
+    DPRINT ("CcInitializeCacheMap(), %wZ\n", &FileObject->FileName);
+    DPRINT ("%I64x (%I64d)\n", FileSizes->FileSize.QuadPart, FileSizes->FileSize.QuadPart);
+
+    ASSERT (FileObject);
+    ASSERT (FileSizes);
+
+    ExAcquireFastMutex (&CcCacheViewLock);
+
+    Bcb = FileObject->SectionObjectPointer->SharedCacheMap;
+    if (Bcb == NULL)
+    {
+        Bcb = ExAllocateFromNPagedLookasideList (&BcbLookasideList);
+        if (Bcb == NULL)
+        {
+            KEBUGCHECK (0);
+        }
+        memset (Bcb, 0, sizeof (BCB));
+
+        Bcb->FileObject = FileObject;
+        Bcb->FileSizes = *FileSizes;
+        Bcb->PinAccess = PinAccess;
+        Bcb->CallBacks = CallBacks;
+        Bcb->LazyWriterContext = LazyWriterContext;
+        Bcb->RefCount = 0;
+
+        DPRINT ("%x %x\n", FileObject, FileSizes->FileSize.QuadPart);
+
+        Status = MmCreateDataFileSection (&Bcb->Section,
+                                          STANDARD_RIGHTS_REQUIRED | SECTION_QUERY | SECTION_MAP_READ | SECTION_MAP_WRITE,
+                                          NULL, &Bcb->FileSizes.FileSize, PAGE_READWRITE, SEC_COMMIT, Bcb->FileObject, TRUE);
+        if (!NT_SUCCESS (Status))
+        {
+            DPRINT1 ("%x\n", Status);
+            KEBUGCHECK (0);
+        }
+
+        FileObject->SectionObjectPointer->SharedCacheMap = Bcb;
+    }
+
+    if (FileObject->PrivateCacheMap == NULL)
+    {
+        FileObject->PrivateCacheMap = Bcb;
+        Bcb->RefCount++;
+    }
+
+    ExReleaseFastMutex (&CcCacheViewLock);
+    DPRINT ("CcInitializeCacheMap() done\n");
 }
 
 BOOLEAN STDCALL
-CcUninitializeCacheMap (IN PFILE_OBJECT	FileObject,
-			IN PLARGE_INTEGER TruncateSize OPTIONAL,
-			IN PCACHE_UNINITIALIZE_EVENT UninitializeCompleteEvent OPTIONAL)
-{
-   PBCB Bcb;
-   ULONG i;
-   NTSTATUS Status;
-
-   DPRINT("CcUninitializeCacheMap(), %wZ\n", &FileObject->FileName);
-   ExAcquireFastMutex(&CcCacheViewLock);
-   Bcb = FileObject->SectionObjectPointer->SharedCacheMap;
-   if (Bcb)
-   {
-      if (FileObject->PrivateCacheMap == Bcb)
-      {
-         Bcb->RefCount--;
-	 FileObject->PrivateCacheMap = NULL;
-      }
-      if (Bcb->RefCount == 0)
-      {
-         Bcb->RefCount++;
-         ExReleaseFastMutex(&CcCacheViewLock);
-	 MmFlushDataFileSection(Bcb->Section, NULL, 0);
-         ExAcquireFastMutex(&CcCacheViewLock);
-	 Bcb->RefCount--;
-	 if (Bcb->RefCount == 0)
-	 {
-            for (i = 0; i < ROUND_UP(Bcb->FileSizes.AllocationSize.QuadPart, CACHE_VIEW_SIZE) / CACHE_VIEW_SIZE; i++)
-	    {
-	       if (Bcb->CacheView[i] && Bcb->CacheView[i]->Bcb == Bcb)
-               {
-                  CHECKPOINT;
-	          if (Bcb->CacheView[i]->RefCount > 0)
-	          {
-	             KEBUGCHECK(0);
-	          }
-	          Status = MmUnmapViewInSystemCache(Bcb->CacheView[i]);
-                  if (!NT_SUCCESS(Status))
-	          {
-	             KEBUGCHECK(0);
-	          }
-	          Bcb->CacheView[i]->RefCount = 0;
-		  Bcb->CacheView[i]->Bcb = NULL;
-                  Bcb->CacheView[i] = NULL;
-	       }
-	    }
-
-            DPRINT("%x\n", Bcb->Section);
-	    ObDereferenceObject(Bcb->Section);
-            FileObject->SectionObjectPointer->SharedCacheMap = NULL;
-	    ExFreeToNPagedLookasideList(&BcbLookasideList, Bcb);
-	 }
-      }
-   }
-   DPRINT("CcUninitializeCacheMap() done, %wZ\n", &FileObject->FileName);
-   ExReleaseFastMutex(&CcCacheViewLock);
-   return TRUE;
+CcUninitializeCacheMap (IN PFILE_OBJECT FileObject,
+                        IN PLARGE_INTEGER TruncateSize OPTIONAL, 
+                        IN PCACHE_UNINITIALIZE_EVENT UninitializeCompleteEvent OPTIONAL)
+{
+    PBCB Bcb;
+    ULONG i;
+    NTSTATUS Status;
+
+    DPRINT ("CcUninitializeCacheMap(), %wZ\n", &FileObject->FileName);
+    ExAcquireFastMutex (&CcCacheViewLock);
+    Bcb = FileObject->SectionObjectPointer->SharedCacheMap;
+    if (Bcb)
+    {
+        if (FileObject->PrivateCacheMap == Bcb)
+        {
+            Bcb->RefCount--;
+            FileObject->PrivateCacheMap = NULL;
+        }
+        if (Bcb->RefCount == 0)
+        {
+            Bcb->RefCount++;
+            ExReleaseFastMutex (&CcCacheViewLock);
+            MmFlushDataFileSection (Bcb->Section, NULL, 0);
+            ExAcquireFastMutex (&CcCacheViewLock);
+            Bcb->RefCount--;
+            if (Bcb->RefCount == 0)
+            {
+                for (i = 0; i < ROUND_UP (Bcb->FileSizes.AllocationSize.QuadPart, CACHE_VIEW_SIZE) / CACHE_VIEW_SIZE; i++)
+                {
+                    if (Bcb->CacheView[i] && Bcb->CacheView[i]->Bcb == Bcb)
+                    {
+                        CHECKPOINT;
+                        if (Bcb->CacheView[i]->RefCount > 0)
+                        {
+                            KEBUGCHECK (0);
+                        }
+                        Status = MmUnmapViewInSystemCache (Bcb->CacheView[i]);
+                        if (!NT_SUCCESS (Status))
+                        {
+                            KEBUGCHECK (0);
+                        }
+                        Bcb->CacheView[i]->RefCount = 0;
+                        Bcb->CacheView[i]->Bcb = NULL;
+                        Bcb->CacheView[i] = NULL;
+                    }
+                }
+
+                DPRINT ("%x\n", Bcb->Section);
+                ObDereferenceObject (Bcb->Section);
+                FileObject->SectionObjectPointer->SharedCacheMap = NULL;
+                ExFreeToNPagedLookasideList (&BcbLookasideList, Bcb);
+            }
+        }
+    }
+    DPRINT ("CcUninitializeCacheMap() done, %wZ\n", &FileObject->FileName);
+    ExReleaseFastMutex (&CcCacheViewLock);
+    return TRUE;
 }
 
 





More information about the Ros-diffs mailing list