1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     fs_FileSystemBase.h
4 
5   Copyright (C)2009 Nintendo Co., Ltd.  All rights reserved.
6 
7   These coded instructions, statements, and computer programs contain
8   proprietary information of Nintendo of America Inc. and/or Nintendo
9   Company Ltd., and are protected by Federal copyright law. They may
10   not be disclosed to third parties or copied or duplicated in any form,
11   in whole or in part, without the prior written consent of Nintendo.
12 
13   $Rev: 38552 $
14  *---------------------------------------------------------------------------*/
15 
16 #ifndef NN_FS_CTR_MPCORE_FS_FILESYSTEMBASE_H_
17 #define NN_FS_CTR_MPCORE_FS_FILESYSTEMBASE_H_
18 
19 #include <nn/Handle.h>
20 #include <nn/fs/CTR/MPCore/fs_UserFileSystem.h>
21 
22 namespace nn { namespace fs { namespace detail {
23 
24 class FileSystemBaseImpl : public nn::fs::CTR::MPCore::detail::UserFileSystem
25 {
26 };
27 
28 }}}
29 
30 namespace nn { namespace fs {
31 
32 //----------------------------------------
33 //
34 //
35 
36 /* Please see man pages for details
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 */
50 s32 GetRomRequiredMemorySize(size_t maxFile, size_t maxDirectory, bool useCache = true);
51 
52 /* Please see man pages for details
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
70 
71 
72 
73 
74 
75 
76 
77 
78 
79 */
80 Result MountRom(const char* archiveName, size_t maxFile, size_t maxDirectory, void* workingMemory, size_t workingMemorySize, bool useCache = true);
81 Result MountRom(size_t maxFile, size_t maxDirectory, void* workingMemory, size_t workingMemorySize, bool useCache = true);
82 
83 //
84 
85 //----------------------------------------
86 //
87 //
88 
89 /* Please see man pages for details
90 
91 
92 
93 
94 
95 
96 
97 
98 
99 
100 
101 
102 
103 
104 
105 
106 
107 
108 
109 
110 */
111 Result FormatSaveData(size_t maxFiles, size_t maxDirectories, bool isDuplicateAll = false);
112 
113 /* Please see man pages for details
114 
115 
116 
117 
118 
119 
120 
121 
122 
123 
124 
125 
126 */
127 Result GetSaveDataFormatInfo(size_t* maxFiles, size_t* maxDirectories, bool* isDuplicateAll);
128 
129 /* Please see man pages for details
130 
131 
132 
133 
134 
135 
136 
137 
138 
139 
140 
141 
142 
143 
144 
145 
146 
147 
148 
149 
150 
151 */
152 Result MountSaveData(const char* archiveName = "data:");
153 
154 /* Please see man pages for details
155 
156 
157 
158 
159 
160 
161 
162 
163 
164 
165 
166 
167 
168 
169 
170 
171 
172 */
173 Result CommitSaveData(const char* archiveName = "data:");
174 
175 //
176 
177 //----------------------------------------
178 //
179 //
180 
181 /* Please see man pages for details
182 
183 
184 
185 
186 
187 
188 
189 
190 
191 
192 
193 
194 
195 
196 
197 
198 
199 
200 
201 
202 
203 
204 
205 
206 
207 
208 
209 
210 */
211 Result CreateExtSaveData(nn::fs::ExtSaveDataId id, const void* iconData, size_t iconDataSize, u32 entryDirectory, u32 entryFile);
212 
213 /* Please see man pages for details
214 
215 
216 
217 
218 
219 
220 
221 
222 
223 
224 
225 
226 
227 
228 
229 
230 
231 
232 
233 */
234 Result GetExtSaveDataFormatInfo(u32* entryDirectory, u32* entryFile, nn::fs::ExtSaveDataId id);
235 
236 /* Please see man pages for details
237 
238 
239 
240 
241 
242 
243 
244 
245 
246 
247 
248 
249 
250 
251 
252 
253 
254 
255 
256 
257 
258 
259 
260 
261 
262 
263 
264 
265 
266 
267 */
268 Result MountExtSaveData(const char* archiveName, nn::fs::ExtSaveDataId id);
269 
270 /* Please see man pages for details
271 
272 
273 
274 
275 
276 
277 
278 
279 
280 
281 
282 
283 
284 
285 
286 
287 */
288 Result DeleteExtSaveData(ExtSaveDataId id);
289 
290 
291 //
292 
293 /* Please see man pages for details
294 
295 
296 
297 
298 
299 
300 
301 
302 
303 
304 
305 
306 
307 
308 
309 
310 */
311 Result Unmount(const char* archiveName);
312 
313 
314 //----------------------------------------
315 //
316 //
317 
318 /* Please see man pages for details
319 
320 
321 
322 
323 
324 
325 
326 
327 
328 
329 
330 
331 
332 
333 
334 
335 
336 
337 
338 */
339 Result MountSdmc(const char* archiveName = "sdmc:");
340 
341 /* Please see man pages for details
342 
343 
344 
345 
346 
347 
348 
349 
350 
351 
352 
353 
354 
355 */
356 void ForceEnableLatencyEmulation( bool isEmulateEndurance = true, s64 constantWait = 0);
357 
358 /* Please see man pages for details
359 
360 
361 
362 
363 
364 
365 
366 */
367 void ForceDisableLatencyEmulation( void );
368 
369 //
370 
371 // TODO: Other details
372 
373 
374 /* Please see man pages for details
375 
376 
377 
378 
379 
380 
381 
382 
383 
384 
385 
386 
387 
388 
389 
390 
391 */
392 Result GetArchiveFreeBytes(s64* pOut, const char* archiveName);
393 
394 }}
395 
396 
397 #ifdef NN_SWITCH_ENABLE_HOST_IO
398 namespace nn { namespace fs {
399 
400     /* Please see man pages for details
401 
402 
403 
404 
405 
406     */
407     namespace hio {
408 
409 /* Please see man pages for details
410 
411 
412 
413 
414 
415 
416 
417 
418 
419 
420 
421 
422 
423 
424 
425 
426 */
427 Result MountHioArchive(const char* archiveName, const wchar_t* hostPath, size_t maxFile, size_t maxDirectory, void* workingMemory, size_t workingMemorySize);
428 
429 /* Please see man pages for details
430 
431 
432 
433 
434 
435 
436 
437 
438 
439 */
440 s32 GetHioRequiredMemorySize(size_t maxFile, size_t maxDirectory);
441 
442 }}}
443 #endif//NN_SWITCH_ENABLE_HOST_IO
444 
445 #endif
446