Local copy of the FatFileSystem.

Dependents:   SimpleWaveRecorderPlayer y_CameraC1098_ES_01 _test_SDHCFileSystem Application-SimpleWaveRecorderPlayerGenerator ... more

Committer:
shintamainjp
Date:
Sat Apr 14 02:24:08 2012 +0000
Revision:
0:8c55801ce311
Initial version.

Who changed what in which revision?

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