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