| #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 |