summaryrefslogtreecommitdiffstats
path: root/firmware/include/dir.h
diff options
context:
space:
mode:
authorKevin Ferrare <kevin@rockbox.org>2007-07-20 17:06:55 +0000
committerKevin Ferrare <kevin@rockbox.org>2007-07-20 17:06:55 +0000
commit011a325e32c05f6e4817dcdc555615e6b7b6c102 (patch)
treeab22ab91b99524dba823cda861b17520db030911 /firmware/include/dir.h
parent930278bcc0fd944ec50f30074b53b4c7cf0e3ccf (diff)
downloadrockbox-011a325e32c05f6e4817dcdc555615e6b7b6c102.tar.gz
rockbox-011a325e32c05f6e4817dcdc555615e6b7b6c102.zip
Makes apps and plugins interract with directories using a posix-like api instead of calling dircache / simulator functions (no additionnal layer added, only a cosmetic change)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13943 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/include/dir.h')
-rw-r--r--firmware/include/dir.h88
1 files changed, 21 insertions, 67 deletions
diff --git a/firmware/include/dir.h b/firmware/include/dir.h
index 020b24a502..8778d0be02 100644
--- a/firmware/include/dir.h
+++ b/firmware/include/dir.h
@@ -7,7 +7,7 @@
* \/ \/ \/ \/ \/
* $Id$
*
- * Copyright (C) 2002 by Björn Stenberg
+ * Copyright (C) 2007 by Kévin Ferrare
*
* All files in this archive are subject to the GNU General Public License.
* See the file COPYING in the source tree root for full license agreement.
@@ -16,76 +16,30 @@
* KIND, either express or implied.
*
****************************************************************************/
+
#ifndef _DIR_H_
#define _DIR_H_
-#include <stdbool.h>
-#include "file.h"
-
-#define ATTR_READ_ONLY 0x01
-#define ATTR_HIDDEN 0x02
-#define ATTR_SYSTEM 0x04
-#define ATTR_VOLUME_ID 0x08
-#define ATTR_DIRECTORY 0x10
-#define ATTR_ARCHIVE 0x20
-#define ATTR_VOLUME 0x40 /* this is a volume, not a real directory */
-
-#ifdef SIMULATOR
-#define dirent sim_dirent
-#define DIR SIM_DIR
-#define opendir(x) sim_opendir(x)
-#define readdir(x) sim_readdir(x)
-#define closedir(x) sim_closedir(x)
-#define mkdir(x) sim_mkdir(x)
-#define rmdir(x) sim_rmdir(x)
-#endif
-
-#ifndef DIRENT_DEFINED
-
-struct dirent {
- unsigned char d_name[MAX_PATH];
- int attribute;
- long size;
- long startcluster;
- unsigned short wrtdate; /* Last write date */
- unsigned short wrttime; /* Last write time */
-};
-#endif
-
-#include "fat.h"
-
-typedef struct {
-#ifndef SIMULATOR
- bool busy;
- long startcluster;
- struct fat_dir fatdir;
- struct fat_dir parent_dir;
- struct dirent theent;
-#ifdef HAVE_MULTIVOLUME
- int volumecounter; /* running counter for faked volume entries */
-#endif
+#ifdef HAVE_DIRCACHE
+# include "dircache.h"
+# define DIR DIR_CACHED
+# define dirent dircache_entry
+# define opendir opendir_cached
+# define closedir closedir_cached
+# define readdir readdir_cached
+# define closedir closedir_cached
+# define mkdir mkdir_cached
+# define rmdir rmdir_cached
#else
- /* simulator: */
- void *dir; /* actually a DIR* dir */
- char *name;
-#endif
-} DIR;
-
-#ifdef HAVE_HOTSWAP
-char *get_volume_name(int volume);
+#include "dir_uncached.h"
+# define DIR DIR_UNCACHED
+# define dirent dirent_uncached
+# define opendir opendir_uncached
+# define closedir closedir_uncached
+# define readdir readdir_uncached
+# define closedir closedir_uncached
+# define mkdir mkdir_uncached
+# define rmdir rmdir_uncached
#endif
-#ifndef DIRFUNCTIONS_DEFINED
-
-extern DIR* opendir(const char* name);
-extern int closedir(DIR* dir);
-extern int mkdir(const char* name);
-extern int rmdir(const char* name);
-
-extern struct dirent* readdir(DIR* dir);
-
-extern int release_dirs(int volume);
-
-#endif /* DIRFUNCTIONS_DEFINED */
-
#endif