From: Davidlohr Bueso <dave@xxxxxxx> Date: Mon, 20 Jun 2011 22:51:47 -0400 This function uses the BLKPBSZGET ioctl to get the physical block size of the device. Signed-off-by: Davidlohr Bueso <dave@xxxxxxx> --- include/blkdev.h | 3 +++ lib/blkdev.c | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 0 deletions(-) diff --git a/include/blkdev.h b/include/blkdev.h index 6a64172..0024897 100644 --- a/include/blkdev.h +++ b/include/blkdev.h @@ -95,4 +95,7 @@ int blkdev_get_sector_size(int fd, int *sector_size); /* specifies whether or not the device is misaligned */ int blkdev_is_misaligned(int fd); +/* get physical block device size */ +int blkdev_get_physector_size(int fd); + #endif /* BLKDEV_H */ diff --git a/lib/blkdev.c b/lib/blkdev.c index 5cb6554..94df803 100644 --- a/lib/blkdev.c +++ b/lib/blkdev.c @@ -221,6 +221,20 @@ int blkdev_is_misaligned(int fd) #endif } +/* get physical block device size */ +int blkdev_get_physector_size(int fd) +{ +#ifdef BLKPBSZGET + int bsz; + + if (ioctl(fd, BLKPBSZGET, &bsz) < 0) + return 0; + return bsz; +#else + return 0; +#endif +} + #ifdef TEST_PROGRAM #include <stdio.h> #include <stdlib.h> -- 1.7.5.4 -- To unsubscribe from this list: send the line "unsubscribe util-linux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html