MCPcopy Create free account
hub / github.com/Simple-XX/SimpleKernel / FatFsFileOps

Class FatFsFileOps

src/filesystem/fatfs/include/fatfs.hpp:185–245  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

183 * @brief FatFS 文件操作实现
184 */
185 class FatFsFileOps : public vfs::FileOps {
186 public:
187 explicit FatFsFileOps(FatFsFileSystem* fs) : fs_(fs) {}
188
189 /**
190 * @brief 打开文件,准备底层 FIL 句柄
191 * @param file 文件对象
192 * @return Expected<void> 成功或错误
193 */
194 auto Open(vfs::File* file) -> Expected<void> override;
195
196 /**
197 * @brief 从文件读取数据
198 * @param file 文件对象
199 * @param buf 读取缓冲区
200 * @param count 请求读取的字节数
201 * @return Expected<size_t> 实际读取字节数或错误
202 */
203 auto Read(vfs::File* file, void* buf, size_t count)
204 -> Expected<size_t> override;
205
206 /**
207 * @brief 向文件写入数据
208 * @param file 文件对象
209 * @param buf 写入数据缓冲区
210 * @param count 请求写入的字节数
211 * @return Expected<size_t> 实际写入字节数或错误
212 */
213 auto Write(vfs::File* file, const void* buf, size_t count)
214 -> Expected<size_t> override;
215
216 /**
217 * @brief 移动文件读写位置
218 * @param file 文件对象
219 * @param offset 偏移量
220 * @param whence 定位基准(kSet / kCur / kEnd)
221 * @return Expected<uint64_t> 新的文件偏移量或错误
222 */
223 auto Seek(vfs::File* file, int64_t offset, vfs::SeekWhence whence)
224 -> Expected<uint64_t> override;
225
226 /**
227 * @brief 关闭文件,释放底层 FIL 对象
228 * @param file 文件对象
229 * @return Expected<void> 成功或错误
230 */
231 auto Close(vfs::File* file) -> Expected<void> override;
232
233 /**
234 * @brief 读取目录条目
235 * @param file 目录文件对象
236 * @param dirent 输出缓冲区
237 * @param count 最多读取的条目数
238 * @return Expected<size_t> 实际读取条目数或错误
239 */
240 auto ReadDir(vfs::File* file, vfs::DirEntry* dirent, size_t count)
241 -> Expected<size_t> override;
242

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected