| 1 | #ifndef SPLIT_INDEX_H |
| 2 | #define SPLIT_INDEX_H |
| 3 | |
| 4 | #include "cache.h" |
| 5 | |
| 6 | struct index_state; |
| 7 | struct strbuf; |
| 8 | struct ewah_bitmap; |
| 9 | |
| 10 | struct split_index { |
| 11 | struct object_id base_oid; |
| 12 | struct index_state *base; |
| 13 | struct ewah_bitmap *delete_bitmap; |
| 14 | struct ewah_bitmap *replace_bitmap; |
| 15 | struct cache_entry **saved_cache; |
| 16 | unsigned int saved_cache_nr; |
| 17 | unsigned int nr_deletions; |
| 18 | unsigned int nr_replacements; |
| 19 | int refcount; |
| 20 | }; |
| 21 | |
| 22 | struct split_index *init_split_index(struct index_state *istate); |
| 23 | void save_or_free_index_entry(struct index_state *istate, struct cache_entry *ce); |
| 24 | void replace_index_entry_in_base(struct index_state *istate, |
| 25 | struct cache_entry *old, |
| 26 | struct cache_entry *new_entry); |
| 27 | int read_link_extension(struct index_state *istate, |
| 28 | const void *data, unsigned long sz); |
| 29 | int write_link_extension(struct strbuf *sb, |
| 30 | struct index_state *istate); |
| 31 | void move_cache_to_base_index(struct index_state *istate); |
| 32 | void merge_base_index(struct index_state *istate); |
| 33 | void prepare_to_write_split_index(struct index_state *istate); |
| 34 | void finish_writing_split_index(struct index_state *istate); |
| 35 | void discard_split_index(struct index_state *istate); |
| 36 | void add_split_index(struct index_state *istate); |
| 37 | void remove_split_index(struct index_state *istate); |
| 38 | |
| 39 | #endif |