#ifndef GIT_FSCK_H
#define GIT_FSCK_H
#include "object.h"
#include "oidset.h"
enum fsck_msg_type { … };
#define FOREACH_FSCK_MSG_ID(FUNC) …
#define MSG_ID …
enum fsck_msg_id { … };
#undef MSG_ID
struct fsck_options;
struct object;
void fsck_set_msg_type_from_ids(struct fsck_options *options,
enum fsck_msg_id msg_id,
enum fsck_msg_type msg_type);
void fsck_set_msg_type(struct fsck_options *options,
const char *msg_id, const char *msg_type);
void fsck_set_msg_types(struct fsck_options *options, const char *values);
int is_valid_msg_type(const char *msg_id, const char *msg_type);
fsck_walk_func;
fsck_error;
int fsck_objects_error_function(struct fsck_options *o,
void *fsck_report,
enum fsck_msg_type msg_type, enum fsck_msg_id msg_id,
const char *message);
int fsck_objects_error_cb_print_missing_gitmodules(struct fsck_options *o,
void *fsck_report,
enum fsck_msg_type msg_type,
enum fsck_msg_id msg_id,
const char *message);
int fsck_refs_error_function(struct fsck_options *options,
void *fsck_report,
enum fsck_msg_type msg_type,
enum fsck_msg_id msg_id,
const char *message);
struct fsck_object_report { … };
struct fsck_ref_report { … };
struct fsck_options { … };
#define FSCK_OPTIONS_DEFAULT …
#define FSCK_OPTIONS_STRICT …
#define FSCK_OPTIONS_MISSING_GITMODULES …
#define FSCK_REFS_OPTIONS_DEFAULT …
int fsck_walk(struct object *obj, void *data, struct fsck_options *options);
int fsck_object(struct object *obj, void *data, unsigned long size,
struct fsck_options *options);
int fsck_buffer(const struct object_id *oid, enum object_type,
const void *data, unsigned long size,
struct fsck_options *options);
int fsck_tag_standalone(const struct object_id *oid, const char *buffer,
unsigned long size, struct fsck_options *options,
struct object_id *tagged_oid,
int *tag_type);
int fsck_finish(struct fsck_options *options);
void fsck_options_clear(struct fsck_options *options);
__attribute__((format (printf, 4, 5)))
int fsck_report_ref(struct fsck_options *options,
struct fsck_ref_report *report,
enum fsck_msg_id msg_id,
const char *fmt, ...);
void fsck_enable_object_names(struct fsck_options *options);
const char *fsck_get_object_name(struct fsck_options *options,
const struct object_id *oid);
__attribute__((format (printf,3,4)))
void fsck_put_object_name(struct fsck_options *options,
const struct object_id *oid,
const char *fmt, ...);
const char *fsck_describe_object(struct fsck_options *options,
const struct object_id *oid);
struct key_value_info;
int git_fsck_config(const char *var, const char *value,
const struct config_context *ctx, void *cb);
#endif