···436436437437void fill_stat_cache_info(struct index_state *istate, struct cache_entry *ce, struct stat *st);
438438439439+/*
440440+ * Fill members of st by members of sd enough to convince match_stat()
441441+ * to consider that they match. It should be usable as a replacement
442442+ * for lstat() for a tracked path that is known to be up-to-date via
443443+ * some out-of-line means (like fsmonitor).
444444+ */
445445+int fake_lstat(const struct cache_entry *ce, struct stat *st);
446446+439447#define REFRESH_REALLY (1 << 0) /* ignore_valid */
440448#define REFRESH_UNMERGED (1 << 1) /* allow unmerged */
441449#define REFRESH_QUIET (1 << 2) /* be quiet about it */
···4747void fill_stat_data(struct stat_data *sd, struct stat *st);
48484949/*
5050+ * The inverse of the above. When we know the cache_entry that
5151+ * contains sd is up-to-date, but still need to pretend we called
5252+ * lstat() to learn that fact, this function fills "st" enough to
5353+ * fool ie_match_stat().
5454+ */
5555+void fake_lstat_data(const struct stat_data *sd, struct stat *st);
5656+5757+/*
5058 * Return 0 if st is consistent with a file not having been changed
5159 * since sd was filled. If there are differences, return a
5260 * combination of MTIME_CHANGED, CTIME_CHANGED, OWNER_CHANGED,