19 #include <e32uid.h> |
19 #include <e32uid.h> |
20 #include "sf_file_cache.h" |
20 #include "sf_file_cache.h" |
21 #include <kernel/localise.h> |
21 #include <kernel/localise.h> |
22 #include <f32file.h> |
22 #include <f32file.h> |
23 |
23 |
|
24 #ifdef OST_TRACE_COMPILER_IN_USE |
|
25 #include "sf_sysTraces.h" |
|
26 #endif |
|
27 |
24 typedef CFileSystem*(*TFileSystemNew)(); |
28 typedef CFileSystem*(*TFileSystemNew)(); |
25 extern CProxyDriveFactory* GetExtension(const TDesC& aName); |
29 extern CProxyDriveFactory* GetExtension(const TDesC& aName); |
26 |
30 |
27 #ifndef __WINS__ |
31 #ifndef __WINS__ |
28 extern TBool gInitCacheCheckDrivesAndAddNotifications; |
32 extern TBool gInitCacheCheckDrivesAndAddNotifications; |
37 /** |
41 /** |
38 Default constructor. |
42 Default constructor. |
39 */ |
43 */ |
40 EXPORT_C CFileSystem::CFileSystem() |
44 EXPORT_C CFileSystem::CFileSystem() |
41 { |
45 { |
42 TRACE0(UTF::EBorder, UTraceModuleFileSys::ECFileSystemConstructor, EF32TraceUidFileSys); |
46 OstTrace0(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMCONSTRUCTOR, ""); |
43 TRACE0(UTF::EBorder, UTraceModuleFileSys::ECFileSystemConstructorReturn, EF32TraceUidFileSys); |
47 OstTrace0(TRACE_FILESYSTEM,FILESYS_ECFILESYSTEMCONSTRUCTORRETURN, ""); |
44 } |
48 } |
45 |
49 |
46 /** |
50 /** |
47 Destructor. |
51 Destructor. |
48 */ |
52 */ |
49 EXPORT_C CFileSystem::~CFileSystem() |
53 EXPORT_C CFileSystem::~CFileSystem() |
50 { |
54 { |
51 TRACE0(UTF::EBorder, UTraceModuleFileSys::ECFileSystemDestructor, EF32TraceUidFileSys); |
55 OstTrace0(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMDESTRUCTOR, ""); |
52 TRACE0(UTF::EBorder, UTraceModuleFileSys::ECFileSystemDestructorReturn, EF32TraceUidFileSys); |
56 OstTrace0(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMDESTRUCTORRETURN, ""); |
53 } |
57 } |
54 |
58 |
55 /** |
59 /** |
56 Uninstalls the file system. |
60 Uninstalls the file system. |
57 |
61 |
264 // |
268 // |
265 // Install a file system. |
269 // Install a file system. |
266 // |
270 // |
267 { |
271 { |
268 |
272 |
269 TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileSystemInstall, EF32TraceUidFileSys, aSys); |
273 OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMINSTALL, "this %x", aSys); |
|
274 |
270 TInt r=aSys->Install(); |
275 TInt r=aSys->Install(); |
271 TRACERETMULT2(UTF::EBorder, UTraceModuleFileSys::ECFileSystemInstallRet, EF32TraceUidFileSys, r, aSys->Name()); |
276 |
|
277 OstTraceData(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMINSTALLYS_EFILESYSTEMNAME, "FileSystemName %S", aSys->Name().Ptr(), aSys->Name().Length()<<1); |
|
278 OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMINSTALLRET, "r %d", r); |
272 |
279 |
273 __PRINT1TEMP(_L("InstallFileSystem %S"),aSys->Name()); |
280 __PRINT1TEMP(_L("InstallFileSystem %S"),aSys->Name()); |
274 if (r==KErrNone) |
281 if (r==KErrNone) |
275 {TRAP(r,FileSystems->AddL(aSys,ETrue))} |
282 {TRAP(r,FileSystems->AddL(aSys,ETrue))} |
276 if (r!=KErrNone) |
283 if (r!=KErrNone) |
277 { |
284 { |
278 TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileSystemRemove, EF32TraceUidFileSys, aSys); |
285 OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMREMOVE1, "this %x", aSys); |
279 #ifdef SYMBIAN_FTRACE_ENABLE |
286 #ifdef OST_TRACE_COMPILER_IN_USE |
280 TInt r = |
287 TInt r = |
281 #endif |
288 #endif |
282 aSys->Remove(); |
289 aSys->Remove(); |
283 |
290 |
284 TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECFileSystemRemoveRet, EF32TraceUidFileSys, r); |
291 OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMREMOVE1RET, "r %d", r); |
285 } |
292 } |
286 if (r==KErrNone) |
293 if (r==KErrNone) |
287 aSys->SetLibrary(aLib); |
294 aSys->SetLibrary(aLib); |
288 else |
295 else |
289 aSys->Close(); |
296 aSys->Close(); |
318 |
325 |
319 TFileSystemNew f=(TFileSystemNew)lib.Lookup(1); |
326 TFileSystemNew f=(TFileSystemNew)lib.Lookup(1); |
320 if (!f) |
327 if (!f) |
321 return KErrCorrupt; |
328 return KErrCorrupt; |
322 |
329 |
323 TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileSystemNew, EF32TraceUidFileSys, lib.Handle()); |
330 OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMNEW, "handle %x", lib.Handle()); |
324 CFileSystem* pS=(*f)(); |
331 CFileSystem* pS=(*f)(); |
325 TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileSystemNewRet, EF32TraceUidFileSys, pS); |
332 OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMNEWRET, "fileSystem %x", pS); |
326 if (!pS) |
333 if (!pS) |
327 return KErrNoMemory; |
334 return KErrNoMemory; |
328 TInt r=InstallFileSystem(pS,lib); |
335 TInt r=InstallFileSystem(pS,lib); |
329 if (r==KErrNone && !LocalFileSystemInitialized) |
336 if (r==KErrNone && !LocalFileSystemInitialized) |
330 { |
337 { |
372 |
379 |
373 if(name.CompareF(pFs->Name()) == 0) |
380 if(name.CompareF(pFs->Name()) == 0) |
374 return KErrInUse; |
381 return KErrInUse; |
375 } |
382 } |
376 |
383 |
377 TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileSystemRemove, EF32TraceUidFileSys, pF); |
384 OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMREMOVE2, "this %x", pF); |
|
385 |
378 TInt r=pF->Remove(); |
386 TInt r=pF->Remove(); |
379 TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECFileSystemRemoveRet, EF32TraceUidFileSys, r); |
387 |
|
388 OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMREMOVE2RET, "r %d", r); |
|
389 |
380 if (r!=KErrNone) |
390 if (r!=KErrNone) |
381 return(r); |
391 return(r); |
382 |
392 |
383 RLibrary lib=pF->Library(); |
393 RLibrary lib=pF->Library(); |
384 pF->Close(); |
394 pF->Close(); |