-void fh_init P((dumpfile_t *file));
-void parse_file_header P((const char *buffer, dumpfile_t *file, size_t buflen));
-void build_header P((char *buffer,
- const dumpfile_t *file,
- size_t buflen));
-void print_header P((FILE *outf, const dumpfile_t *file));
-int known_compress_type P((const dumpfile_t *file));
+/* Makes a serialized header from the dumpfile_t representation. The
+ * return value is allocated using malloc(), so you must free it.
+ *
+ * Build_header guarantees that the buffer returned is exactly
+ * 'size' bytes, with any extra bytes zeroed out. */
+char * build_header (const dumpfile_t *file, size_t size);
+
+void fh_init(dumpfile_t *file);
+void parse_file_header(const char *buffer, dumpfile_t *file, size_t buflen);
+void print_header(FILE *outf, const dumpfile_t *file);
+int known_compress_type(const dumpfile_t *file);
+void dump_dumpfile_t(const dumpfile_t *file);
+
+/* Returns TRUE if the two headers are equal, FALSE otherwise. */
+gboolean headers_are_equal(dumpfile_t * a, dumpfile_t * b);
+
+/* Returns an allocated duplicate header. */
+dumpfile_t * dumpfile_copy(dumpfile_t* from);
+void dumpfile_copy_in_place(dumpfile_t *dest, dumpfile_t* source);
+
+/* Frees associated storage */
+void dumpfile_free_data(dumpfile_t* info);
+
+/* Frees the header and associated storage */
+void dumpfile_free(dumpfile_t* info);