#define RAID_METADATA "1.0"
+#define SERIAL_BAUDRATE 115200
+
#define BYTES2MB(x) ((x) / 1024 / 1024)
#define MB2BYTES(x) ((unsigned long long)(x) * 1024 * 1024)
char* hw_find_source_medium(struct hw* hw);
-struct hw_disk** hw_find_disks(struct hw* hw);
+struct hw_disk** hw_find_disks(struct hw* hw, const char* sourcedrive);
void hw_free_disks(struct hw_disk** disks);
-unsigned int hw_count_disks(struct hw_disk** disks);
+unsigned int hw_count_disks(const struct hw_disk** disks);
struct hw_disk** hw_select_disks(struct hw_disk** disks, int* selection);
+struct hw_disk** hw_select_first_disk(const struct hw_disk** disks);
-struct hw_destination* hw_make_destination(int part_type, struct hw_disk** disks);
+struct hw_destination* hw_make_destination(int part_type, struct hw_disk** disks,
+ int disable_swap);
unsigned long long hw_memory();
-int hw_create_partitions(struct hw_destination* dest);
-int hw_create_filesystems(struct hw_destination* dest);
+int hw_create_partitions(struct hw_destination* dest, const char* output);
+int hw_create_filesystems(struct hw_destination* dest, const char* output);
int hw_mount_filesystems(struct hw_destination* dest, const char* prefix);
int hw_umount_filesystems(struct hw_destination* dest, const char* prefix);
-int hw_setup_raid(struct hw_destination* dest);
-int hw_stop_all_raid_arrays();
+int hw_destroy_raid_superblocks(const struct hw_destination* dest, const char* output);
+int hw_setup_raid(struct hw_destination* dest, const char* output);
+int hw_stop_all_raid_arrays(const char* output);
-int hw_install_bootloader(struct hw_destination* dest);
+int hw_install_bootloader(struct hw_destination* dest, const char* output);
int hw_write_fstab(struct hw_destination* dest);
+char* hw_find_backup_file(const char* output, const char* search_path);
+int hw_restore_backup(const char* output, const char* backup_path, const char* destination);
+
+int hw_start_networking(const char* output);
+
void hw_sync();
#endif /* HEADER_HW_H */