update for HEAD-2003091401
[reactos.git] / ntoskrnl / fs / mcb.c
1 /* $Id$
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  * @unimplemented
23  */
24 BOOLEAN STDCALL
25 FsRtlAddLargeMcbEntry(IN PLARGE_MCB Mcb,
26                       IN LONGLONG Vbn,
27                       IN LONGLONG Lbn,
28                       IN LONGLONG SectorCount)
29 {
30   UNIMPLEMENTED
31   return(FALSE);
32 }
33
34 /*
35  * FsRtlAddMcbEntry: Obsolete
36  *
37  * @implemented
38  */
39 BOOLEAN STDCALL
40 FsRtlAddMcbEntry (IN PMCB     Mcb,
41                   IN VBN      Vbn,
42                   IN LBN      Lbn,
43                   IN ULONG    SectorCount)
44 {
45   return FsRtlAddLargeMcbEntry(& Mcb->LargeMcb,
46                                (LONGLONG) Vbn,
47                                (LONGLONG) Lbn,
48                                (LONGLONG) SectorCount);
49 }
50
51 /*
52  * @unimplemented
53  */
54 BOOLEAN STDCALL
55 FsRtlGetNextLargeMcbEntry(IN PLARGE_MCB Mcb,
56                           IN ULONG RunIndex,
57                           OUT PLONGLONG Vbn,
58                           OUT PLONGLONG Lbn,
59                           OUT PLONGLONG SectorCount)
60 {
61   UNIMPLEMENTED
62   return(FALSE);
63 }
64
65
66 /*
67  * @unimplemented
68  */
69 BOOLEAN STDCALL
70 FsRtlGetNextMcbEntry (IN PMCB     Mcb,
71                       IN ULONG    RunIndex,
72                       OUT PVBN    Vbn,
73                       OUT PLBN    Lbn,
74                       OUT PULONG  SectorCount)
75 {
76   BOOLEAN  rc=FALSE;
77   LONGLONG llVbn;
78   LONGLONG llLbn;
79   LONGLONG llSectorCount;
80
81   // FIXME: how should conversion be done
82   // FIXME: between 32 and 64 bits?
83   rc=FsRtlGetNextLargeMcbEntry (& Mcb->LargeMcb,
84                                 RunIndex,
85                                 & llVbn,
86                                 & llLbn,
87                                 & llSectorCount);
88   return(rc);
89 }
90
91
92 /*
93  * @unimplemented
94  */
95 VOID STDCALL
96 FsRtlInitializeLargeMcb(IN PLARGE_MCB Mcb,
97                         IN POOL_TYPE PoolType)
98 {
99   UNIMPLEMENTED
100   Mcb->PoolType = PoolType;
101 }
102
103 /*
104  * FsRtlInitializeMcb: Obsolete
105  * @implemented
106  */
107 VOID STDCALL
108 FsRtlInitializeMcb (IN PMCB         Mcb,
109                     IN POOL_TYPE    PoolType)
110 {
111   FsRtlInitializeLargeMcb(& Mcb->LargeMcb, PoolType);
112 }
113
114
115 /*
116  * @unimplemented
117  */
118 BOOLEAN STDCALL
119 FsRtlLookupLargeMcbEntry(IN PLARGE_MCB Mcb,
120                          IN LONGLONG Vbn,
121                          OUT PLONGLONG Lbn OPTIONAL,
122                          OUT PLONGLONG SectorCountFromLbn OPTIONAL,
123                          OUT PLONGLONG StartingLbn OPTIONAL,
124                          OUT PLONGLONG SectorCountFromStartingLbn OPTIONAL,
125                          OUT PULONG Index OPTIONAL)
126 {
127   UNIMPLEMENTED
128   return(FALSE);
129 }
130
131
132 /*
133  * @unimplemented
134  */
135 BOOLEAN STDCALL
136 FsRtlLookupLastLargeMcbEntry(IN PLARGE_MCB Mcb,
137                              OUT PLONGLONG Vbn,
138                              OUT PLONGLONG Lbn)
139 {
140   UNIMPLEMENTED
141   return(FALSE);
142 }
143
144
145 /*
146  * @unimplemented
147  */
148 BOOLEAN STDCALL
149 FsRtlLookupLastMcbEntry (IN PMCB     Mcb,
150                          OUT PVBN    Vbn,
151                          OUT PLBN    Lbn)
152 {
153   UNIMPLEMENTED
154   return(FALSE);
155 }
156
157
158 /*
159  * @unimplemented
160  */
161 BOOLEAN STDCALL
162 FsRtlLookupMcbEntry (IN PMCB     Mcb,
163                      IN VBN      Vbn,
164                      OUT PLBN    Lbn,
165                      OUT PULONG  SectorCount OPTIONAL,
166                      OUT PULONG  Index)
167 {
168   UNIMPLEMENTED
169   return(FALSE);
170 }
171
172
173 /*
174  * @implemented
175  */
176 ULONG STDCALL
177 FsRtlNumberOfRunsInLargeMcb(IN PLARGE_MCB Mcb)
178 {
179   ULONG NumberOfRuns;
180   ExAcquireFastMutex (Mcb->FastMutex);
181   NumberOfRuns=Mcb->PairCount;
182   ExReleaseFastMutex (Mcb->FastMutex);
183   return(NumberOfRuns);
184 }
185
186
187 /*
188  * FsRtlNumberOfRunsInMcb: Obsolete
189  *
190  * @implemented
191  */
192 ULONG STDCALL
193 FsRtlNumberOfRunsInMcb (IN PMCB Mcb)
194 {
195   return FsRtlNumberOfRunsInLargeMcb(& Mcb->LargeMcb);
196 }
197
198
199 /*
200  * @unimplemented
201  */
202 VOID STDCALL
203 FsRtlRemoveLargeMcbEntry(IN PLARGE_MCB Mcb,
204                          IN LONGLONG Vbn,
205                          IN LONGLONG SectorCount)
206 {
207   UNIMPLEMENTED
208 }
209
210
211 /*
212  * @unimplemented
213  */
214 VOID STDCALL
215 FsRtlRemoveMcbEntry (IN PMCB     Mcb,
216                      IN VBN      Vbn,
217                      IN ULONG    SectorCount)
218 {
219   UNIMPLEMENTED
220 }
221
222
223 /*
224  * @unimplemented
225  */
226 BOOLEAN STDCALL
227 FsRtlSplitLargeMcb(IN PLARGE_MCB Mcb,
228                    IN LONGLONG Vbn,
229                    IN LONGLONG Amount)
230 {
231   UNIMPLEMENTED
232   return(FALSE);
233 }
234
235
236 /*
237  * @unimplemented
238  */
239 VOID STDCALL
240 FsRtlTruncateLargeMcb(IN PLARGE_MCB Mcb,
241                       IN LONGLONG Vbn)
242 {
243   UNIMPLEMENTED
244 }
245
246
247 /*
248  * FsRtlTruncateMcb: Obsolete
249  *
250  * @implemented
251  */
252 VOID STDCALL
253 FsRtlTruncateMcb (IN PMCB Mcb,
254                   IN VBN  Vbn)
255 {
256   FsRtlTruncateLargeMcb (& Mcb->LargeMcb, (LONGLONG) Vbn);
257 }
258
259
260 /*
261  * @unimplemented
262  */
263 VOID STDCALL
264 FsRtlUninitializeLargeMcb(IN PLARGE_MCB Mcb)
265 {
266   UNIMPLEMENTED;
267 }
268
269 /*
270  * FsRtlUninitializeMcb: Obsolete
271  *
272  * @implemented
273  */
274 VOID STDCALL
275 FsRtlUninitializeMcb (IN PMCB Mcb)
276 {
277   FsRtlUninitializeLargeMcb(& Mcb->LargeMcb);
278 }
279
280
281 /* EOF */
282