From 011a325e32c05f6e4817dcdc555615e6b7b6c102 Mon Sep 17 00:00:00 2001 From: Kevin Ferrare Date: Fri, 20 Jul 2007 17:06:55 +0000 Subject: 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 --- firmware/include/dir.h | 88 ++++++++++++-------------------------------------- 1 file changed, 21 insertions(+), 67 deletions(-) (limited to 'firmware/include/dir.h') 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 -#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 -- cgit v1.2.3