/* * Dare library * Copyright (c)2004-2005 by Marek Zelem */ #include #include #include #include #include #include #include struct dare_info { char *mountpoint; unsigned long dirnum; /* /deleted//... */ unsigned long ino; time_t dtime; /* in seconds */ unsigned int uid; unsigned int gid; unsigned int mode; unsigned int p_fsuid; unsigned int p_uid; unsigned int p_luid; char path[0]; }; typedef int(*dare_info_do_t)(void *,struct dare_info *); int dare_is_supported( char *mountpoint ); /* function must free(info) */ int dare_info_foreach( char *mountpoint, unsigned long dirnum, dare_info_do_t function, void *arg ); int dare_info_foreach_inf( char *mountpoint, int(*foreach_inf)(char *mountpoint,unsigned long dirnum,dare_info_do_t function,void *arg), dare_info_do_t function, void *arg ); int dare_remove_dirnum( char *mountpoint, unsigned long dirnum ); char *dare_path( struct dare_info *info ); int dare_exist( struct dare_info *info ); struct stat *dare_lstat( struct dare_info *info ); char *dare_orig_path( struct dare_info *info ); int dare_salvage( struct dare_info *info ); int dare_purge( struct dare_info *info ); /* pwd must end with '/' */ char *dare_minimize_path( char *pwd, char *path ); /* dir must end with '/' */ int dare_is_in_dir( struct dare_info *info, char *dir, int recursive ); char *dare_ls( struct dare_info *info, int format, char *pwd );