diff options
author | Thomas Weißschuh <thomas@t-8ch.de> | 2022-12-28 01:47:08 +0000 |
---|---|---|
committer | Thomas Weißschuh <thomas@t-8ch.de> | 2022-12-28 12:34:20 +0000 |
commit | 0cb7e07830c412103a0e939683c2c74b7bcf5be9 (patch) | |
tree | 0b51776eec0d60467a7b6962213ab3aa5d3cacb3 /libblkid | |
parent | 3ab9e699a8d90f55e0447516b7e05a8686180467 (diff) | |
download | util-linux-0cb7e07830c412103a0e939683c2c74b7bcf5be9.tar.gz |
libblkid: topology: probe diskseq
Diffstat (limited to 'libblkid')
-rw-r--r-- | libblkid/docs/libblkid-sections.txt | 1 | ||||
-rw-r--r-- | libblkid/samples/topology.c | 3 | ||||
-rw-r--r-- | libblkid/src/blkid.h.in | 2 | ||||
-rw-r--r-- | libblkid/src/libblkid.sym | 4 | ||||
-rw-r--r-- | libblkid/src/topology/ioctl.c | 3 | ||||
-rw-r--r-- | libblkid/src/topology/sysfs.c | 1 | ||||
-rw-r--r-- | libblkid/src/topology/topology.c | 22 | ||||
-rw-r--r-- | libblkid/src/topology/topology.h | 1 |
8 files changed, 36 insertions, 1 deletions
diff --git a/libblkid/docs/libblkid-sections.txt b/libblkid/docs/libblkid-sections.txt index d54cf66e0..929700253 100644 --- a/libblkid/docs/libblkid-sections.txt +++ b/libblkid/docs/libblkid-sections.txt @@ -151,6 +151,7 @@ blkid_probe_enable_topology blkid_probe_get_topology blkid_topology_get_alignment_offset blkid_topology_get_dax +blkid_topology_get_diskseq blkid_topology_get_logical_sector_size blkid_topology_get_minimum_io_size blkid_topology_get_optimal_io_size diff --git a/libblkid/samples/topology.c b/libblkid/samples/topology.c index 7d21567d5..8dfb9c5bb 100644 --- a/libblkid/samples/topology.c +++ b/libblkid/samples/topology.c @@ -11,6 +11,7 @@ #include <sys/stat.h> #include <fcntl.h> #include <errno.h> +#include <inttypes.h> #include <blkid.h> @@ -53,6 +54,8 @@ int main(int argc, char *argv[]) blkid_topology_get_physical_sector_size(tp)); printf("\tdax support : %lu\n", blkid_topology_get_dax(tp)); + printf("\tdiskseq : %"PRId64"\n", + blkid_topology_get_diskseq(tp)); } /* diff --git a/libblkid/src/blkid.h.in b/libblkid/src/blkid.h.in index 6132cb8a1..c232d72fd 100644 --- a/libblkid/src/blkid.h.in +++ b/libblkid/src/blkid.h.in @@ -333,6 +333,8 @@ extern unsigned long blkid_topology_get_physical_sector_size(blkid_topology tp) __ul_attribute__((nonnull)); extern unsigned long blkid_topology_get_dax(blkid_topology tp) __ul_attribute__((nonnull)); +extern uint64_t blkid_topology_get_diskseq(blkid_topology tp) + __ul_attribute__((nonnull)); /* * partitions probing diff --git a/libblkid/src/libblkid.sym b/libblkid/src/libblkid.sym index 366f2c0c0..775b0246c 100644 --- a/libblkid/src/libblkid.sym +++ b/libblkid/src/libblkid.sym @@ -183,3 +183,7 @@ BLKID_2_37 { blkid_probe_set_hint; blkid_probe_reset_hints; } BLKID_2_36; + +BLKID_2_39 { + blkid_topology_get_diskseq; +} BLKID_2_37; diff --git a/libblkid/src/topology/ioctl.c b/libblkid/src/topology/ioctl.c index 3aba09e4f..0603eb912 100644 --- a/libblkid/src/topology/ioctl.c +++ b/libblkid/src/topology/ioctl.c @@ -33,7 +33,8 @@ static struct topology_val { { 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 } + { BLKPBSZGET, blkid_topology_set_physical_sector_size }, + { BLKGETDISKSEQ, blkid_topology_set_diskseq }, /* we read BLKSSZGET in topology.c */ }; diff --git a/libblkid/src/topology/sysfs.c b/libblkid/src/topology/sysfs.c index 745cd115a..fe13f940f 100644 --- a/libblkid/src/topology/sysfs.c +++ b/libblkid/src/topology/sysfs.c @@ -38,6 +38,7 @@ static struct topology_val { { "queue/optimal_io_size", blkid_topology_set_optimal_io_size }, { "queue/physical_block_size", blkid_topology_set_physical_sector_size }, { "queue/dax", blkid_topology_set_dax }, + { "diskseq", blkid_topology_set_diskseq }, }; static int probe_sysfs_tp(blkid_probe pr, diff --git a/libblkid/src/topology/topology.c b/libblkid/src/topology/topology.c index d638c4c20..d34e7a0bb 100644 --- a/libblkid/src/topology/topology.c +++ b/libblkid/src/topology/topology.c @@ -68,6 +68,7 @@ struct blkid_struct_topology { unsigned long logical_sector_size; unsigned long physical_sector_size; unsigned long dax; + uint64_t diskseq; }; /* @@ -312,6 +313,14 @@ int blkid_topology_set_dax(blkid_probe pr, unsigned long 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: * @tp: topology @@ -379,3 +388,16 @@ unsigned long blkid_topology_get_dax(blkid_topology tp) { 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; +} diff --git a/libblkid/src/topology/topology.h b/libblkid/src/topology/topology.h index 3e46af9ac..9810fe46b 100644 --- a/libblkid/src/topology/topology.h +++ b/libblkid/src/topology/topology.h @@ -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_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_diskseq(blkid_probe pr, uint64_t val); /* * topology probers |