From 0cbe4f28426e5b135a4e2924fadaa32abf36a6cd Mon Sep 17 00:00:00 2001 From: Steven Edwards Date: Sat, 19 Jun 2004 05:04:33 +0000 Subject: [PATCH] added stubs for the Cache Manager by Alex Ionescu. svn path=/trunk/; revision=9719 --- reactos/include/ddk/ccfuncs.h | 38 ++- reactos/ntoskrnl/cc/copy.c | 459 +++++++++++++++++++++++++++++++++- reactos/ntoskrnl/ntoskrnl.edf | 38 ++- 3 files changed, 526 insertions(+), 9 deletions(-) diff --git a/reactos/include/ddk/ccfuncs.h b/reactos/include/ddk/ccfuncs.h index fc179583324..3b624d9279d 100644 --- a/reactos/include/ddk/ccfuncs.h +++ b/reactos/include/ddk/ccfuncs.h @@ -1,14 +1,14 @@ #ifndef _NTOS_CCFUNCS_H #define _NTOS_CCFUNCS_H -/* $Id: ccfuncs.h,v 1.8 2002/09/08 10:47:43 chorns Exp $ */ +/* $Id: ccfuncs.h,v 1.9 2004/06/19 05:04:08 sedwards Exp $ */ /* exported variables */ -/* -CcFastMdlReadWait -CcFastReadNotPossible -CcFastReadWait -*/ +/* these should be in the KPCR */ + +extern ULONG CcFastMdlReadWait; +extern ULONG CcFastReadNotPossible; +extern ULONG CcFastReadWait; BOOLEAN STDCALL @@ -101,6 +101,13 @@ CcGetFileObjectFromSectionPtrs ( IN PSECTION_OBJECT_POINTERS SectionObjectPointer ); +LARGE_INTEGER +STDCALL +CcGetFlushedValidData ( + IN PSECTION_OBJECT_POINTERS SectionObjectPointer, + IN BOOLEAN BcbListHeld + ); + LARGE_INTEGER STDCALL CcGetLsnForFileObject ( @@ -152,6 +159,13 @@ CcMdlReadComplete ( IN PMDL MdlChain ); +VOID +STDCALL +CcMdlWriteAbort ( + IN PFILE_OBJECT FileObject, + IN PMDL MdlChain + ); + VOID STDCALL CcMdlWriteComplete ( @@ -226,6 +240,12 @@ CcRepinBcb ( IN PVOID Bcb ); +VOID +STDCALL +CcRemapBcb ( + IN PVOID Bcb + ); + VOID STDCALL CcScheduleReadAhead ( @@ -314,6 +334,12 @@ CcUnpinRepinnedBcb ( IN PIO_STATUS_BLOCK IoStatus ); +NTSTATUS +STDCALL +CcWaitForCurrentLazyWriterActivity ( + VOID + ); + BOOLEAN STDCALL CcZeroData ( diff --git a/reactos/ntoskrnl/cc/copy.c b/reactos/ntoskrnl/cc/copy.c index e91f47b5086..0327a617d78 100644 --- a/reactos/ntoskrnl/cc/copy.c +++ b/reactos/ntoskrnl/cc/copy.c @@ -1,4 +1,4 @@ -/* $Id: copy.c,v 1.23 2004/06/06 08:36:30 hbirr Exp $ +/* $Id: copy.c,v 1.24 2004/06/19 05:04:33 sedwards Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -43,6 +43,10 @@ void* _alloca(size_t size); #error Unknown compiler for alloca intrinsic stack allocation "function" #endif +ULONG EXPORTED CcFastMdlReadWait; +ULONG EXPORTED CcFastReadNotPossible; +ULONG EXPORTED CcFastReadWait; + /* FUNCTIONS *****************************************************************/ VOID @@ -280,6 +284,459 @@ WriteCacheSegment(PCACHE_SEGMENT CacheSeg) return(STATUS_SUCCESS); } +/* STUBS */ + +/* + * @unimplemented + */ +BOOLEAN STDCALL +CcCanIWrite ( + IN PFILE_OBJECT FileObject, + IN ULONG BytesToWrite, + IN BOOLEAN Wait, + IN BOOLEAN Retrying) +{ + UNIMPLEMENTED; + return FALSE; +} + +/* + * @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 + */ +BOOLEAN +STDCALL +CcFastCopyRead ( + IN PFILE_OBJECT FileObject, + IN ULONG FileOffset, + IN ULONG Length, + IN ULONG PageCount, + OUT PVOID Buffer, + OUT PIO_STATUS_BLOCK IoStatus + ) +{ + UNIMPLEMENTED; + return FALSE; +} +/* + * @unimplemented + */ +BOOLEAN +STDCALL +CcFastCopyWrite ( + IN PFILE_OBJECT FileObject, + IN PLARGE_INTEGER FileOffset, + IN ULONG Length, + IN PVOID Buffer + ) +{ + UNIMPLEMENTED; + return FALSE; +} +/* + * @unimplemented + */ +LARGE_INTEGER +STDCALL +CcGetDirtyPages ( + IN PVOID LogHandle, + IN PDIRTY_PAGE_ROUTINE DirtyPageRoutine, + IN PVOID Context1, + IN PVOID Context2 + ) +{ + UNIMPLEMENTED; + + LARGE_INTEGER i; + i.QuadPart = 0; + return i; +} +/* + * @unimplemented + */ +PFILE_OBJECT +STDCALL +CcGetFileObjectFromBcb ( + IN PVOID Bcb + ) +{ + UNIMPLEMENTED; + return 0; +} + +/* + * @unimplemented + */ +VOID +STDCALL +CcInitializeCacheMap ( + IN PFILE_OBJECT FileObject, + IN PCC_FILE_SIZES FileSizes, + IN BOOLEAN PinAccess, + IN PCACHE_MANAGER_CALLBACKS CallBacks, + IN PVOID LazyWriterContext + ) +{ + UNIMPLEMENTED; +} + +/* + * @unimplemented + */ +BOOLEAN +STDCALL +CcIsThereDirtyData ( + IN PVPB Vpb + ) +{ + UNIMPLEMENTED; + return FALSE; +} + + +/* + * @unimplemented + */ +LARGE_INTEGER +STDCALL +CcGetLsnForFileObject ( + IN PFILE_OBJECT FileObject, + OUT PLARGE_INTEGER OldestLsn OPTIONAL + ) +{ + UNIMPLEMENTED; + + LARGE_INTEGER i; + i.QuadPart = 0; + return i; +} + +/* + * @unimplemented + */ +LARGE_INTEGER +STDCALL +CcGetFlushedValidData ( + IN PSECTION_OBJECT_POINTERS SectionObjectPointer, + IN BOOLEAN BcbListHeld + ) +{ + UNIMPLEMENTED; + + LARGE_INTEGER i; + i.QuadPart = 0; + return i; +} + + +/* + * @unimplemented + */ +VOID +STDCALL +CcMdlRead ( + IN PFILE_OBJECT FileObject, + IN PLARGE_INTEGER FileOffset, + IN ULONG Length, + OUT PMDL * MdlChain, + OUT PIO_STATUS_BLOCK IoStatus + ) +{ + UNIMPLEMENTED; +} + +/* + * @unimplemented + */ +VOID +STDCALL +CcMdlWriteComplete ( + IN PFILE_OBJECT FileObject, + IN PLARGE_INTEGER FileOffset, + IN PMDL MdlChain + ) +{ + UNIMPLEMENTED; +} + +/* + * @unimplemented + */ +VOID +STDCALL +CcMdlWriteAbort ( + IN PFILE_OBJECT FileObject, + IN PMDL MdlChain + ) +{ + UNIMPLEMENTED; +} + + +/* + * @unimplemented + */ +BOOLEAN +STDCALL +CcPinMappedData ( + IN PFILE_OBJECT FileObject, + IN PLARGE_INTEGER FileOffset, + IN ULONG Length, + IN BOOLEAN Wait, + OUT PVOID * Bcb + ) +{ + UNIMPLEMENTED; + return FALSE; +} + +/* + * @unimplemented + */ +BOOLEAN +STDCALL +CcPinRead ( + IN PFILE_OBJECT FileObject, + IN PLARGE_INTEGER FileOffset, + IN ULONG Length, + IN BOOLEAN Wait, + OUT PVOID * Bcb, + OUT PVOID * Buffer + ) +{ + UNIMPLEMENTED; + return FALSE; +} + +/* + * @unimplemented + */ +VOID +STDCALL +CcPrepareMdlWrite ( + IN PFILE_OBJECT FileObject, + IN PLARGE_INTEGER FileOffset, + IN ULONG Length, + OUT PMDL * MdlChain, + OUT PIO_STATUS_BLOCK IoStatus + ) +{ + UNIMPLEMENTED; +} + +/* + * @unimplemented + */ +BOOLEAN +STDCALL +CcPreparePinWrite ( + IN PFILE_OBJECT FileObject, + IN PLARGE_INTEGER FileOffset, + IN ULONG Length, + IN BOOLEAN Zero, + IN BOOLEAN Wait, + OUT PVOID * Bcb, + OUT PVOID * Buffer + ) +{ + UNIMPLEMENTED; + return FALSE; +} + +/* + * @unimplemented + */ +BOOLEAN +STDCALL +CcPurgeCacheSection ( + IN PSECTION_OBJECT_POINTERS SectionObjectPointer, + IN PLARGE_INTEGER FileOffset OPTIONAL, + IN ULONG Length, + IN BOOLEAN UninitializeCacheMaps + ) +{ + UNIMPLEMENTED; + return FALSE; +} + +/* + * @unimplemented + */ +VOID +STDCALL +CcRepinBcb ( + IN PVOID Bcb + ) +{ + UNIMPLEMENTED; +} + +/* + * @unimplemented + */ +VOID +STDCALL +CcRemapBcb ( + IN PVOID Bcb + ) +{ + UNIMPLEMENTED; +} + +/* + * @unimplemented + */ +VOID +STDCALL +CcScheduleReadAhead ( + IN PFILE_OBJECT FileObject, + IN PLARGE_INTEGER FileOffset, + IN ULONG Length + ) +{ + UNIMPLEMENTED; +} + +/* + * @unimplemented + */ +VOID +STDCALL +CcSetAdditionalCacheAttributes ( + IN PFILE_OBJECT FileObject, + IN BOOLEAN DisableReadAhead, + IN BOOLEAN DisableWriteBehind + ) +{ + UNIMPLEMENTED; +} + +/* + * @unimplemented + */ +VOID +STDCALL +CcSetBcbOwnerPointer ( + IN PVOID Bcb, + IN PVOID Owner + ) +{ + UNIMPLEMENTED; +} + +/* + * @unimplemented + */ +VOID +STDCALL +CcSetDirtyPageThreshold ( + IN PFILE_OBJECT FileObject, + IN ULONG DirtyPageThreshold + ) +{ + UNIMPLEMENTED; +} + +/* + * @unimplemented + */ +VOID +STDCALL +CcSetLogHandleForFile ( + IN PFILE_OBJECT FileObject, + IN PVOID LogHandle, + IN PFLUSH_TO_LSN FlushToLsnRoutine + ) +{ + UNIMPLEMENTED; +} + +/* + * @unimplemented + */ +VOID +STDCALL +CcSetReadAheadGranularity ( + IN PFILE_OBJECT FileObject, + IN ULONG Granularity + ) +{ + UNIMPLEMENTED; +} + +/* + * @unimplemented + */ +BOOLEAN +STDCALL +CcUninitializeCacheMap ( + IN PFILE_OBJECT FileObject, + IN PLARGE_INTEGER TruncateSize OPTIONAL, + IN PCACHE_UNINITIALIZE_EVENT UninitializeCompleteEvent OPTIONAL + ) +{ + UNIMPLEMENTED; + return FALSE; +} + +/* + * @unimplemented + */ +VOID +STDCALL +CcUnpinDataForThread ( + IN PVOID Bcb, + IN ERESOURCE_THREAD ResourceThreadId + ) +{ + UNIMPLEMENTED; +} + +/* + * @unimplemented + */ +VOID +STDCALL +CcUnpinRepinnedBcb ( + IN PVOID Bcb, + IN BOOLEAN WriteThrough, + IN PIO_STATUS_BLOCK IoStatus + ) +{ + UNIMPLEMENTED; +} + +/* + * @unimplemented + */ +NTSTATUS +STDCALL +CcWaitForCurrentLazyWriterActivity ( + VOID + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + +/* STUBS END!!! */ + /* * @implemented */ diff --git a/reactos/ntoskrnl/ntoskrnl.edf b/reactos/ntoskrnl/ntoskrnl.edf index e05d6846560..00bbdce0fda 100644 --- a/reactos/ntoskrnl/ntoskrnl.edf +++ b/reactos/ntoskrnl/ntoskrnl.edf @@ -1,4 +1,4 @@ -; $Id: ntoskrnl.edf,v 1.170 2004/06/13 10:35:53 navaraf Exp $ +; $Id: ntoskrnl.edf,v 1.171 2004/06/19 05:04:33 sedwards Exp $ ; ; reactos/ntoskrnl/ntoskrnl.def ; @@ -6,16 +6,50 @@ ; EXPORTS CcRosInitializeFileCache=CcRosInitializeFileCache@8 -CcMdlReadComplete=CcMdlReadComplete@8 CcRosReleaseFileCache=CcRosReleaseFileCache@4 +CcCanIWrite=CcCanIWrite@16 CcCopyRead=CcCopyRead@24 CcCopyWrite=CcCopyWrite@20 +CcDeferWrite=CcDeferWrite@24 +CcFastCopyRead=CcFastCopyRead@24 +CcFastCopyWrite=CcFastCopyWrite@16 CcFlushCache=CcFlushCache@16 +CcGetDirtyPages=CcGetDirtyPages@16 +CcGetFileObjectFromBcb=CcGetFileObjectFromBcb@4 CcGetFileObjectFromSectionPtrs=CcGetFileObjectFromSectionPtrs@4 +CcGetFlushedValidData=CcGetFlushedValidData@8 +CcGetLsnForFileObject=CcGetLsnForFileObject@8 +CcInitializeCacheMap=CcInitializeCacheMap@20 +CcIsThereDirtyData=CcIsThereDirtyData@4 +CcFastMdlReadWait DATA +CcFastReadNotPossible DATA +CcFastReadWait DATA CcMapData=CcMapData@24 +CcMdlRead=CcMdlRead@20 +CcMdlReadComplete=CcMdlReadComplete@8 +CcMdlWriteAbort=CcMdlWriteAbort@8 +CcMdlWriteComplete=CcMdlWriteComplete@12 +CcPinMappedData=CcPinMappedData@20 +CcPinRead=CcPinRead@24 +CcPrepareMdlWrite=CcPrepareMdlWrite@20 +CcPreparePinWrite=CcPreparePinWrite@28 +CcPurgeCacheSection=CcPurgeCacheSection@16 +CcRemapBcb=CcRemapBcb@4 +CcRepinBcb=CcRepinBcb@4 +CcScheduleReadAhead=CcScheduleReadAhead@12 +CcSetAdditionalCacheAttributes=CcSetAdditionalCacheAttributes@12 +CcSetBcbOwnerPointer=CcSetBcbOwnerPointer@8 +CcSetDirtyPageThreshold=CcSetDirtyPageThreshold@8 CcSetDirtyPinnedData=CcSetDirtyPinnedData@8 +CcSetLogHandleForFile=CcSetLogHandleForFile@12 +CcSetReadAheadGranularity=CcSetReadAheadGranularity@8 +CcUninitializeCacheMap=CcUninitializeCacheMap@12 CcUnpinData=CcUnpinData@4 +CcUnpinDataForThread=CcUnpinDataForThread@8 +CcUnpinRepinnedBcb=CcUnpinRepinnedBcb@12 +CcWaitForCurrentLazyWriterActivity=CcWaitForCurrentLazyWriterActivity@0 CcSetFileSizes=CcSetFileSizes@8 +CcUnpinData=CcUnpinData@4 CcZeroData=CcZeroData@16 DbgBreakPoint=DbgBreakPoint@0 DbgBreakPointWithStatus=DbgBreakPointWithStatus@4