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