Reorganised cache segment data structure
[reactos.git] / reactos / ntoskrnl / include / internal / cc.h
1 #ifndef __INCLUDE_INTERNAL_CC_H
2 #define __INCLUDE_INTERNAL_CC_H
3 /* $Id: cc.h,v 1.4 2001/04/09 02:45:03 dwelch Exp $ */
4 #include <ddk/ntifs.h>
5
6 typedef struct _BCB
7 {
8 LIST_ENTRY CacheSegmentListHead;
9 PFILE_OBJECT FileObject;
10 KSPIN_LOCK BcbLock;
11 ULONG CacheSegmentSize;
12 } BCB;
13
14 typedef struct _CACHE_SEGMENT
15 {
16 PVOID BaseAddress;
17 struct _MEMORY_AREA* MemoryArea;
18 BOOLEAN Valid;
19 LIST_ENTRY BcbListEntry;
20 LIST_ENTRY DirtySegmentListEntry;
21 ULONG FileOffset;
22 KEVENT Lock;
23 ULONG ReferenceCount;
24 PBCB Bcb;
25 } CACHE_SEGMENT;
26
27 VOID STDCALL
28 CcMdlReadCompleteDev (IN PMDL MdlChain,
29 IN PDEVICE_OBJECT DeviceObject);
30 NTSTATUS
31 CcGetCacheSegment(PBCB Bcb,
32 ULONG FileOffset,
33 PULONG BaseOffset,
34 PVOID* BaseAddress,
35 PBOOLEAN UptoDate,
36 PCACHE_SEGMENT* CacheSeg);
37 VOID
38 CcInitView(VOID);
39
40 #endif