[CMAKE]: Ignore "build" directory.
[reactos.git] / include / ndk / cctypes.h
1 /*++ NDK Version: 0098
2
3 Copyright (c) Alex Ionescu. All rights reserved.
4
5 Header Name:
6
7 cctypes.h
8
9 Abstract:
10
11 Type definitions for the Cache Controller.
12
13 Author:
14
15 Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
16
17 --*/
18
19 #ifndef _CCTYPES_H
20 #define _CCTYPES_H
21
22 //
23 // Dependencies
24 //
25 #include <umtypes.h>
26
27 #ifndef NTOS_MODE_USER
28
29 //
30 // Kernel Exported CcData
31 //
32 extern ULONG NTSYSAPI CcFastReadNotPossible;
33 extern ULONG NTSYSAPI CcFastReadWait;
34 extern ULONG NTSYSAPI CcFastReadResourceMiss;
35 extern ULONG NTSYSAPI CcFastReadNoWait;
36 extern ULONG NTSYSAPI CcFastMdlReadNotPossible;
37
38 //
39 // Virtual Address Control BLock
40 //
41 typedef struct _VACB
42 {
43 PVOID BaseAddress;
44 struct _SHARED_CACHE_MAP *SharedCacheMap;
45 union
46 {
47 LARGE_INTEGER FileOffset;
48 USHORT ActiveCount;
49 } Overlay;
50 LIST_ENTRY LruList;
51 } VACB, *PVACB;
52
53 //
54 // Private Cache Map Structure and Flags
55 //
56 typedef struct _PRIVATE_CACHE_MAP_FLAGS
57 {
58 ULONG DontUse:16;
59 ULONG ReadAheadActive:1;
60 ULONG ReadAheadEnabled:1;
61 ULONG Available:14;
62 } PRIVATE_CACHE_MAP_FLAGS;
63
64 typedef struct _PRIVATE_CACHE_MAP
65 {
66 union
67 {
68 CSHORT NodeTypeCode;
69 PRIVATE_CACHE_MAP_FLAGS Flags;
70 ULONG UlongFlags;
71 };
72 ULONG ReadAheadMask;
73 PFILE_OBJECT FileObject;
74 LARGE_INTEGER FileOffset1;
75 LARGE_INTEGER BeyondLastByte1;
76 LARGE_INTEGER FileOffset2;
77 LARGE_INTEGER BeyondLastByte2;
78 LARGE_INTEGER ReadAheadOffset[2];
79 ULONG ReadAheadLength[2];
80 KSPIN_LOCK ReadAheadSpinLock;
81 LIST_ENTRY PrivateLinks;
82 } PRIVATE_CACHE_MAP, *PPRIVATE_CACHE_MAP;
83
84 #ifdef _NTIFS_INCLUDED_
85
86 //
87 // Shared Cache Map
88 //
89 typedef struct _SHARED_CACHE_MAP
90 {
91 SHORT NodeTypeCode;
92 SHORT NodeByteSize;
93 ULONG OpenCount;
94 LARGE_INTEGER FileSize;
95 LIST_ENTRY BcbList;
96 LARGE_INTEGER SectionSize;
97 LARGE_INTEGER ValidDataLength;
98 LARGE_INTEGER ValidDataGoal;
99 PVACB InitialVacbs[4];
100 PVACB *Vacbs;
101 PFILE_OBJECT FileObject;
102 PVACB ActiveVacb;
103 PVOID NeedToZero;
104 ULONG ActivePage;
105 ULONG NeedToZeroPage;
106 ULONG ActiveVacbSpinLock;
107 ULONG VacbActiveCount;
108 ULONG DirtyPages;
109 LIST_ENTRY SharedCacheMapLinks;
110 ULONG Flags;
111 ULONG Status;
112 PMBCB Mbcb;
113 PVOID Section;
114 PKEVENT CreateEvent;
115 PKEVENT WaitOnActiveCount;
116 ULONG PagesToWrite;
117 LONGLONG BeyondLastFlush;
118 PCACHE_MANAGER_CALLBACKS Callbacks;
119 PVOID LazyWriteContext;
120 LIST_ENTRY PrivateList;
121 PVOID LogHandle;
122 PVOID FlushToLsnRoutine;
123 ULONG DirtyPageThreshold;
124 ULONG LazyWritePassCount;
125 PCACHE_UNINITIALIZE_EVENT UninitializeEvent;
126 PVACB NeedToZeroVacb;
127 ULONG BcbSpinLock;
128 PVOID Reserved;
129 KEVENT Event;
130 EX_PUSH_LOCK VacbPushLock;
131 PRIVATE_CACHE_MAP PrivateCacheMap;
132 } SHARED_CACHE_MAP, *PSHARED_CACHE_MAP;
133
134 #endif /* _NTIFS_INCLUDED_ */
135 #endif /* NTOS_MODE_USER */
136 #endif /* _CCTYPES_H */
137