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