1492 if ((share->iMode&EFileWrite)==0) |
1494 if ((share->iMode&EFileWrite)==0) |
1493 return(KErrAccessDenied); |
1495 return(KErrAccessDenied); |
1494 r=share->CheckMount(); |
1496 r=share->CheckMount(); |
1495 if (r!=KErrNone) |
1497 if (r!=KErrNone) |
1496 return(r); |
1498 return(r); |
1497 |
1499 OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILECBFLUSHDATAL1, "this %x", &share->File()); |
1498 TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileCBFlushDataL, EF32TraceUidFileSys, &share->File()); |
|
1499 TRAP(r,share->File().FlushDataL()); |
1500 TRAP(r,share->File().FlushDataL()); |
1500 TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECFileCBFlushDataLRet, EF32TraceUidFileSys, r); |
1501 OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILECBFLUSHDATAL1RET, "r %d", r); |
1501 |
|
1502 return(r); |
1502 return(r); |
1503 } |
1503 } |
1504 |
1504 |
1505 TInt TFsFileFlush::Initialise(CFsRequest* aRequest) |
1505 TInt TFsFileFlush::Initialise(CFsRequest* aRequest) |
1506 // |
1506 // |
1665 return(KErrAccessDenied); |
1665 return(KErrAccessDenied); |
1666 |
1666 |
1667 TUint setAttMask=(TUint)(aRequest->Message().Int0()); |
1667 TUint setAttMask=(TUint)(aRequest->Message().Int0()); |
1668 TUint clearAttMask=(TUint)aRequest->Message().Int1(); |
1668 TUint clearAttMask=(TUint)aRequest->Message().Int1(); |
1669 ValidateAtts(share->File().Att(),setAttMask,clearAttMask); |
1669 ValidateAtts(share->File().Att(),setAttMask,clearAttMask); |
1670 |
1670 OstTraceExt3(TRACE_FILESYSTEM, FSYS_ECFILECBSETENTRYL1, "this %x aSetAttMask %x aClearAttMask %x", (TUint) &share->File(), (TUint) setAttMask, (TUint) clearAttMask); |
1671 TRACE5(UTF::EBorder, UTraceModuleFileSys::ECFileCBSetEntryL, EF32TraceUidFileSys, &share->File(), 0, 0, setAttMask,clearAttMask); |
|
1672 TRAP(r,share->File().SetEntryL(TTime(0),setAttMask,clearAttMask)) |
1671 TRAP(r,share->File().SetEntryL(TTime(0),setAttMask,clearAttMask)) |
1673 TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECFileCBSetEntryLRet, EF32TraceUidFileSys, r); |
1672 OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILECBSETENTRYL1RET, "r %d", r); |
1674 |
|
1675 return(r); |
1673 return(r); |
1676 } |
1674 } |
1677 |
1675 |
1678 |
1676 |
1679 TInt TFsFileSetAtt::Initialise(CFsRequest* aRequest) |
1677 TInt TFsFileSetAtt::Initialise(CFsRequest* aRequest) |
1731 return(KErrAccessDenied); |
1729 return(KErrAccessDenied); |
1732 |
1730 |
1733 TTime time; |
1731 TTime time; |
1734 TPtr8 t((TUint8*)&time,sizeof(TTime)); |
1732 TPtr8 t((TUint8*)&time,sizeof(TTime)); |
1735 aRequest->ReadL(KMsgPtr0,t); |
1733 aRequest->ReadL(KMsgPtr0,t); |
1736 |
1734 OstTraceExt3(TRACE_FILESYSTEM, FSYS_ECFILECBSETENTRYL2, "this %x aSetAttMask %x aClearAttMask %x", (TUint) &share->File(), (TUint) KEntryAttModified, (TUint) 0); |
1737 TRACE5(UTF::EBorder, UTraceModuleFileSys::ECFileCBSetEntryL, EF32TraceUidFileSys, &share->File(), 0, 0, KEntryAttModified,0); |
|
1738 TRAP(r,share->File().SetEntryL(time,KEntryAttModified,0)) |
1735 TRAP(r,share->File().SetEntryL(time,KEntryAttModified,0)) |
1739 TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECFileCBSetEntryLRet, EF32TraceUidFileSys, r); |
1736 OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILECBSETENTRYL2RET, "r %d", r); |
1740 |
|
1741 return(r); |
1737 return(r); |
1742 } |
1738 } |
1743 |
1739 |
1744 |
1740 |
1745 TInt TFsFileSetModified::Initialise(CFsRequest* aRequest) |
1741 TInt TFsFileSetModified::Initialise(CFsRequest* aRequest) |
1780 aRequest->ReadL(KMsgPtr0,t); |
1776 aRequest->ReadL(KMsgPtr0,t); |
1781 TUint setAttMask=(TUint)(aRequest->Message().Int1()|KEntryAttModified); |
1777 TUint setAttMask=(TUint)(aRequest->Message().Int1()|KEntryAttModified); |
1782 TUint clearAttMask=(TUint)aRequest->Message().Int2(); |
1778 TUint clearAttMask=(TUint)aRequest->Message().Int2(); |
1783 ValidateAtts(share->File().Att(),setAttMask,clearAttMask);// Validate attributes |
1779 ValidateAtts(share->File().Att(),setAttMask,clearAttMask);// Validate attributes |
1784 |
1780 |
1785 TRACE5(UTF::EBorder, UTraceModuleFileSys::ECFileCBSetEntryL, EF32TraceUidFileSys, &share->File(), 0, 0, setAttMask,clearAttMask); |
1781 OstTraceExt3(TRACE_FILESYSTEM, FSYS_ECFILECBSETENTRYL3, "this %x aSetAttMask %x aClearAttMask %x", (TUint) &share->File(), (TUint) setAttMask, (TUint) clearAttMask); |
1786 TRAP(r,share->File().SetEntryL(time,setAttMask,clearAttMask)) |
1782 TRAP(r,share->File().SetEntryL(time,setAttMask,clearAttMask)) |
1787 TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECFileCBSetEntryLRet, EF32TraceUidFileSys, r); |
1783 OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILECBSETENTRYL3RET, "r %d", r); |
1788 |
|
1789 return(r); |
1784 return(r); |
1790 } |
1785 } |
1791 |
1786 |
1792 TInt TFsFileSet::Initialise(CFsRequest* aRequest) |
1787 TInt TFsFileSet::Initialise(CFsRequest* aRequest) |
1793 // |
1788 // |
1885 if ((share->iMode&EFileWrite)==0) |
1880 if ((share->iMode&EFileWrite)==0) |
1886 return(KErrAccessDenied); // File must have write permission |
1881 return(KErrAccessDenied); // File must have write permission |
1887 |
1882 |
1888 TPtrC filePath = aRequest->Dest().FullName().Mid(2); |
1883 TPtrC filePath = aRequest->Dest().FullName().Mid(2); |
1889 CFileCB& file = share->File(); |
1884 CFileCB& file = share->File(); |
1890 |
1885 OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILECBRENAMEL, "this %x", (TUint) &file); |
1891 TRACEMULT2(UTF::EBorder, UTraceModuleFileSys::ECFileCBRenameL, EF32TraceUidFileSys, |
1886 OstTraceData(TRACE_FILESYSTEM, FSYS_ECFILECBRENAMELYS_EFILENAME, "FileName %S", filePath.Ptr(), filePath.Length()<<1); |
1892 (TUint) &file, filePath); |
|
1893 TRAP(r,file.RenameL(filePath)); |
1887 TRAP(r,file.RenameL(filePath)); |
1894 TRACERETMULT1(UTF::EBorder, UTraceModuleFileSys::ECFileCBRenameLRet, EF32TraceUidFileSys, r); |
1888 OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILECBRENAMELRET, "r %d", r); |
1895 |
|
1896 // Re-write the file's folded name & re-calculate the hash |
1889 // Re-write the file's folded name & re-calculate the hash |
1897 if (r == KErrNone) |
1890 if (r == KErrNone) |
1898 { |
1891 { |
1899 TFileName filePathF; |
1892 TFileName filePathF; |
1900 filePathF.CopyF(filePath); |
1893 filePathF.CopyF(filePath); |
2335 // as CFileCache may steal it (!) |
2328 // as CFileCache may steal it (!) |
2336 if (FileCache()) |
2329 if (FileCache()) |
2337 FileCache()->Close(); |
2330 FileCache()->Close(); |
2338 if (iBody && iBody->iDeleteOnClose) |
2331 if (iBody && iBody->iDeleteOnClose) |
2339 { |
2332 { |
2340 TRACEMULT2(UTF::EBorder, UTraceModuleFileSys::ECMountCBDeleteL, EF32TraceUidFileSys, DriveNumber(), FileName()); |
2333 OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBDELETEL2, "drive %d", DriveNumber()); |
|
2334 OstTraceData(TRACE_FILESYSTEM, FSYS_ECMOUNTCBDELETEL2_EFILENAME, "FileName %S", FileName().Ptr(), FileName().Length()<<1); |
2341 TInt r; |
2335 TInt r; |
2342 TRAP(r, iMount->DeleteL(FileName())); |
2336 TRAP(r, iMount->DeleteL(FileName())); |
2343 TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECMountCBDeleteLRet, EF32TraceUidFileSys, r); |
2337 OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBDELETEL2RET, "r %d", r); |
2344 } |
2338 } |
2345 |
2339 |
2346 if(iMount) |
2340 if(iMount) |
2347 iMount->Close(); |
2341 iMount->Close(); |
2348 if (iMountLink.iNext!=NULL) |
2342 if (iMountLink.iNext!=NULL) |
2956 } |
2950 } |
2957 |
2951 |
2958 void CFileCB::ReadL(TInt64 aPos,TInt& aLength,TDes8* aDes,const RMessagePtr2& aMessage, TInt aOffset) |
2952 void CFileCB::ReadL(TInt64 aPos,TInt& aLength,TDes8* aDes,const RMessagePtr2& aMessage, TInt aOffset) |
2959 { |
2953 { |
2960 TRACETHREADID(aMessage); |
2954 TRACETHREADID(aMessage); |
2961 TRACE7(UTF::EBorder, UTraceModuleFileSys::ECFileCBReadL, EF32TraceUidFileSys, |
2955 OstTraceExt5(TRACE_FILESYSTEM, FSYS_ECFILECBREADLA, "this %x clientThreadId %x aPos %x:%x aLength %d", (TUint) this, (TUint) threadId, (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), (TUint) aLength); |
2962 this, I64LOW(aPos), I64HIGH(aPos), aLength, aDes, threadId, aOffset); |
|
2963 |
|
2964 iBody->iExtendedFileInterface->ReadL(aPos,aLength,aDes,aMessage,aOffset); |
2956 iBody->iExtendedFileInterface->ReadL(aPos,aLength,aDes,aMessage,aOffset); |
2965 |
2957 |
2966 TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileCBReadLRet, EF32TraceUidFileSys, KErrNone); |
2958 OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILECBREADLRET, "r %d", KErrNone); |
2967 } |
2959 } |
2968 |
2960 |
2969 void CFileCB::WriteL(TInt64 aPos,TInt& aLength,const TDesC8* aDes,const RMessagePtr2& aMessage, TInt aOffset) |
2961 void CFileCB::WriteL(TInt64 aPos,TInt& aLength,const TDesC8* aDes,const RMessagePtr2& aMessage, TInt aOffset) |
2970 { |
2962 { |
2971 TRACETHREADID(aMessage); |
2963 TRACETHREADID(aMessage); |
2972 TRACE7(UTF::EBorder, UTraceModuleFileSys::ECFileCBWriteL, EF32TraceUidFileSys, |
2964 OstTraceExt5(TRACE_FILESYSTEM, FSYS_ECFILECBWRITEL, "this %x clientThreadId %x aPos %x:%x aLength %d", (TUint) this, (TUint) threadId, (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), (TUint) aLength); |
2973 this, I64LOW(aPos), I64HIGH(aPos), aLength, aDes, threadId, aOffset); |
|
2974 |
|
2975 iBody->iExtendedFileInterface->WriteL(aPos,aLength,aDes,aMessage,aOffset); |
2965 iBody->iExtendedFileInterface->WriteL(aPos,aLength,aDes,aMessage,aOffset); |
2976 |
2966 OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILECBWRITELRET, "r %d", KErrNone); |
2977 TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileCBWriteLRet, EF32TraceUidFileSys, KErrNone); |
|
2978 } |
2967 } |
2979 |
2968 |
2980 void CFileCB::SetSizeL(TInt64 aSize) |
2969 void CFileCB::SetSizeL(TInt64 aSize) |
2981 { |
2970 { |
2982 TRACE3(UTF::EBorder, UTraceModuleFileSys::ECFileCBSetSizeL, EF32TraceUidFileSys, this, I64LOW(aSize), I64HIGH(aSize)); |
2971 OstTraceExt3(TRACE_FILESYSTEM, FSYS_ECFILECBSETSIZEL, "this %x aSize %x:%x", (TUint) this, (TUint) I64HIGH(aSize), (TUint) I64LOW(aSize)); |
2983 |
|
2984 iBody->iExtendedFileInterface->SetSizeL(aSize); |
2972 iBody->iExtendedFileInterface->SetSizeL(aSize); |
2985 |
2973 OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILECBSETSIZELRET, "r %d", KErrNone); |
2986 TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileCBSetSizeLRet, EF32TraceUidFileSys, KErrNone); |
|
2987 } |
2974 } |
2988 |
2975 |
2989 TBool CFileCB::ExtendedFileInterfaceSupported() |
2976 TBool CFileCB::ExtendedFileInterfaceSupported() |
2990 { |
2977 { |
2991 return iBody->ExtendedFileInterfaceSupported(); |
2978 return iBody->ExtendedFileInterfaceSupported(); |
3027 return iBody->iDeleteOnClose; |
3014 return iBody->iDeleteOnClose; |
3028 } |
3015 } |
3029 |
3016 |
3030 TInt CFileCB::GetInterfaceTraced(TInt aInterfaceId, TAny*& aInterface, TAny* aInput) |
3017 TInt CFileCB::GetInterfaceTraced(TInt aInterfaceId, TAny*& aInterface, TAny* aInput) |
3031 { |
3018 { |
3032 TRACE2(UTF::EBorder, UTraceModuleFileSys::ECFileCBGetInterface, EF32TraceUidFileSys, aInterfaceId, aInput); |
3019 OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECFILECBGETINTERFACE, "aInterfaceId %d aInput %x", (TUint) aInterfaceId, (TUint) aInput); |
3033 |
|
3034 TInt r = GetInterface(aInterfaceId, aInterface, aInput); |
3020 TInt r = GetInterface(aInterfaceId, aInterface, aInput); |
3035 |
3021 OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECFILECBGETINTERFACERET, "r %d aInterface %x", (TUint) r, (TUint) aInterface); |
3036 TRACERET2(UTF::EBorder, UTraceModuleFileSys::ECFileCBGetInterfaceRet, EF32TraceUidFileSys, r, aInterface); |
|
3037 |
|
3038 return r; |
3022 return r; |
3039 } |
3023 } |
3040 |
3024 |
3041 CFileBody::CFileBody(CFileCB* aFileCB, CFileCB::MExtendedFileInterface* aExtendedFileInterface) |
3025 CFileBody::CFileBody(CFileCB* aFileCB, CFileCB::MExtendedFileInterface* aExtendedFileInterface) |
3042 : iFileCB(aFileCB), |
3026 : iFileCB(aFileCB), |
3113 if (((share->iMode&EFileWrite)) || ((share->File().Att()&KEntryAttModified))) |
3097 if (((share->iMode&EFileWrite)) || ((share->File().Att()&KEntryAttModified))) |
3114 { |
3098 { |
3115 r=share->CheckMount(); |
3099 r=share->CheckMount(); |
3116 if (r!=KErrNone) |
3100 if (r!=KErrNone) |
3117 return(r); |
3101 return(r); |
3118 |
3102 OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILECBFLUSHDATAL2, "this %x", &share->File()); |
3119 TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileCBFlushDataL, EF32TraceUidFileSys, &share->File()); |
|
3120 TRAP(r,share->File().FlushDataL()); |
3103 TRAP(r,share->File().FlushDataL()); |
3121 TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECFileCBFlushDataLRet, EF32TraceUidFileSys, r); |
3104 OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILECBFLUSHDATAL2RET, "r %d", r); |
3122 |
|
3123 if(r!=KErrNone) |
3105 if(r!=KErrNone) |
3124 return(r); |
3106 return(r); |
3125 } |
3107 } |
3126 |
3108 |
3127 RFileClamp clamp; |
3109 RFileClamp clamp; |