Initial revision
[reactos.git] / reactos / include / ddk / cctypes.h
1 #ifndef __INCLUDE_DDK_CCTYPES_H
2 #define __INCLUDE_DDK_CCTYPES_H
3
4 typedef struct _CCB
5 {
6 ULONG BlockNr;
7 PVOID Buffer;
8 ULONG State;
9 ULONG ActiveReaders;
10 BOOLEAN WriteInProgress;
11 BOOLEAN ActiveWriter;
12 ULONG References;
13 KEVENT FinishedNotify;
14 KSPIN_LOCK Lock;
15 BOOLEAN Modified;
16 LIST_ENTRY Entry;
17 } CCB, *PCCB;
18
19 enum
20 {
21 CCB_INVALID,
22 CCB_NOT_CACHED,
23 CCB_CACHED,
24 CCB_DELETE_PENDING,
25 };
26
27 typedef struct _DCCB
28 /*
29 * PURPOSE: Device cache control block
30 */
31 {
32 PCCB* HashTbl;
33 ULONG HashTblSize;
34 KSPIN_LOCK HashTblLock;
35 PDEVICE_OBJECT DeviceObject;
36 ULONG SectorSize;
37 LIST_ENTRY CcbListHead;
38 KSPIN_LOCK CcbListLock;
39 ULONG NrCcbs;
40 ULONG NrModifiedCcbs;
41 } DCCB, *PDCCB;
42
43 #endif /* __INCLUDE_DDK_CCTYPES_H */