/* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel * FILE: ntoskrnl/cc/cacheman.c * PURPOSE: Cache manager * * PROGRAMMERS: David Welch (welch@cwcom.net) */ /* INCLUDES *****************************************************************/ #include #define NDEBUG #include BOOLEAN CcPfEnablePrefetcher; PFSN_PREFETCHER_GLOBALS CcPfGlobals; /* FUNCTIONS *****************************************************************/ VOID NTAPI INIT_FUNCTION CcPfInitializePrefetcher(VOID) { /* Notify debugger */ DbgPrintEx(DPFLTR_PREFETCHER_ID, DPFLTR_TRACE_LEVEL, "CCPF: InitializePrefetecher()\n"); /* Setup the Prefetcher Data */ InitializeListHead(&CcPfGlobals.ActiveTraces); InitializeListHead(&CcPfGlobals.CompletedTraces); ExInitializeFastMutex(&CcPfGlobals.CompletedTracesLock); /* FIXME: Setup the rest of the prefetecher */ } BOOLEAN NTAPI INIT_FUNCTION CcInitializeCacheManager(VOID) { CcInitView(); return TRUE; } /* * @unimplemented */ LARGE_INTEGER NTAPI CcGetFlushedValidData ( IN PSECTION_OBJECT_POINTERS SectionObjectPointer, IN BOOLEAN BcbListHeld ) { LARGE_INTEGER i; UNIMPLEMENTED; i.QuadPart = 0; return i; } /* * @unimplemented */ PVOID NTAPI CcRemapBcb ( IN PVOID Bcb ) { UNIMPLEMENTED; return 0; } /* * @unimplemented */ VOID NTAPI CcScheduleReadAhead ( IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length ) { UNIMPLEMENTED; } /* * @unimplemented */ VOID NTAPI CcSetAdditionalCacheAttributes ( IN PFILE_OBJECT FileObject, IN BOOLEAN DisableReadAhead, IN BOOLEAN DisableWriteBehind ) { CCTRACE(CC_API_DEBUG, "FileObject=%p DisableReadAhead=%d DisableWriteBehind=%d\n", FileObject, DisableReadAhead, DisableWriteBehind); UNIMPLEMENTED; } /* * @unimplemented */ VOID NTAPI CcSetBcbOwnerPointer ( IN PVOID Bcb, IN PVOID Owner ) { PINTERNAL_BCB iBcb = Bcb; CCTRACE(CC_API_DEBUG, "Bcb=%p Owner=%p\n", Bcb, Owner); if (!ExIsResourceAcquiredExclusiveLite(&iBcb->Lock) && !ExIsResourceAcquiredSharedLite(&iBcb->Lock)) { DPRINT1("Current thread doesn't own resource!\n"); return; } ExSetResourceOwnerPointer(&iBcb->Lock, Owner); } /* * @unimplemented */ VOID NTAPI CcSetDirtyPageThreshold ( IN PFILE_OBJECT FileObject, IN ULONG DirtyPageThreshold ) { CCTRACE(CC_API_DEBUG, "FileObject=%p DirtyPageThreshold=%lu\n", FileObject, DirtyPageThreshold); UNIMPLEMENTED; } /* * @unimplemented */ VOID NTAPI CcSetReadAheadGranularity ( IN PFILE_OBJECT FileObject, IN ULONG Granularity ) { CCTRACE(CC_API_DEBUG, "FileObject=%p Granularity=%lu\n", FileObject, Granularity); UNIMPLEMENTED; }