37 friend class FatWritebackTestPeer;
53 Time::Timestamp accessed = 0;
54 Time::Timestamp modified = 0;
55 Time::Timestamp changed = 0;
58 uintptr_t identifier = 0;
59 uint32_t directoryCluster = 0;
60 uint32_t directoryOffset = 0;
61 bool metadataDirty =
false;
62 bool trimPending =
false;
63 bool unlinked =
false;
64 bool registered =
false;
65 bool retiring =
false;
66 size_t syncReferences = 0;
68 State* next =
nullptr;
71 uint64_t chainRevision = 0;
75 size_t getSize()
override;
76 void setInode(uintptr_t inode)
override;
79 void fileAttributeChanged()
override;
80 bool syncPages(
const uint64_t* offsets,
size_t count)
override;
83 FatFile(
String name, Time::Timestamp accessedTime, Time::Timestamp modifiedTime,
84 Time::Timestamp creationTime, uintptr_t inode,
class Filesystem* pFs,
size_t size,
85 uint32_t dirClus = 0, uint32_t dirOffset = 0,
File* pParent = 0);
89 uint32_t getDirCluster() {
92 void setDirCluster(uint32_t custom) {
95 uint32_t getDirOffset() {
98 void setDirOffset(uint32_t custom) {
102 uintptr_t
readBlock(uint64_t location)
override;
103 void writeBlock(uint64_t location, uintptr_t addr)
override;
105 void extend(
size_t newSize)
override;
106 void extend(
size_t newSize, uint64_t location, uint64_t size)
override;
108 Attributes getAttributes()
const override;
109 bool sync()
override;
110 bool sync(
size_t offset,
bool async)
override;
112 bool pinBlock(uint64_t location)
override;
116 CacheState& cacheState()
override;
117 Mutex& dataMutationLock()
override;
118 Mutex& writeSerializationLock()
override;
119 size_t& physicalPageLoans()
override;
121 bool readPage(uint64_t location, uintptr_t destination)
override;
122 bool prepareShrink(
const ShrinkContext& context,
124 bool resizeFile(
size_t size)
override;
127 void copyStateAttributes();
128 explicit FatFile(State& state);
130 static bool checkedWriteCallback(CacheConstants::CallbackCause cause, uintptr_t location,
131 uintptr_t page,
void* meta);
134 FatFile* m_NextAlias =
nullptr;
135 bool m_Proxy =
false;
137 uint32_t& m_DirOffset;
138 bool& m_MetadataDirty;