summaryrefslogtreecommitdiffstats
path: root/firmware/include/file_internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/include/file_internal.h')
-rw-r--r--firmware/include/file_internal.h32
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 */