diff options
Diffstat (limited to 'fsmonitor-path-utils.h')
-rw-r--r-- | fsmonitor-path-utils.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/fsmonitor-path-utils.h b/fsmonitor-path-utils.h new file mode 100644 index 0000000..5bfdfb8 --- /dev/null +++ b/fsmonitor-path-utils.h @@ -0,0 +1,60 @@ +#ifndef FSM_PATH_UTILS_H +#define FSM_PATH_UTILS_H + +#include "strbuf.h" + +struct alias_info +{ + struct strbuf alias; + struct strbuf points_to; +}; + +struct fs_info { + int is_remote; + char *typename; +}; + +/* + * Get some basic filesystem information for the given path + * + * The caller owns the storage that is occupied by fs_info and + * is responsible for releasing it. + * + * Returns -1 on error, zero otherwise. + */ +int fsmonitor__get_fs_info(const char *path, struct fs_info *fs_info); + +/* + * Determines if the filesystem that path resides on is remote. + * + * Returns -1 on error, 0 if not remote, 1 if remote. + */ +int fsmonitor__is_fs_remote(const char *path); + +/* + * Get the alias in given path, if any. + * + * Sets alias to the first alias that matches any part of the path. + * + * If an alias is found, info.alias and info.points_to are set to the + * found mapping. + * + * Returns -1 on error, 0 otherwise. + * + * The caller owns the storage that is occupied by info.alias and + * info.points_to and is responsible for releasing it. + */ +int fsmonitor__get_alias(const char *path, struct alias_info *info); + +/* + * Resolve the path against the given alias. + * + * Returns the resolved path if there is one, NULL otherwise. + * + * The caller owns the storage that the returned string occupies and + * is responsible for releasing it. + */ +char *fsmonitor__resolve_alias(const char *path, + const struct alias_info *info); + +#endif |