vd_vtoc
#define VD_VTOC2VTOC(vd_vtoc, vtoc) \
bcopy((vd_vtoc)->volume_name, (vtoc)->v_volume, \
MIN(sizeof ((vd_vtoc)->volume_name), \
bcopy((vd_vtoc)->ascii_label, (vtoc)->v_asciilabel, \
MIN(sizeof ((vd_vtoc)->ascii_label), \
(vtoc)->v_sectorsz = (vd_vtoc)->sector_size; \
(vtoc)->v_nparts = (vd_vtoc)->num_partitions; \
for (int i = 0; i < (vd_vtoc)->num_partitions; i++) { \
(vtoc)->v_part[i].p_tag = (vd_vtoc)->partition[i].id_tag; \
(vtoc)->v_part[i].p_flag = (vd_vtoc)->partition[i].perm; \
(vtoc)->v_part[i].p_start = (vd_vtoc)->partition[i].start; \
(vtoc)->v_part[i].p_size = (vd_vtoc)->partition[i].nblocks; \
#define VTOC2VD_VTOC(vtoc, vd_vtoc) \
bzero((vd_vtoc), sizeof (*(vd_vtoc))); \
bcopy((vtoc)->v_volume, (vd_vtoc)->volume_name, \
sizeof ((vd_vtoc)->volume_name))); \
bcopy((vtoc)->v_asciilabel, (vd_vtoc)->ascii_label, \
sizeof ((vd_vtoc)->ascii_label))); \
(vd_vtoc)->sector_size = (vtoc)->v_sectorsz; \
(vd_vtoc)->num_partitions = (vtoc)->v_nparts; \
(vd_vtoc)->partition[i].id_tag = (vtoc)->v_part[i].p_tag; \
(vd_vtoc)->partition[i].perm = (vtoc)->v_part[i].p_flag; \
(vd_vtoc)->partition[i].start = (vtoc)->v_part[i].p_start; \
(vd_vtoc)->partition[i].nblocks = (vtoc)->v_part[i].p_size; \