Renesas / USBHost_custom_Addiso

Dependents:   USBHostC270_example_GR-PEACH USBHostDac_example USBHostDac_Audio_in_out

Fork of USBHost_custom by Renesas

Committer:
dkato
Date:
Tue Feb 28 02:51:39 2017 +0000
Revision:
37:22e8f744bbad
Tentative change for FATFileSystem revision error.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dkato 37:22e8f744bbad 1 /* mbed Microcontroller Library
dkato 37:22e8f744bbad 2 * Copyright (c) 2006-2012 ARM Limited
dkato 37:22e8f744bbad 3 *
dkato 37:22e8f744bbad 4 * Permission is hereby granted, free of charge, to any person obtaining a copy
dkato 37:22e8f744bbad 5 * of this software and associated documentation files (the "Software"), to deal
dkato 37:22e8f744bbad 6 * in the Software without restriction, including without limitation the rights
dkato 37:22e8f744bbad 7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
dkato 37:22e8f744bbad 8 * copies of the Software, and to permit persons to whom the Software is
dkato 37:22e8f744bbad 9 * furnished to do so, subject to the following conditions:
dkato 37:22e8f744bbad 10 *
dkato 37:22e8f744bbad 11 * The above copyright notice and this permission notice shall be included in
dkato 37:22e8f744bbad 12 * all copies or substantial portions of the Software.
dkato 37:22e8f744bbad 13 *
dkato 37:22e8f744bbad 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
dkato 37:22e8f744bbad 15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
dkato 37:22e8f744bbad 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
dkato 37:22e8f744bbad 17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
dkato 37:22e8f744bbad 18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
dkato 37:22e8f744bbad 19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
dkato 37:22e8f744bbad 20 * SOFTWARE.
dkato 37:22e8f744bbad 21 */
dkato 37:22e8f744bbad 22 #ifndef MBED_FATFILESYSTEM_H
dkato 37:22e8f744bbad 23 #define MBED_FATFILESYSTEM_H
dkato 37:22e8f744bbad 24
dkato 37:22e8f744bbad 25 #include "FileSystemLike.h"
dkato 37:22e8f744bbad 26 #include "FileHandle.h"
dkato 37:22e8f744bbad 27 #include "ff.h"
dkato 37:22e8f744bbad 28 #include <stdint.h>
dkato 37:22e8f744bbad 29
dkato 37:22e8f744bbad 30 using namespace mbed;
dkato 37:22e8f744bbad 31
dkato 37:22e8f744bbad 32 /**
dkato 37:22e8f744bbad 33 * FATFileSystem based on ChaN's Fat Filesystem library v0.8
dkato 37:22e8f744bbad 34 */
dkato 37:22e8f744bbad 35 class FATFileSystem : public FileSystemLike {
dkato 37:22e8f744bbad 36 public:
dkato 37:22e8f744bbad 37
dkato 37:22e8f744bbad 38 FATFileSystem(const char* n);
dkato 37:22e8f744bbad 39 virtual ~FATFileSystem();
dkato 37:22e8f744bbad 40
dkato 37:22e8f744bbad 41 static FATFileSystem * _ffs[_VOLUMES]; // FATFileSystem objects, as parallel to FatFs drives array
dkato 37:22e8f744bbad 42 FATFS _fs; // Work area (file system object) for logical drive
dkato 37:22e8f744bbad 43 char _fsid[2];
dkato 37:22e8f744bbad 44
dkato 37:22e8f744bbad 45 /**
dkato 37:22e8f744bbad 46 * Opens a file on the filesystem
dkato 37:22e8f744bbad 47 */
dkato 37:22e8f744bbad 48 virtual FileHandle *open(const char* name, int flags);
dkato 37:22e8f744bbad 49
dkato 37:22e8f744bbad 50 /**
dkato 37:22e8f744bbad 51 * Removes a file path
dkato 37:22e8f744bbad 52 */
dkato 37:22e8f744bbad 53 virtual int remove(const char *filename);
dkato 37:22e8f744bbad 54
dkato 37:22e8f744bbad 55 /**
dkato 37:22e8f744bbad 56 * Renames a file
dkato 37:22e8f744bbad 57 */
dkato 37:22e8f744bbad 58 virtual int rename(const char *oldname, const char *newname);
dkato 37:22e8f744bbad 59
dkato 37:22e8f744bbad 60 /**
dkato 37:22e8f744bbad 61 * Formats a logical drive, FDISK artitioning rule, 512 bytes per cluster
dkato 37:22e8f744bbad 62 */
dkato 37:22e8f744bbad 63 virtual int format();
dkato 37:22e8f744bbad 64
dkato 37:22e8f744bbad 65 /**
dkato 37:22e8f744bbad 66 * Opens a directory on the filesystem
dkato 37:22e8f744bbad 67 */
dkato 37:22e8f744bbad 68 virtual DirHandle *opendir(const char *name);
dkato 37:22e8f744bbad 69
dkato 37:22e8f744bbad 70 /**
dkato 37:22e8f744bbad 71 * Creates a directory path
dkato 37:22e8f744bbad 72 */
dkato 37:22e8f744bbad 73 virtual int mkdir(const char *name, mode_t mode);
dkato 37:22e8f744bbad 74
dkato 37:22e8f744bbad 75 /**
dkato 37:22e8f744bbad 76 * Mounts the filesystem
dkato 37:22e8f744bbad 77 */
dkato 37:22e8f744bbad 78 virtual int mount();
dkato 37:22e8f744bbad 79
dkato 37:22e8f744bbad 80 /**
dkato 37:22e8f744bbad 81 * Unmounts the filesystem
dkato 37:22e8f744bbad 82 */
dkato 37:22e8f744bbad 83 virtual int unmount();
dkato 37:22e8f744bbad 84
dkato 37:22e8f744bbad 85 virtual int disk_initialize() { return 0; }
dkato 37:22e8f744bbad 86 virtual int disk_status() { return 0; }
dkato 37:22e8f744bbad 87 virtual int disk_read(uint8_t *buffer, uint32_t sector, uint32_t count) = 0;
dkato 37:22e8f744bbad 88 virtual int disk_write(const uint8_t *buffer, uint32_t sector, uint32_t count) = 0;
dkato 37:22e8f744bbad 89 virtual int disk_sync() { return 0; }
dkato 37:22e8f744bbad 90 virtual uint32_t disk_sectors() = 0;
dkato 37:22e8f744bbad 91
dkato 37:22e8f744bbad 92 };
dkato 37:22e8f744bbad 93
dkato 37:22e8f744bbad 94 #endif