FsRtlNumberOfRunsInLargeMcb() implemented (simple).
[reactos.git] / reactos / ntoskrnl / fs / mcb.c
1 /* $Id: mcb.c,v 1.9 2003/04/27 16:25:25 ea Exp $
2 *
3 * reactos/ntoskrnl/fs/mcb.c
4 *
5 */
6 #include <ddk/ntddk.h>
7 #include <ddk/ntifs.h>
8
9 #include <internal/debug.h>
10
11 /**********************************************************************
12 * NAME EXPORTED
13 *
14 * DESCRIPTION
15 *
16 * ARGUMENTS
17 *
18 * RETURN VALUE
19 *
20 * NOTES
21 */
22 BOOLEAN STDCALL
23 FsRtlAddLargeMcbEntry(IN PLARGE_MCB Mcb,
24 IN LONGLONG Vbn,
25 IN LONGLONG Lbn,
26 IN LONGLONG SectorCount)
27 {
28 UNIMPLEMENTED
29 return(FALSE);
30 }
31
32 /* FsRtlAddMcbEntry: Obsolete */
33 BOOLEAN STDCALL
34 FsRtlAddMcbEntry (IN PMCB Mcb,
35 IN VBN Vbn,
36 IN LBN Lbn,
37 IN ULONG SectorCount)
38 {
39 return FsRtlAddLargeMcbEntry(& Mcb->LargeMcb,
40 (LONGLONG) Vbn,
41 (LONGLONG) Lbn,
42 (LONGLONG) SectorCount);
43 }
44
45
46 BOOLEAN STDCALL
47 FsRtlGetNextLargeMcbEntry(IN PLARGE_MCB Mcb,
48 IN ULONG RunIndex,
49 OUT PLONGLONG Vbn,
50 OUT PLONGLONG Lbn,
51 OUT PLONGLONG SectorCount)
52 {
53 UNIMPLEMENTED
54 return(FALSE);
55 }
56
57
58 BOOLEAN STDCALL
59 FsRtlGetNextMcbEntry (IN PMCB Mcb,
60 IN ULONG RunIndex,
61 OUT PVBN Vbn,
62 OUT PLBN Lbn,
63 OUT PULONG SectorCount)
64 {
65 BOOLEAN rc=FALSE;
66 LONGLONG llVbn;
67 LONGLONG llLbn;
68 LONGLONG llSectorCount;
69
70 // FIXME: how should conversion be done
71 // FIXME: between 32 and 64 bits?
72 rc=FsRtlGetNextLargeMcbEntry (& Mcb->LargeMcb,
73 RunIndex,
74 & llVbn,
75 & llLbn,
76 & llSectorCount);
77 return(rc);
78 }
79
80
81 VOID STDCALL
82 FsRtlInitializeLargeMcb(IN PLARGE_MCB Mcb,
83 IN POOL_TYPE PoolType)
84 {
85 UNIMPLEMENTED
86 Mcb->PoolType = PoolType;
87 }
88
89 /* FsRtlInitializeMcb: Obsolete */
90 VOID STDCALL
91 FsRtlInitializeMcb (IN PMCB Mcb,
92 IN POOL_TYPE PoolType)
93 {
94 FsRtlInitializeLargeMcb(& Mcb->LargeMcb, PoolType);
95 }
96
97
98 BOOLEAN STDCALL
99 FsRtlLookupLargeMcbEntry(IN PLARGE_MCB Mcb,
100 IN LONGLONG Vbn,
101 OUT PLONGLONG Lbn OPTIONAL,
102 OUT PLONGLONG SectorCountFromLbn OPTIONAL,
103 OUT PLONGLONG StartingLbn OPTIONAL,
104 OUT PLONGLONG SectorCountFromStartingLbn OPTIONAL,
105 OUT PULONG Index OPTIONAL)
106 {
107 UNIMPLEMENTED
108 return(FALSE);
109 }
110
111
112 BOOLEAN STDCALL
113 FsRtlLookupLastLargeMcbEntry(IN PLARGE_MCB Mcb,
114 OUT PLONGLONG Vbn,
115 OUT PLONGLONG Lbn)
116 {
117 UNIMPLEMENTED
118 return(FALSE);
119 }
120
121
122 BOOLEAN STDCALL
123 FsRtlLookupLastMcbEntry (IN PMCB Mcb,
124 OUT PVBN Vbn,
125 OUT PLBN Lbn)
126 {
127 UNIMPLEMENTED
128 return(FALSE);
129 }
130
131
132 BOOLEAN STDCALL
133 FsRtlLookupMcbEntry (IN PMCB Mcb,
134 IN VBN Vbn,
135 OUT PLBN Lbn,
136 OUT PULONG SectorCount OPTIONAL,
137 OUT PULONG Index)
138 {
139 UNIMPLEMENTED
140 return(FALSE);
141 }
142
143
144 ULONG STDCALL
145 FsRtlNumberOfRunsInLargeMcb(IN PLARGE_MCB Mcb)
146 {
147 ULONG NumberOfRuns;
148 ExAcquireFastMutex (Mcb->FastMutex);
149 NumberOfRuns=Mcb->PairCount;
150 ExReleaseFastMutex (Mcb->FastMutex);
151 return(NumberOfRuns);
152 }
153
154
155 /* FsRtlNumberOfRunsInMcb: Obsolete */
156 ULONG STDCALL
157 FsRtlNumberOfRunsInMcb (IN PMCB Mcb)
158 {
159 return FsRtlNumberOfRunsInLargeMcb(& Mcb->LargeMcb);
160 }
161
162
163 VOID STDCALL
164 FsRtlRemoveLargeMcbEntry(IN PLARGE_MCB Mcb,
165 IN LONGLONG Vbn,
166 IN LONGLONG SectorCount)
167 {
168 UNIMPLEMENTED
169 }
170
171
172 VOID STDCALL
173 FsRtlRemoveMcbEntry (IN PMCB Mcb,
174 IN VBN Vbn,
175 IN ULONG SectorCount)
176 {
177 UNIMPLEMENTED
178 }
179
180
181 BOOLEAN STDCALL
182 FsRtlSplitLargeMcb(IN PLARGE_MCB Mcb,
183 IN LONGLONG Vbn,
184 IN LONGLONG Amount)
185 {
186 UNIMPLEMENTED
187 return(FALSE);
188 }
189
190
191 VOID STDCALL
192 FsRtlTruncateLargeMcb(IN PLARGE_MCB Mcb,
193 IN LONGLONG Vbn)
194 {
195 UNIMPLEMENTED
196 }
197
198
199 /* FsRtlTruncateMcb: Obsolete */
200 VOID STDCALL
201 FsRtlTruncateMcb (IN PMCB Mcb,
202 IN VBN Vbn)
203 {
204 FsRtlTruncateLargeMcb (& Mcb->LargeMcb, (LONGLONG) Vbn);
205 }
206
207
208 VOID STDCALL
209 FsRtlUninitializeLargeMcb(IN PLARGE_MCB Mcb)
210 {
211 UNIMPLEMENTED;
212 }
213
214 /* FsRtlUninitializeMcb: Obsolete */
215 VOID STDCALL
216 FsRtlUninitializeMcb (IN PMCB Mcb)
217 {
218 FsRtlUninitializeLargeMcb(& Mcb->LargeMcb);
219 }
220
221
222 /* EOF */
223