Michael Spencer / Mbed 2 deprecated LaOS

Dependencies:   mbed

Committer:
Michael J. Spencer
Date:
Wed Mar 05 06:14:02 2014 -0800
Revision:
1:f5ac63519541
Initial commit.

Who changed what in which revision?

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