[makerom] fixed romfs (for linux)

This commit is contained in:
jakcron
2015-11-15 03:19:53 +08:00
parent 7c3b5faed6
commit 0854cbe5d1
8 changed files with 299 additions and 374 deletions
+26 -35
View File
@@ -1,7 +1,7 @@
#pragma once
#ifdef _WIN32
#define fs_romfs_char u16
#define romfs_char u16
#define fs_char wchar_t
#define fs_dirent _wdirent
#define fs_DIR _WDIR
@@ -11,7 +11,7 @@
#define fs_closedir _wclosedir
#define FS_PATH_SEPARATOR '\\'
#else
#define fs_romfs_char u16
#define romfs_char u16
#define fs_char char
#define fs_dirent dirent
#define fs_DIR DIR
@@ -21,59 +21,50 @@
#define fs_closedir closedir
#define FS_PATH_SEPARATOR '/'
#endif
struct fs_entry
struct romfs_file
{
bool IsDir;
fs_char *fs_path;
fs_romfs_char *name;
u32 name_len;
fs_char *path;
romfs_char *name;
u32 namesize;
u64 size;
};
struct fs_file
struct romfs_dir
{
fs_char *fs_path;
fs_romfs_char *name;
u32 name_len;
u64 size;
};
struct fs_dir
{
fs_char *fs_path;
fs_romfs_char *name;
u32 name_len;
fs_char *path;
romfs_char *name;
u32 namesize;
struct fs_dir *child;
struct romfs_dir *child;
u32 m_child;
u32 u_child;
struct fs_file *file;
struct romfs_file *file;
u32 m_file;
u32 u_file;
};
typedef struct fs_entry fs_entry;
typedef struct fs_file fs_file;
typedef struct fs_dir fs_dir;
typedef struct romfs_file romfs_file;
typedef struct romfs_dir romfs_dir;
static const fs_romfs_char ROMFS_EMPTY_PATH[2] = { 0 };
static const romfs_char ROMFS_EMPTY_PATH[2] = { 0 };
static const fs_char FS_EMPTY_PATH[2] = { 0 };
static const fs_char FS_CURRENT_DIR_PATH[2] = { '.' };
static const fs_char FS_PARENT_DIR_PATH[3] = { '.', '.' };
u32 fs_romfs_strlen(const fs_romfs_char *str);
u32 romfs_strlen(const romfs_char *str);
u32 fs_strlen(const fs_char *str);
int fs_strcmp(const fs_char *str1, const fs_char *str2);
FILE* fs_fopen(fs_char *path);
u64 fs_fsize(fs_char *path);
fs_char* fs_AppendToPath(const fs_char *src, const fs_char *add);
fs_char* fs_CopyPath(const fs_char *src);
fs_romfs_char* fs_CopyRomfsName(const fs_romfs_char *src);
void fs_fputs(FILE *out, const fs_char *str);
void fs_romfs_fputs(FILE *out, const fs_romfs_char *str);
fs_char* fs_CopyStr(const fs_char *src);
romfs_char* romfs_CopyStr(const romfs_char *src);
void fs_fputs(const fs_char *str, FILE *out);
void romfs_fputs(const romfs_char *str, FILE *out);
int fs_OpenRootDir(const char *path, fs_dir *dir);
int fs_OpenDir(fs_entry *entry, fs_dir *dir);
void fs_PrintDir(fs_dir *dir, u32 depth);
void fs_FreeDir(fs_dir *dir);
int OpenRootDir(const char *path, romfs_dir *dir);
void PrintDir(romfs_dir *dir, u32 depth);
void FreeDir(romfs_dir *dir);