30 lines
771 B
C
30 lines
771 B
C
#ifndef FSMAP_H
|
|
# define FSMAP_H
|
|
|
|
# ifndef _GNU_SOURCE
|
|
# define _GNU_SOURCE // asprintf
|
|
# endif
|
|
# include <stdio.h>
|
|
# include <stdint.h>
|
|
# include <stdbool.h>
|
|
# include <sys/types.h>
|
|
# include <ext2fs/ext2fs.h>
|
|
|
|
struct fsmap_format {
|
|
void* (* init)(const char *file, const char *mountpoint);
|
|
int (* start_new_file)(char *path, ext2_ino_t ino,
|
|
struct ext2_inode *inode, void *data);
|
|
int (* add_block)(ext2_filsys fs, blk64_t blocknr, int metadata,
|
|
void *data);
|
|
int (* inline_data)(void *inline_data, void *data);
|
|
int (* end_new_file)(void *data);
|
|
int (* cleanup)(void *data);
|
|
|
|
void *private;
|
|
};
|
|
|
|
errcode_t fsmap_iter_filsys(ext2_filsys fs, struct fsmap_format *format,
|
|
const char *file, const char *mountpoint);
|
|
|
|
#endif /* !FSMAP_H */
|