+#include <sys/stat.h>
+#include "fts_.h"
+
+struct writer {
+ /* Start building a new appliance.
+ * 'appliance' is the output appliance.
+ * 'initrd' is the mini-initrd to create (only used for ext2 output).
+ * 'modpath' is the kernel module path.
+ */
+ void (*wr_start) (const char *hostcpu, const char *appliance,
+ const char *modpath, const char *initrd);
+
+ /* Finish off the appliance. */
+ void (*wr_end) (void);
+
+ /* Append the named host file to the appliance being built. The
+ * wr_file_stat form is used where we have already stat'd this file,
+ * to avoid having to stat it a second time. The wr_fts_entry form
+ * is used where the caller has an FTSENT.
+ */
+ void (*wr_file) (const char *filename);
+ void (*wr_file_stat) (const char *filename, const struct stat *);
+ void (*wr_fts_entry) (FTSENT *entry);
+
+ /* Append the contents of cpio file to the appliance being built. */
+ void (*wr_cpio_file) (const char *cpio_file);
+};
+