Git fork
at reftables-rust 60 lines 1.4 kB view raw
1#ifndef FSM_PATH_UTILS_H 2#define FSM_PATH_UTILS_H 3 4#include "strbuf.h" 5 6struct alias_info 7{ 8 struct strbuf alias; 9 struct strbuf points_to; 10}; 11 12struct fs_info { 13 int is_remote; 14 char *typename; 15}; 16 17/* 18 * Get some basic filesystem information for the given path 19 * 20 * The caller owns the storage that is occupied by fs_info and 21 * is responsible for releasing it. 22 * 23 * Returns -1 on error, zero otherwise. 24 */ 25int fsmonitor__get_fs_info(const char *path, struct fs_info *fs_info); 26 27/* 28 * Determines if the filesystem that path resides on is remote. 29 * 30 * Returns -1 on error, 0 if not remote, 1 if remote. 31 */ 32int fsmonitor__is_fs_remote(const char *path); 33 34/* 35 * Get the alias in given path, if any. 36 * 37 * Sets alias to the first alias that matches any part of the path. 38 * 39 * If an alias is found, info.alias and info.points_to are set to the 40 * found mapping. 41 * 42 * Returns -1 on error, 0 otherwise. 43 * 44 * The caller owns the storage that is occupied by info.alias and 45 * info.points_to and is responsible for releasing it. 46 */ 47int fsmonitor__get_alias(const char *path, struct alias_info *info); 48 49/* 50 * Resolve the path against the given alias. 51 * 52 * Returns the resolved path if there is one, NULL otherwise. 53 * 54 * The caller owns the storage that the returned string occupies and 55 * is responsible for releasing it. 56 */ 57char *fsmonitor__resolve_alias(const char *path, 58 const struct alias_info *info); 59 60#endif