libfstools: add f2fs filesystem type and simplify fs type code
[project/fstools.git] / libfstools / libfstools.h
index 598196e..f5ca75c 100644 (file)
 
 #include <libubox/list.h>
 #include <libubox/blob.h>
+#include <libubox/ulog.h>
+#include <libubox/utils.h>
+
+struct volume;
 
 enum {
        FS_NONE,
        FS_SNAPSHOT,
        FS_JFFS2,
        FS_DEADCODE,
+       FS_UBIFS,
+       FS_F2FS,
+};
+
+enum fs_state {
+       FS_STATE_UNKNOWN,
+       FS_STATE_PENDING,
+       FS_STATE_READY,
+       __FS_STATE_LAST = FS_STATE_READY,
 };
 
 extern char const *extroot_prefix;
 extern int mount_extroot(void);
-extern int mount_snapshot(void);
-extern int mount_overlay(void);
+extern int mount_snapshot(struct volume *v);
+extern int mount_overlay(struct volume *v);
 
 extern int mount_move(char *oldroot, char *newroot, char *dir);
 extern int pivot(char *new, char *old);
@@ -36,15 +49,17 @@ extern int ramoverlay(void);
 
 extern int find_overlay_mount(char *overlay);
 extern char* find_mount(char *mp);
-extern char* find_mount_point(char *block, char *fs);
+extern char* find_mount_point(char *block, int root_only);
 extern int find_filesystem(char *fs);
-extern int find_mtd_block(char *name, char *part, int plen);
-extern int find_mtd_char(char *name, char *part, int plen);
 
-extern int jffs2_ready(char *mtd);
-extern int jffs2_switch(int argc, char **argv);
+extern int jffs2_switch(struct volume *v);
 
 extern int handle_whiteout(const char *dir);
 extern void foreachdir(const char *dir, int (*cb)(const char*));
 
+extern void overlay_delete(const char *dir, bool keep_sysupgrade);
+
+enum fs_state fs_state_get(const char *dir);
+int fs_state_set(const char *dir, enum fs_state state);
+
 #endif