You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.4 KiB
60 lines
1.4 KiB
#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
|
|
|