Mistake on this page?
Report an issue in GitHub or email us
Public Member Functions | Static Public Member Functions | Protected Member Functions
FATFileSystem Class Reference

#include <FATFileSystem.h>

Inheritance diagram for FATFileSystem:
mbed::FileSystem mbed::FileSystemLike mbed::FileSystemHandle mbed::FileBase mbed::NonCopyable< FileSystemLike > mbed::NonCopyable< FileSystemHandle > mbed::NonCopyable< FileBase >

Public Member Functions

 FATFileSystem (const char *name=NULL, BlockDevice *bd=NULL)
 
virtual int mount (BlockDevice *bd)
 
virtual int unmount ()
 
virtual int reformat (BlockDevice *bd, int allocation_unit)
 
virtual int reformat (BlockDevice *bd=NULL)
 
virtual int remove (const char *path)
 
virtual int rename (const char *path, const char *newpath)
 
virtual int stat (const char *path, struct stat *st)
 
virtual int mkdir (const char *path, mode_t mode)
 
virtual int statvfs (const char *path, struct statvfs *buf)
 
- Public Member Functions inherited from mbed::FileSystem
 FileSystem (const char *name=NULL)
 
- Public Member Functions inherited from mbed::FileSystemLike
 FileSystemLike (const char *name=NULL)
 
FileHandleopen (const char *path, int flags)
 
DirHandleopendir (const char *path)
 
- Public Member Functions inherited from mbed::FileSystemHandle
virtual ~FileSystemHandle ()
 
- Public Member Functions inherited from mbed::FileBase
 FileBase (const char *name, PathType t)
 
const char * getName (void)
 
PathType getPathType (void)
 

Static Public Member Functions

static int format (BlockDevice *bd, bd_size_t cluster_size=0)
 
- Static Public Member Functions inherited from mbed::FileBase
static FileBaselookup (const char *name, unsigned int len)
 
static FileBaseget (int n)
 

Protected Member Functions

virtual int file_open (mbed::fs_file_t *file, const char *path, int flags)
 
virtual int file_close (mbed::fs_file_t file)
 
virtual ssize_t file_read (mbed::fs_file_t file, void *buffer, size_t len)
 
virtual ssize_t file_write (mbed::fs_file_t file, const void *buffer, size_t len)
 
virtual int file_sync (mbed::fs_file_t file)
 
virtual off_t file_seek (mbed::fs_file_t file, off_t offset, int whence)
 
virtual off_t file_tell (mbed::fs_file_t file)
 
virtual off_t file_size (mbed::fs_file_t file)
 
virtual int dir_open (mbed::fs_dir_t *dir, const char *path)
 
virtual int dir_close (mbed::fs_dir_t dir)
 
virtual ssize_t dir_read (mbed::fs_dir_t dir, struct dirent *ent)
 
virtual void dir_seek (mbed::fs_dir_t dir, off_t offset)
 
virtual off_t dir_tell (mbed::fs_dir_t dir)
 
virtual void dir_rewind (mbed::fs_dir_t dir)
 
virtual void lock ()
 
virtual void unlock ()
 
virtual int mount (BlockDevice *bd, bool mount)
 
- Protected Member Functions inherited from mbed::FileSystem
virtual int file_isatty (fs_file_t file)
 
virtual void file_rewind (fs_file_t file)
 
virtual size_t dir_size (fs_dir_t dir)
 
virtual int open (FileHandle **file, const char *path, int flags)
 
virtual int open (DirHandle **dir, const char *path)
 

Detailed Description

FATFileSystem based on ChaN's Fat Filesystem library v0.8

Constructor & Destructor Documentation

FATFileSystem::FATFileSystem ( const char *  name = NULL,
BlockDevice bd = NULL 
)

Lifetime of the FATFileSystem

Parameters
nameName to add filesystem to tree as
bdBlockDevice to mount, may be passed instead to mount call

Member Function Documentation

int FATFileSystem::dir_close ( mbed::fs_dir_t  dir)
protectedvirtual

Close a directory

Parameters
dirDir handle
Returns
0 on success, negative error code on failure

Reimplemented from mbed::FileSystem.

int FATFileSystem::dir_open ( mbed::fs_dir_t *  dir,
const char *  path 
)
protectedvirtual

Open a directory on the filesystem

Parameters
dirDestination for the handle to the directory
pathName of the directory to open
Returns
0 on success, negative error code on failure

Reimplemented from mbed::FileSystem.

ssize_t FATFileSystem::dir_read ( mbed::fs_dir_t  dir,
struct dirent ent 
)
protectedvirtual

Read the next directory entry

Parameters
dirDir handle
entThe directory entry to fill out
Returns
1 on reading a filename, 0 at end of directory, negative error on failure

Reimplemented from mbed::FileSystem.

void FATFileSystem::dir_rewind ( mbed::fs_dir_t  dir)
protectedvirtual

Rewind the current position to the beginning of the directory

Parameters
dirDir handle

Reimplemented from mbed::FileSystem.

void FATFileSystem::dir_seek ( mbed::fs_dir_t  dir,
off_t  offset 
)
protectedvirtual

Set the current position of the directory

Parameters
dirDir handle
offsetOffset of the location to seek to, must be a value returned from dir_tell

Reimplemented from mbed::FileSystem.

off_t FATFileSystem::dir_tell ( mbed::fs_dir_t  dir)
protectedvirtual

Get the current position of the directory

Parameters
dirDir handle
Returns
Position of the directory that can be passed to dir_rewind

Reimplemented from mbed::FileSystem.

int FATFileSystem::file_close ( mbed::fs_file_t  file)
protectedvirtual

Close a file

Parameters
fileFile handle
Returns
0 on success, negative error code on failure

Implements mbed::FileSystem.

int FATFileSystem::file_open ( mbed::fs_file_t *  file,
const char *  path,
int  flags 
)
protectedvirtual

Open a file on the filesystem

Parameters
fileDestination for the handle to a newly created file
pathThe name of the file to open
flagsThe flags to open the file in, one of O_RDONLY, O_WRONLY, O_RDWR, bitwise or'd with one of O_CREAT, O_TRUNC, O_APPEND
Returns
0 on success, negative error code on failure

Implements mbed::FileSystem.

ssize_t FATFileSystem::file_read ( mbed::fs_file_t  file,
void *  buffer,
size_t  len 
)
protectedvirtual

Read the contents of a file into a buffer

Parameters
fileFile handle
bufferThe buffer to read in to
lenThe number of bytes to read
Returns
The number of bytes read, 0 at end of file, negative error on failure

Implements mbed::FileSystem.

off_t FATFileSystem::file_seek ( mbed::fs_file_t  file,
off_t  offset,
int  whence 
)
protectedvirtual

Move the file position to a given offset from from a given location

Parameters
fileFile handle
offsetThe offset from whence to move to
whenceThe start of where to seek SEEK_SET to start from beginning of file, SEEK_CUR to start from current position in file, SEEK_END to start from end of file
Returns
The new offset of the file

Implements mbed::FileSystem.

off_t FATFileSystem::file_size ( mbed::fs_file_t  file)
protectedvirtual

Get the size of the file

Parameters
fileFile handle
Returns
Size of the file in bytes

Reimplemented from mbed::FileSystem.

int FATFileSystem::file_sync ( mbed::fs_file_t  file)
protectedvirtual

Flush any buffers associated with the file

Parameters
fileFile handle
Returns
0 on success, negative error code on failure

Reimplemented from mbed::FileSystem.

off_t FATFileSystem::file_tell ( mbed::fs_file_t  file)
protectedvirtual

Get the file position of the file

Parameters
fileFile handle
Returns
The current offset in the file

Reimplemented from mbed::FileSystem.

ssize_t FATFileSystem::file_write ( mbed::fs_file_t  file,
const void *  buffer,
size_t  len 
)
protectedvirtual

Write the contents of a buffer to a file

Parameters
fileFile handle
bufferThe buffer to write from
lenThe number of bytes to write
Returns
The number of bytes written, negative error on failure

Implements mbed::FileSystem.

int FATFileSystem::format ( BlockDevice bd,
bd_size_t  cluster_size = 0 
)
static

Formats a logical drive, FDISK partitioning rule.

The block device to format should be mounted when this function is called.

Parameters
bdThis is the block device that will be formatted.
cluster_sizeThis is the number of bytes per cluster. A larger cluster size will decrease the overhead of the FAT table, but also increase the minimum file size. The cluster_size must be a multiple of the underlying device's allocation unit and is currently limited to a max of 32,768 bytes. If zero, a cluster size will be determined from the device's allocation unit. Defaults to zero.
Returns
0 on success, negative error code on failure
int FATFileSystem::mkdir ( const char *  path,
mode_t  mode 
)
virtual

Create a directory in the filesystem.

Parameters
pathThe name of the directory to create.
modeThe permissions with which to create the directory
Returns
0 on success, negative error code on failure

Reimplemented from mbed::FileSystem.

int FATFileSystem::mount ( BlockDevice bd)
virtual

Mounts a filesystem to a block device

Parameters
bdBlockDevice to mount to
Returns
0 on success, negative error code on failure

Implements mbed::FileSystem.

int FATFileSystem::reformat ( BlockDevice bd,
int  allocation_unit 
)
virtual

Reformats a filesystem, results in an empty and mounted filesystem

Parameters
bdBlockDevice to reformat and mount. If NULL, the mounted block device will be used. Note: if mount fails, bd must be provided. Default: NULL
allocation_unitThis is the number of bytes per cluster size. The valid value is N times the sector size. N is a power of 2 from 1 to 128 for FAT volume and upto 16MiB for exFAT volume. If zero is given, the default allocation unit size is selected by the underlying filesystem, which depends on the volume size.
Returns
0 on success, negative error code on failure
virtual int FATFileSystem::reformat ( BlockDevice bd = NULL)
inlinevirtual

Reformats a filesystem, results in an empty and mounted filesystem

Parameters
bdBlockDevice to reformat and mount. If NULL, the mounted block device will be used. Note: if mount fails, bd must be provided. Default: NULL
Returns
0 on success, negative error code on failure

Reimplemented from mbed::FileSystem.

int FATFileSystem::remove ( const char *  path)
virtual

Remove a file from the filesystem.

Parameters
pathThe name of the file to remove.
Returns
0 on success, negative error code on failure

Reimplemented from mbed::FileSystem.

int FATFileSystem::rename ( const char *  path,
const char *  newpath 
)
virtual

Rename a file in the filesystem.

Parameters
pathThe name of the file to rename.
newpathThe name to rename it to
Returns
0 on success, negative error code on failure

Reimplemented from mbed::FileSystem.

int FATFileSystem::stat ( const char *  path,
struct stat st 
)
virtual

Store information about the file in a stat structure

Parameters
pathThe name of the file to find information about
stThe stat buffer to write to
Returns
0 on success, negative error code on failure

Reimplemented from mbed::FileSystem.

int FATFileSystem::statvfs ( const char *  path,
struct statvfs buf 
)
virtual

Store information about the mounted filesystem in a statvfs structure

Parameters
pathThe name of the file to find information about
bufThe stat buffer to write to
Returns
0 on success, negative error code on failure

Reimplemented from mbed::FileSystem.

int FATFileSystem::unmount ( )
virtual

Unmounts a filesystem from the underlying block device

Returns
0 on success, negative error code on failure

Implements mbed::FileSystem.


The documentation for this class was generated from the following files:
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.