summaryrefslogtreecommitdiff
path: root/trace.h
diff options
context:
space:
mode:
Diffstat (limited to 'trace.h')
-rw-r--r--trace.h16
1 files changed, 13 insertions, 3 deletions
diff --git a/trace.h b/trace.h
index 8fea50b..d85ac4c 100644
--- a/trace.h
+++ b/trace.h
@@ -4,14 +4,24 @@
#include "git-compat-util.h"
#include "strbuf.h"
+struct trace_key {
+ const char * const key;
+ int fd;
+ unsigned int initialized : 1;
+ unsigned int need_close : 1;
+};
+
+#define TRACE_KEY_INIT(name) { "GIT_TRACE_" #name, 0, 0, 0 }
+
__attribute__((format (printf, 1, 2)))
extern void trace_printf(const char *format, ...);
__attribute__((format (printf, 2, 3)))
extern void trace_argv_printf(const char **argv, const char *format, ...);
extern void trace_repo_setup(const char *prefix);
-extern int trace_want(const char *key);
+extern int trace_want(struct trace_key *key);
+extern void trace_disable(struct trace_key *key);
__attribute__((format (printf, 2, 3)))
-extern void trace_printf_key(const char *key, const char *format, ...);
-extern void trace_strbuf(const char *key, const struct strbuf *buf);
+extern void trace_printf_key(struct trace_key *key, const char *format, ...);
+extern void trace_strbuf(struct trace_key *key, const struct strbuf *buf);
#endif /* TRACE_H */