author | Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> |
Sat, 20 Feb 2010 00:10:51 +0200 | |
branch | RCL_3 |
changeset 62 | 4a8fed1c0ef6 |
parent 15 | 4122176ea935 |
permissions | -rw-r--r-- |
0 | 1 |
// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies). |
2 |
// All rights reserved. |
|
3 |
// This component and the accompanying materials are made available |
|
4 |
// under the terms of the License "Eclipse Public License v1.0" |
|
5 |
// which accompanies this distribution, and is available |
|
6 |
// at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
7 |
// |
|
8 |
// Initial Contributors: |
|
9 |
// Nokia Corporation - initial contribution. |
|
10 |
// |
|
11 |
// Contributors: |
|
12 |
// |
|
13 |
// Description: |
|
14 |
// f32\sfat\inc\fat_dir_entry.h |
|
15 |
// FAT directory entry related stuff definitions. |
|
16 |
// |
|
17 |
// |
|
18 |
||
19 |
/** |
|
20 |
@file |
|
21 |
@internalTechnology |
|
22 |
*/ |
|
23 |
||
15
4122176ea935
Revision: 200948 + Removing redundant base integration tests and fixing build errors
John Imhofe <john.imhofe@nokia.com>
parents:
0
diff
changeset
|
24 |
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
4122176ea935
Revision: 200948 + Removing redundant base integration tests and fixing build errors
John Imhofe <john.imhofe@nokia.com>
parents:
0
diff
changeset
|
25 |
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
4122176ea935
Revision: 200948 + Removing redundant base integration tests and fixing build errors
John Imhofe <john.imhofe@nokia.com>
parents:
0
diff
changeset
|
26 |
//!! |
4122176ea935
Revision: 200948 + Removing redundant base integration tests and fixing build errors
John Imhofe <john.imhofe@nokia.com>
parents:
0
diff
changeset
|
27 |
//!! WARNING!! DO NOT edit this file !! '\sfat' component is obsolete and is not being used. '\sfat32'replaces it |
4122176ea935
Revision: 200948 + Removing redundant base integration tests and fixing build errors
John Imhofe <john.imhofe@nokia.com>
parents:
0
diff
changeset
|
28 |
//!! |
4122176ea935
Revision: 200948 + Removing redundant base integration tests and fixing build errors
John Imhofe <john.imhofe@nokia.com>
parents:
0
diff
changeset
|
29 |
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
4122176ea935
Revision: 200948 + Removing redundant base integration tests and fixing build errors
John Imhofe <john.imhofe@nokia.com>
parents:
0
diff
changeset
|
30 |
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
4122176ea935
Revision: 200948 + Removing redundant base integration tests and fixing build errors
John Imhofe <john.imhofe@nokia.com>
parents:
0
diff
changeset
|
31 |
|
4122176ea935
Revision: 200948 + Removing redundant base integration tests and fixing build errors
John Imhofe <john.imhofe@nokia.com>
parents:
0
diff
changeset
|
32 |
|
0 | 33 |
#if !defined(FAT_DIR_ENTRY_H) |
34 |
#define FAT_DIR_ENTRY_H |
|
35 |
||
36 |
||
37 |
//------------------------------------------------------------------------------------------------------------------- |
|
38 |
||
39 |
||
40 |
const TInt KFatDirNameSize = 11; ///< Dos directory/File name length |
|
41 |
const TInt KVFatEntryAttribute = 0x0F; ///< VFat entry attribute setting |
|
42 |
const TUint8 KDotEntryByte = 0x2e; ///< Dot value for self and parent pointer directory entries |
|
43 |
const TUint8 KBlankSpace = 0x20; ///< Blank space in a directory entry |
|
44 |
const TInt KSizeOfFatDirEntryLog2 = 5; ///< Log2 of size in bytes of a Fat directry entry |
|
45 |
const TUint KSizeOfFatDirEntry = 1 << KSizeOfFatDirEntryLog2; ///< Size in bytes of a Fat directry entry |
|
46 |
||
15
4122176ea935
Revision: 200948 + Removing redundant base integration tests and fixing build errors
John Imhofe <john.imhofe@nokia.com>
parents:
0
diff
changeset
|
47 |
const TUint16 KReservedIdOldEntry = 1; ///< Rugged FAT "OldEntry" id |
0 | 48 |
const TUint16 KReservedIdNewEntry = 0; ///< Rugged FAT "ReservedIdNewEntry" id |
49 |
||
50 |
||
51 |
typedef TBuf8<KFatDirNameSize> TShortName; ///< Buffer type fot short names in dos entries |
|
52 |
||
53 |
//------------------------------------------------------------------------------------------------------------------- |
|
54 |
||
55 |
/** |
|
56 |
Fat DOS directory entry structure |
|
57 |
*/ |
|
58 |
struct SFatDirEntry |
|
59 |
{ |
|
60 |
TUint8 iName[KFatDirNameSize]; ///< :0 File/Directory name |
|
61 |
TUint8 iAttributes; ///< :11 File/Directory attributes |
|
62 |
TUint8 iReserved1[2]; ///< :12 2 reserved bytes(in our implementation), some versions of Windows may use them |
|
63 |
TUint16 iTimeC; ///< :14 Creation time |
|
64 |
TUint16 iDateC; ///< :16 Creation date |
|
65 |
TUint16 iReserved2; ///< :18 2 reserved bytes(in our implementation), FAT specs say that this is "last access date". Rugged FAT uses them as a special entry ID |
|
66 |
TUint16 iStartClusterHi; ///< :20 High 16 bits of the File/Directory cluster number (Fat32 only) |
|
67 |
TUint16 iTime; ///< :22 last write access time |
|
68 |
TUint16 iDate; ///< :24 last write access date |
|
69 |
TUint16 iStartClusterLo; ///< :26 Low 16 bits of the File/Directory cluster number |
|
70 |
TUint32 iSize; ///< :28 File/Directory size in bytes |
|
71 |
}; |
|
72 |
||
73 |
||
74 |
//------------------------------------------------------------------------------------------------------------------- |
|
75 |
||
76 |
/** |
|
77 |
Provides access to the Fat directory entry parameters |
|
78 |
*/ |
|
79 |
class TFatDirEntry |
|
80 |
{ |
|
81 |
public: |
|
82 |
inline TFatDirEntry(); |
|
83 |
inline void InitZ(); |
|
84 |
||
85 |
inline const TPtrC8 Name() const; |
|
86 |
inline TInt Attributes() const; |
|
87 |
inline TTime Time(TTimeIntervalSeconds aOffset) const; |
|
88 |
inline TInt StartCluster() const; |
|
89 |
inline TUint32 Size() const; |
|
90 |
inline TBool IsErased() const; |
|
91 |
inline TBool IsCurrentDirectory() const; |
|
92 |
inline TBool IsParentDirectory() const; |
|
93 |
inline TBool IsEndOfDirectory() const; |
|
94 |
inline TBool IsGarbage() const; |
|
95 |
inline void SetName(const TDesC8& aDes); |
|
96 |
inline void SetAttributes(TInt anAtt); |
|
97 |
inline void SetTime(TTime aTime, TTimeIntervalSeconds aOffset); |
|
98 |
inline void SetCreateTime(TTime aTime, TTimeIntervalSeconds aOffset); |
|
99 |
inline void SetStartCluster(TInt aStartCluster); |
|
100 |
inline void SetSize(TUint32 aFilesize); |
|
101 |
inline void SetErased(); |
|
102 |
inline void SetCurrentDirectory(); |
|
103 |
inline void SetParentDirectory(); |
|
104 |
inline void SetEndOfDirectory(); |
|
105 |
inline TUint RuggedFatEntryId() const; |
|
106 |
inline void SetRuggedFatEntryId(TUint16 aId); |
|
107 |
||
108 |
public: |
|
109 |
void InitializeAsVFat(TUint8 aCheckSum); |
|
110 |
void SetVFatEntry(const TDesC& aName,TInt aRemainderLen); |
|
111 |
void ReadVFatEntry(TDes16& aVBuf) const; |
|
112 |
inline TBool IsLongNameStart() const; |
|
113 |
inline TBool IsVFatEntry() const; |
|
114 |
inline TInt NumFollowing() const; |
|
115 |
inline TUint8 CheckSum() const; |
|
116 |
||
117 |
||
118 |
public: |
|
119 |
TUint8 iData[KSizeOfFatDirEntry]; ///< The directory entry data |
|
120 |
}; |
|
121 |
||
122 |
||
123 |
||
124 |
#endif //FAT_DIR_ENTRY_H |
|
125 |
||
126 |
||
127 |
||
128 |
||
129 |
||
130 |
||
131 |
||
132 |
||
133 |
||
134 |
||
135 |
||
136 |
||
137 |
||
138 |