Main Page | Modules | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages | Examples

phatdir.c File Reference


Detailed Description

PHAT File System.

 *
 * $Log: phatdir.c,v $
 * Revision 1.11  2006/10/08 16:42:56  haraldkipp
 * Not optimal, but simple and reliable exclusive access implemented.
 * Fixes bug #1486539. Furthermore, bug #1567790, which had been rejected,
 * had been reported correctly and is now fixed.
 *
 * Revision 1.10  2006/10/05 17:23:14  haraldkipp
 * Fixes bug #1571269. Thanks to Dirk Boecker for reporting this.
 *
 * Revision 1.9  2006/09/08 16:48:28  haraldkipp
 * Directory entries honor daylight saving time. Thanks to Dirk Boecker for
 * this fix.
 *
 * Revision 1.8  2006/07/05 16:00:30  haraldkipp
 * Two bugs fixed. Renaming a file's path (including directory change) failed.
 * Thanks to Dirk Boecker, who reported this.
 * The second bug was a memory hole, which had been discovered by
 * Ralf Spettel.
 *
 * Revision 1.7  2006/06/28 17:24:29  haraldkipp
 * Bugfix. Directories with long filename entries may not expand when
 * crossing cluster boundaries.
 *
 * Revision 1.6  2006/06/18 16:37:10  haraldkipp
 * No need to set errno after GetParentPath() returns an error.
 * No need to set errno after malloc failed.
 * New local helper function PhatOpenParentPath() reduces code size.
 * Support for long filenames (VFAT) added.
 * New function PhatDirReleaseChain() simplifies code.
 * Static function PhatDirOpenParentPath() replaced by global PhatDirOpenParent().
 * Added const attribute to path parameter of PhatDirOpen().
 * Now PhatDirEntryUpdate() clears the dirty flag for the root directory.
 * Calls to PhatFilePosSet() with position zero replaced by calls to PhatFilePosRewind().
 *
 * Revision 1.5  2006/04/07 12:52:24  haraldkipp
 * Memory hole fixed. Flag for normal / directory files now set correctly.
 *
 * Revision 1.4  2006/02/23 15:45:21  haraldkipp
 * PHAT file system now supports configurable number of sector buffers.
 * This dramatically increased write rates of no-name cards.
 * AVR compile errors corrected.
 *
 * Revision 1.3  2006/01/25 18:47:42  haraldkipp
 * Fixes wrong implementation of readdir() and simplifies the code.
 * Thanks to Jesper Hansen.
 *
 * Revision 1.2  2006/01/22 17:40:51  haraldkipp
 * Now mkdir() fails, if the directory exists already.
 * Now rmdir() returns an error when trying to delete subdirectories, which
 * are not empty.
 * Now PhatDirEntryStatus() sets correct errno value, if out of memory.
 *
 * Revision 1.1  2006/01/05 16:31:32  haraldkipp
 * First check-in.
 *
 *
 * 


Defines

#define PHAT_MAXDIRENT   65536
 Maximum number of directory entries.

Functions

int PhatDirEntryCreate (NUTFILE *ndp, CONST char *name, int acc, PHATDIRENT *dirent)
 Create a new directory entry.
int PhatDirEntryUpdate (NUTFILE *nfp)
 Update directory entry of an opened file or directory.
int PhatDirEntryFind (NUTFILE *ndp, CONST char *spec, u_long attmsk, PHATFIND *srch)
 Find a directory entry with a specified name.
NUTFILEPhatDirOpenParent (NUTDEVICE *dev, CONST char *path, CONST char **basename)
 Open parent directory of a given path.
int PhatDirRenameEntry (NUTDEVICE *dev, CONST char *old_path, CONST char *new_path)
 Rename file.
int PhatDirReleaseChain (NUTDEVICE *dev, PHATDIRENT *dent)
 Release a cluster chain of a specified directory entry.
int PhatDirDelEntry (NUTDEVICE *dev, CONST char *path, u_long flags)
 Remove a directory entry.
NUTFILEPhatDirOpen (NUTDEVICE *dev, CONST char *dpath)
 Open a directory.
int PhatDirRead (DIR *dir)
 Read the next directory entry.
int PhatDirCreate (NUTDEVICE *dev, char *path)
 Create a new subdirectory.
int PhatDirRemove (NUTDEVICE *dev, char *path)
 Remove a specified subdirectory.
int PhatDirEntryStatus (NUTDEVICE *dev, CONST char *path, struct stat *stp)
 Retrieve status of a specified file.


© 2000-2006 by egnite Software GmbH - visit http://www.ethernut.de/