diff options
Diffstat (limited to 'firmware/include/file_internal.h')
-rw-r--r-- | firmware/include/file_internal.h | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/firmware/include/file_internal.h b/firmware/include/file_internal.h index d62b5a8541..ec0c5d28f0 100644 --- a/firmware/include/file_internal.h +++ b/firmware/include/file_internal.h @@ -30,6 +30,7 @@ #include "fs_attr.h" #include "fs_defines.h" #include "fat.h" +#include "dir.h" #ifdef HAVE_DIRCACHE #include "dircache.h" #endif @@ -72,17 +73,20 @@ enum fildes_and_obj_flags /* used in descriptor and common */ FDO_BUSY = 0x0001, /* descriptor/object is in use */ /* only used in individual stream descriptor */ - FD_WRITE = 0x0002, /* descriptor has write mode */ - FD_WRONLY = 0x0004, /* descriptor is write mode only */ - FD_APPEND = 0x0008, /* descriptor is append mode */ + FD_VALID = 0x0002, /* descriptor is valid but not registered */ + FD_WRITE = 0x0004, /* descriptor has write mode */ + FD_WRONLY = 0x0008, /* descriptor is write mode only */ + FD_APPEND = 0x0010, /* descriptor is append mode */ FD_NONEXIST = 0x8000, /* closed but not freed (uncombined) */ /* only used as common flags */ - FO_DIRECTORY = 0x0010, /* fileobj is a directory */ - FO_TRUNC = 0x0020, /* fileobj is opened to be truncated */ - FO_REMOVED = 0x0040, /* fileobj was deleted while open */ - FO_SINGLE = 0x0080, /* fileobj has only one stream open */ - FDO_MASK = 0x00ff, - FDO_CHG_MASK = FO_TRUNC, /* fileobj permitted external change */ + FO_DIRECTORY = 0x0020, /* fileobj is a directory */ + FO_TRUNC = 0x0040, /* fileobj is opened to be truncated */ + FO_REMOVED = 0x0080, /* fileobj was deleted while open */ + FO_SINGLE = 0x0100, /* fileobj has only one stream open */ + FO_MOUNTTARGET = 0x0200, /* fileobj kept open as a mount target */ + FDO_MASK = 0x03ff, + FDO_CHG_MASK = FO_TRUNC, + /* fileobj permitted external change */ /* fileobj permitted external change */ /* bitflags that instruct various 'open' functions how to behave; * saved in stream flags (only) but not used by manager */ FF_FILE = 0x00000000, /* expect file; accept file only */ @@ -95,7 +99,9 @@ enum fildes_and_obj_flags FF_CACHEONLY = 0x00200000, /* succeed only if in dircache */ FF_INFO = 0x00400000, /* return info on self */ FF_PARENTINFO = 0x00800000, /* return info on parent */ - FF_MASK = 0x00ff0000, + FF_DEVPATH = 0x01000000, /* path is a device path, not root-based */ + FF_NOFS = 0x02000000, /* no filesystem mounted here */ + FF_MASK = 0x03ff0000, }; /** Common data structures used throughout **/ @@ -229,10 +235,10 @@ int test_stream_exists_internal(const char *path, unsigned int callflags); int open_noiso_internal(const char *path, int oflag); /* file.c */ void force_close_writer_internal(struct filestr_base *stream); /* file.c */ -struct dirent; +struct DIRENT; int uncached_readdir_dirent(struct filestr_base *stream, struct dirscan_info *scanp, - struct dirent *entry); + struct DIRENT *entry); void uncached_rewinddir_dirent(struct dirscan_info *scanp); int uncached_readdir_internal(struct filestr_base *stream, @@ -333,7 +339,7 @@ static inline struct fat_direntry *get_dir_fatent(void) void iso_decode_d_name(char *d_name); #ifdef HAVE_DIRCACHE -void empty_dirent(struct dirent *entry); +void empty_dirent(struct DIRENT *entry); void fill_dirinfo_native(struct dirinfo_native *din); #endif /* HAVE_DIRCACHE */ |