update for HEAD-2003050101
[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 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