.

Dependents:   CANcan

Committer:
TickTock
Date:
Sun Dec 23 22:57:35 2012 +0000
Revision:
2:243ee5f47c25
.;

Who changed what in which revision?

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