libblkid: topology: probe diskseq
This commit is contained in:
parent
3ab9e699a8
commit
0cb7e07830
11 changed files with 40 additions and 1 deletions
|
@ -151,6 +151,7 @@ blkid_probe_enable_topology
|
||||||
blkid_probe_get_topology
|
blkid_probe_get_topology
|
||||||
blkid_topology_get_alignment_offset
|
blkid_topology_get_alignment_offset
|
||||||
blkid_topology_get_dax
|
blkid_topology_get_dax
|
||||||
|
blkid_topology_get_diskseq
|
||||||
blkid_topology_get_logical_sector_size
|
blkid_topology_get_logical_sector_size
|
||||||
blkid_topology_get_minimum_io_size
|
blkid_topology_get_minimum_io_size
|
||||||
blkid_topology_get_optimal_io_size
|
blkid_topology_get_optimal_io_size
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
#include <inttypes.h>
|
||||||
|
|
||||||
#include <blkid.h>
|
#include <blkid.h>
|
||||||
|
|
||||||
|
@ -53,6 +54,8 @@ int main(int argc, char *argv[])
|
||||||
blkid_topology_get_physical_sector_size(tp));
|
blkid_topology_get_physical_sector_size(tp));
|
||||||
printf("\tdax support : %lu\n",
|
printf("\tdax support : %lu\n",
|
||||||
blkid_topology_get_dax(tp));
|
blkid_topology_get_dax(tp));
|
||||||
|
printf("\tdiskseq : %"PRId64"\n",
|
||||||
|
blkid_topology_get_diskseq(tp));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -333,6 +333,8 @@ extern unsigned long blkid_topology_get_physical_sector_size(blkid_topology tp)
|
||||||
__ul_attribute__((nonnull));
|
__ul_attribute__((nonnull));
|
||||||
extern unsigned long blkid_topology_get_dax(blkid_topology tp)
|
extern unsigned long blkid_topology_get_dax(blkid_topology tp)
|
||||||
__ul_attribute__((nonnull));
|
__ul_attribute__((nonnull));
|
||||||
|
extern uint64_t blkid_topology_get_diskseq(blkid_topology tp)
|
||||||
|
__ul_attribute__((nonnull));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* partitions probing
|
* partitions probing
|
||||||
|
|
|
@ -183,3 +183,7 @@ BLKID_2_37 {
|
||||||
blkid_probe_set_hint;
|
blkid_probe_set_hint;
|
||||||
blkid_probe_reset_hints;
|
blkid_probe_reset_hints;
|
||||||
} BLKID_2_36;
|
} BLKID_2_36;
|
||||||
|
|
||||||
|
BLKID_2_39 {
|
||||||
|
blkid_topology_get_diskseq;
|
||||||
|
} BLKID_2_37;
|
||||||
|
|
|
@ -33,7 +33,8 @@ static struct topology_val {
|
||||||
{ BLKALIGNOFF, NULL, blkid_topology_set_alignment_offset },
|
{ BLKALIGNOFF, NULL, blkid_topology_set_alignment_offset },
|
||||||
{ BLKIOMIN, blkid_topology_set_minimum_io_size },
|
{ BLKIOMIN, blkid_topology_set_minimum_io_size },
|
||||||
{ BLKIOOPT, blkid_topology_set_optimal_io_size },
|
{ BLKIOOPT, blkid_topology_set_optimal_io_size },
|
||||||
{ BLKPBSZGET, blkid_topology_set_physical_sector_size }
|
{ BLKPBSZGET, blkid_topology_set_physical_sector_size },
|
||||||
|
{ BLKGETDISKSEQ, blkid_topology_set_diskseq },
|
||||||
/* we read BLKSSZGET in topology.c */
|
/* we read BLKSSZGET in topology.c */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,7 @@ static struct topology_val {
|
||||||
{ "queue/optimal_io_size", blkid_topology_set_optimal_io_size },
|
{ "queue/optimal_io_size", blkid_topology_set_optimal_io_size },
|
||||||
{ "queue/physical_block_size", blkid_topology_set_physical_sector_size },
|
{ "queue/physical_block_size", blkid_topology_set_physical_sector_size },
|
||||||
{ "queue/dax", blkid_topology_set_dax },
|
{ "queue/dax", blkid_topology_set_dax },
|
||||||
|
{ "diskseq", blkid_topology_set_diskseq },
|
||||||
};
|
};
|
||||||
|
|
||||||
static int probe_sysfs_tp(blkid_probe pr,
|
static int probe_sysfs_tp(blkid_probe pr,
|
||||||
|
|
|
@ -68,6 +68,7 @@ struct blkid_struct_topology {
|
||||||
unsigned long logical_sector_size;
|
unsigned long logical_sector_size;
|
||||||
unsigned long physical_sector_size;
|
unsigned long physical_sector_size;
|
||||||
unsigned long dax;
|
unsigned long dax;
|
||||||
|
uint64_t diskseq;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -312,6 +313,14 @@ int blkid_topology_set_dax(blkid_probe pr, unsigned long val)
|
||||||
val);
|
val);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int blkid_topology_set_diskseq(blkid_probe pr, uint64_t val)
|
||||||
|
{
|
||||||
|
return topology_set_value(pr,
|
||||||
|
"DISKSEQ",
|
||||||
|
offsetof(struct blkid_struct_topology, diskseq),
|
||||||
|
val);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* blkid_topology_get_alignment_offset:
|
* blkid_topology_get_alignment_offset:
|
||||||
* @tp: topology
|
* @tp: topology
|
||||||
|
@ -379,3 +388,16 @@ unsigned long blkid_topology_get_dax(blkid_topology tp)
|
||||||
{
|
{
|
||||||
return tp->dax;
|
return tp->dax;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* blkid_topology_get_diskseq
|
||||||
|
* @tp: topology
|
||||||
|
*
|
||||||
|
* Returns: disk sequence number
|
||||||
|
*
|
||||||
|
* Since: 2.39
|
||||||
|
*/
|
||||||
|
uint64_t blkid_topology_get_diskseq(blkid_topology tp)
|
||||||
|
{
|
||||||
|
return tp->diskseq;
|
||||||
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ extern int blkid_topology_set_minimum_io_size(blkid_probe pr, unsigned long val)
|
||||||
extern int blkid_topology_set_optimal_io_size(blkid_probe pr, unsigned long val);
|
extern int blkid_topology_set_optimal_io_size(blkid_probe pr, unsigned long val);
|
||||||
extern int blkid_topology_set_physical_sector_size(blkid_probe pr, unsigned long val);
|
extern int blkid_topology_set_physical_sector_size(blkid_probe pr, unsigned long val);
|
||||||
extern int blkid_topology_set_dax(blkid_probe pr, unsigned long val);
|
extern int blkid_topology_set_dax(blkid_probe pr, unsigned long val);
|
||||||
|
extern int blkid_topology_set_diskseq(blkid_probe pr, uint64_t val);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* topology probers
|
* topology probers
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
ID_FS_DISKSEQ=S
|
||||||
ID_IOLIMIT_LOGICAL_SECTOR_SIZE=512
|
ID_IOLIMIT_LOGICAL_SECTOR_SIZE=512
|
||||||
ID_IOLIMIT_MINIMUM_IO_SIZE=512
|
ID_IOLIMIT_MINIMUM_IO_SIZE=512
|
||||||
ID_IOLIMIT_PHYSICAL_SECTOR_SIZE=512
|
ID_IOLIMIT_PHYSICAL_SECTOR_SIZE=512
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
ID_FS_DISKSEQ=S
|
||||||
ID_IOLIMIT_LOGICAL_SECTOR_SIZE=512
|
ID_IOLIMIT_LOGICAL_SECTOR_SIZE=512
|
||||||
ID_IOLIMIT_MINIMUM_IO_SIZE=512
|
ID_IOLIMIT_MINIMUM_IO_SIZE=512
|
||||||
ID_IOLIMIT_PHYSICAL_SECTOR_SIZE=512
|
ID_IOLIMIT_PHYSICAL_SECTOR_SIZE=512
|
||||||
|
|
|
@ -36,6 +36,7 @@ echo -e 'label: dos\n- - - -' | "$TS_CMD_SFDISK" -q "$TS_LODEV"
|
||||||
|
|
||||||
"$TS_CMD_BLKID" -i -o udev "$TS_LODEV" \
|
"$TS_CMD_BLKID" -i -o udev "$TS_LODEV" \
|
||||||
2> "$TS_ERRLOG" \
|
2> "$TS_ERRLOG" \
|
||||||
|
| sed -E -e 's/^ID_FS_DISKSEQ=[[:digit:]]+$/ID_FS_DISKSEQ=S/' \
|
||||||
| sort > "$TS_OUTPUT"
|
| sort > "$TS_OUTPUT"
|
||||||
|
|
||||||
ts_finalize_subtest
|
ts_finalize_subtest
|
||||||
|
@ -45,6 +46,7 @@ ts_init_subtest partition
|
||||||
|
|
||||||
"$TS_CMD_BLKID" -i -o udev "$TS_LODEV"p1 \
|
"$TS_CMD_BLKID" -i -o udev "$TS_LODEV"p1 \
|
||||||
2> "$TS_ERRLOG" \
|
2> "$TS_ERRLOG" \
|
||||||
|
| sed -E -e 's/^ID_FS_DISKSEQ=[[:digit:]]+$/ID_FS_DISKSEQ=S/' \
|
||||||
| sort > "$TS_OUTPUT"
|
| sort > "$TS_OUTPUT"
|
||||||
|
|
||||||
ts_finalize_subtest
|
ts_finalize_subtest
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue