hattori&ide

Dependencies:   mbed

Committer:
hattori_atsushi
Date:
Sun Dec 18 08:16:01 2022 +0000
Revision:
0:f77369cabd75
hattori

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hattori_atsushi 0:f77369cabd75 1 /* mbed Microcontroller Library - FATFileSystem
hattori_atsushi 0:f77369cabd75 2 * Copyright (c) 2008, sford
hattori_atsushi 0:f77369cabd75 3 */
hattori_atsushi 0:f77369cabd75 4
hattori_atsushi 0:f77369cabd75 5 /* Library: FATFileSystem.h
hattori_atsushi 0:f77369cabd75 6 * A library of stuff to make a fat filesystem on top of a block device
hattori_atsushi 0:f77369cabd75 7 */
hattori_atsushi 0:f77369cabd75 8
hattori_atsushi 0:f77369cabd75 9 #ifndef MBED_FATFILESYSTEM_H
hattori_atsushi 0:f77369cabd75 10 #define MBED_FATFILESYSTEM_H
hattori_atsushi 0:f77369cabd75 11
hattori_atsushi 0:f77369cabd75 12 #ifndef FFSDEBUG_ENABLED
hattori_atsushi 0:f77369cabd75 13 #define FFSDEBUG_ENABLED 0
hattori_atsushi 0:f77369cabd75 14 #endif
hattori_atsushi 0:f77369cabd75 15
hattori_atsushi 0:f77369cabd75 16 #if FFSDEBUG_ENABLED
hattori_atsushi 0:f77369cabd75 17 #define FFSDEBUG(FMT, ...) printf(FMT, ##__VA_ARGS__)
hattori_atsushi 0:f77369cabd75 18 #else
hattori_atsushi 0:f77369cabd75 19 #define FFSDEBUG(FMT, ...)
hattori_atsushi 0:f77369cabd75 20 #endif
hattori_atsushi 0:f77369cabd75 21
hattori_atsushi 0:f77369cabd75 22 #include "FileSystemLike.h"
hattori_atsushi 0:f77369cabd75 23 #include "FileHandle.h"
hattori_atsushi 0:f77369cabd75 24 #include "ff.h"
hattori_atsushi 0:f77369cabd75 25 #include "diskio.h"
hattori_atsushi 0:f77369cabd75 26
hattori_atsushi 0:f77369cabd75 27 namespace mbed {
hattori_atsushi 0:f77369cabd75 28 /* Class: FATFileSystem
hattori_atsushi 0:f77369cabd75 29 * The class itself
hattori_atsushi 0:f77369cabd75 30 */
hattori_atsushi 0:f77369cabd75 31 class FATFileSystem : public FileSystemLike {
hattori_atsushi 0:f77369cabd75 32 public:
hattori_atsushi 0:f77369cabd75 33
hattori_atsushi 0:f77369cabd75 34 FATFileSystem(const char* n);
hattori_atsushi 0:f77369cabd75 35 virtual ~FATFileSystem();
hattori_atsushi 0:f77369cabd75 36
hattori_atsushi 0:f77369cabd75 37 /* Function: open
hattori_atsushi 0:f77369cabd75 38 * open a file on the filesystem. never called directly
hattori_atsushi 0:f77369cabd75 39 */
hattori_atsushi 0:f77369cabd75 40 virtual FileHandle *open(const char* name, int flags);
hattori_atsushi 0:f77369cabd75 41 virtual int remove(const char *filename);
hattori_atsushi 0:f77369cabd75 42 virtual int format();
hattori_atsushi 0:f77369cabd75 43 virtual DirHandle *opendir(const char *name);
hattori_atsushi 0:f77369cabd75 44 virtual int mkdir(const char *name, mode_t mode);
hattori_atsushi 0:f77369cabd75 45
hattori_atsushi 0:f77369cabd75 46 FATFS _fs; // Work area (file system object) for logical drive
hattori_atsushi 0:f77369cabd75 47 static FATFileSystem *_ffs[_DRIVES]; // FATFileSystem objects, as parallel to FatFs drives array
hattori_atsushi 0:f77369cabd75 48 int _fsid;
hattori_atsushi 0:f77369cabd75 49
hattori_atsushi 0:f77369cabd75 50 virtual int disk_initialize() { return 0; }
hattori_atsushi 0:f77369cabd75 51 virtual int disk_status() { return 0; }
hattori_atsushi 0:f77369cabd75 52 virtual int disk_read(char *buffer, int sector) = 0;
hattori_atsushi 0:f77369cabd75 53 virtual int disk_write(const char *buffer, int sector) = 0;
hattori_atsushi 0:f77369cabd75 54 virtual int disk_sync() { return 0; }
hattori_atsushi 0:f77369cabd75 55 virtual int disk_sectors() = 0;
hattori_atsushi 0:f77369cabd75 56
hattori_atsushi 0:f77369cabd75 57 };
hattori_atsushi 0:f77369cabd75 58
hattori_atsushi 0:f77369cabd75 59 }
hattori_atsushi 0:f77369cabd75 60
hattori_atsushi 0:f77369cabd75 61 #endif