/* functions to set probing result */
int (*set_ulong)(blkid_probe, unsigned long);
int (*set_int)(blkid_probe, int);
+ int (*set_u64)(blkid_probe, uint64_t);
} topology_vals[] = {
{ BLKALIGNOFF, NULL, blkid_topology_set_alignment_offset },
{ BLKIOMIN, blkid_topology_set_minimum_io_size },
{ BLKIOOPT, blkid_topology_set_optimal_io_size },
{ BLKPBSZGET, blkid_topology_set_physical_sector_size },
- { BLKGETDISKSEQ, blkid_topology_set_diskseq },
+ { BLKGETDISKSEQ, .set_u64 = blkid_topology_set_diskseq },
/* we read BLKSSZGET in topology.c */
};
union {
unsigned long ul;
int i;
+ uint64_t u64;
} data;
if (ioctl(pr->fd, val->ioc, &data) == -1)
if (val->set_int)
rc = val->set_int(pr, data.i);
- else
+ else if (val->set_ulong)
rc = val->set_ulong(pr, data.ul);
+ else
+ rc = val->set_u64(pr, data.u64);
+
if (rc)
goto err;
}