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