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_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
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 */
|
||||
};
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
ID_FS_DISKSEQ=S
|
||||
ID_IOLIMIT_LOGICAL_SECTOR_SIZE=512
|
||||
ID_IOLIMIT_MINIMUM_IO_SIZE=512
|
||||
ID_IOLIMIT_PHYSICAL_SECTOR_SIZE=512
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
ID_FS_DISKSEQ=S
|
||||
ID_IOLIMIT_LOGICAL_SECTOR_SIZE=512
|
||||
ID_IOLIMIT_MINIMUM_IO_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" \
|
||||
2> "$TS_ERRLOG" \
|
||||
| sed -E -e 's/^ID_FS_DISKSEQ=[[:digit:]]+$/ID_FS_DISKSEQ=S/' \
|
||||
| sort > "$TS_OUTPUT"
|
||||
|
||||
ts_finalize_subtest
|
||||
|
@ -45,6 +46,7 @@ ts_init_subtest partition
|
|||
|
||||
"$TS_CMD_BLKID" -i -o udev "$TS_LODEV"p1 \
|
||||
2> "$TS_ERRLOG" \
|
||||
| sed -E -e 's/^ID_FS_DISKSEQ=[[:digit:]]+$/ID_FS_DISKSEQ=S/' \
|
||||
| sort > "$TS_OUTPUT"
|
||||
|
||||
ts_finalize_subtest
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue