Merge branch 'upstreamedge' into update/gcc4.8
[clinton/Smoothieware.git] / src / libs / ChaNFS / FATFileSystem.h
CommitLineData
df27a6a3
MM
1/* mbed Microcontroller Library - FATFileSystem
2 * Copyright (c) 2008, sford
3 */
4\r
5/* Library: FATFileSystem.h
6 * A library of stuff to make a fat filesystem on top of a block device
7 */
8\r
9#ifndef MBED_FATFILESYSTEM_H
10#define MBED_FATFILESYSTEM_H
11\r
12#ifndef FFSDEBUG_ENABLED
13#define FFSDEBUG_ENABLED 0
14#endif
15\r
16#if FFSDEBUG_ENABLED
17#define FFSDEBUG(FMT, ...) printf(FMT, ##__VA_ARGS__)
18#else
19#define FFSDEBUG(FMT, ...)
20#endif
21\r
22#include "FileSystemLike.h"
23#include "FileHandle.h"
24#include "ff.h"
25#include "diskio.h"
26\r
27namespace mbed {
28/* Class: FATFileSystem
29 * The class itself
30 */
31class FATFileSystem : public FileSystemLike {
32public:
33\r
34 FATFileSystem(const char* n);
35 virtual ~FATFileSystem();
d9ebc974 36 \r
df27a6a3
MM
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, mode_t mode);
d9ebc974 45 \r
df27a6a3
MM
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;
d9ebc974 49 \r
df27a6a3
MM
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;
d9ebc974 56 \r
df27a6a3 57};
d9ebc974 58 \r
df27a6a3 59}
d9ebc974 60\r
df27a6a3 61#endif