Home | History | Annotate | Download | only in misc
      1 #ifndef _CREATE_INODE_H
      2 #define _CREATE_INODE_H
      3 
      4 #include <sys/types.h>
      5 #include <sys/stat.h>
      6 #include <fcntl.h>
      7 #include "et/com_err.h"
      8 #include "e2p/e2p.h"
      9 #include "ext2fs/ext2fs.h"
     10 
     11 struct hdlink_s
     12 {
     13 	dev_t src_dev;
     14 	ino_t src_ino;
     15 	ext2_ino_t dst_ino;
     16 };
     17 
     18 struct hdlinks_s
     19 {
     20 	int count;
     21 	int size;
     22 	struct hdlink_s *hdl;
     23 };
     24 
     25 #define HDLINK_CNT	(4)
     26 
     27 struct fs_ops_callbacks {
     28 	errcode_t (* create_new_inode)(ext2_filsys fs, const char *target_path,
     29 		const char *name, ext2_ino_t parent_ino, ext2_ino_t root,
     30 		mode_t mode);
     31 	errcode_t (* end_create_new_inode)(ext2_filsys fs,
     32 		const char *target_path, const char *name,
     33 		ext2_ino_t parent_ino, ext2_ino_t root, mode_t mode);
     34 };
     35 
     36 /* For populating the filesystem */
     37 extern errcode_t populate_fs(ext2_filsys fs, ext2_ino_t parent_ino,
     38 			     const char *source_dir, ext2_ino_t root);
     39 extern errcode_t populate_fs2(ext2_filsys fs, ext2_ino_t parent_ino,
     40 			      const char *source_dir, ext2_ino_t root,
     41 			      struct fs_ops_callbacks *fs_callbacks);
     42 extern errcode_t do_mknod_internal(ext2_filsys fs, ext2_ino_t cwd,
     43 				   const char *name, struct stat *st);
     44 extern errcode_t do_symlink_internal(ext2_filsys fs, ext2_ino_t cwd,
     45 				     const char *name, char *target,
     46 				     ext2_ino_t root);
     47 extern errcode_t do_mkdir_internal(ext2_filsys fs, ext2_ino_t cwd,
     48 				   const char *name, ext2_ino_t root);
     49 extern errcode_t do_write_internal(ext2_filsys fs, ext2_ino_t cwd,
     50 				   const char *src, const char *dest,
     51 				   ext2_ino_t root);
     52 
     53 #endif /* _CREATE_INODE_H */
     54