| #ifndef FSMONITOR_LL_H | 
 | #define FSMONITOR_LL_H | 
 |  | 
 | struct index_state; | 
 | struct strbuf; | 
 |  | 
 | extern struct trace_key trace_fsmonitor; | 
 |  | 
 | /* | 
 |  * Read the fsmonitor index extension and (if configured) restore the | 
 |  * CE_FSMONITOR_VALID state. | 
 |  */ | 
 | int read_fsmonitor_extension(struct index_state *istate, const void *data, unsigned long sz); | 
 |  | 
 | /* | 
 |  * Fill the fsmonitor_dirty ewah bits with their state from the index, | 
 |  * before it is split during writing. | 
 |  */ | 
 | void fill_fsmonitor_bitmap(struct index_state *istate); | 
 |  | 
 | /* | 
 |  * Write the CE_FSMONITOR_VALID state into the fsmonitor index | 
 |  * extension.  Reads from the fsmonitor_dirty ewah in the index. | 
 |  */ | 
 | void write_fsmonitor_extension(struct strbuf *sb, struct index_state *istate); | 
 |  | 
 | /* | 
 |  * Add/remove the fsmonitor index extension | 
 |  */ | 
 | void add_fsmonitor(struct index_state *istate); | 
 | void remove_fsmonitor(struct index_state *istate); | 
 |  | 
 | /* | 
 |  * Add/remove the fsmonitor index extension as necessary based on the current | 
 |  * core.fsmonitor setting. | 
 |  */ | 
 | void tweak_fsmonitor(struct index_state *istate); | 
 |  | 
 | /* | 
 |  * Run the configured fsmonitor integration script and clear the | 
 |  * CE_FSMONITOR_VALID bit for any files returned as dirty.  Also invalidate | 
 |  * any corresponding untracked cache directory structures. Optimized to only | 
 |  * run the first time it is called. | 
 |  */ | 
 | void refresh_fsmonitor(struct index_state *istate); | 
 |  | 
 | /* | 
 |  * Does the received result contain the "trivial" response? | 
 |  */ | 
 | int fsmonitor_is_trivial_response(const struct strbuf *query_result); | 
 |  | 
 | #endif /* FSMONITOR_LL_H */ |