Dircache: Move struct maindata declaration to dircache.c and actually check for DIRCACHE_MAGIC when loading from disk.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30037 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Thomas Martitz 2011-06-20 20:12:35 +00:00
parent 52abbb186d
commit 0b9c57d33e
2 changed files with 12 additions and 11 deletions

View file

@ -503,6 +503,17 @@ static struct dircache_entry* dircache_get_entry(const char *path, bool go_down)
}
#ifdef HAVE_EEPROM_SETTINGS
#define DIRCACHE_MAGIC 0x00d0c0a1
struct dircache_maindata {
long magic;
long size;
long entry_count;
long appflags;
struct dircache_entry *root_entry;
char *d_names_start;
};
/**
* Function to load the internal cache structure from disk to initialize
* the dircache really fast and little disk access.
@ -525,7 +536,7 @@ int dircache_load(void)
bytes_read = read(fd, &maindata, sizeof(struct dircache_maindata));
if (bytes_read != sizeof(struct dircache_maindata)
|| maindata.size <= 0)
|| maindata.magic != DIRCACHE_MAGIC || maindata.size <= 0)
{
logf("Dircache file header error");
close(fd);

View file

@ -47,16 +47,6 @@ struct travel_data {
int pathpos;
};
#define DIRCACHE_MAGIC 0x00d0c0a1
struct dircache_maindata {
long magic;
long size;
long entry_count;
long appflags;
struct dircache_entry *root_entry;
char *d_names_start;
};
#define MAX_PENDING_BINDINGS 2
struct fdbind_queue {
char path[MAX_PATH];