From 8150beac7ced4e35fef7a8db71caee72d455f180 Mon Sep 17 00:00:00 2001 From: Davidlohr Bueso Date: Thu, 5 Jan 2012 00:02:06 +0100 Subject: [PATCH] blkdev: add is_blkdev function We should have the most basic of checks in this library to see whether or not a block device is being used. Signed-off-by: Davidlohr Bueso --- include/blkdev.h | 3 +++ lib/blkdev.c | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/include/blkdev.h b/include/blkdev.h index 1a9119d43d..6b18879761 100644 --- a/include/blkdev.h +++ b/include/blkdev.h @@ -86,6 +86,9 @@ struct hd_geometry { }; #endif +/* are we working with block device? */ +int is_blkdev(int fd); + /* Determine size in bytes */ off_t blkdev_find_size (int fd); diff --git a/lib/blkdev.c b/lib/blkdev.c index 9138b0d854..c59386d9c3 100644 --- a/lib/blkdev.c +++ b/lib/blkdev.c @@ -35,6 +35,12 @@ blkdev_valid_offset (int fd, off_t offset) { return 1; } +int is_blkdev(int fd) +{ + struct stat st; + return (fstat(fd, &st) == 0 && S_ISBLK(st.st_mode)); +} + off_t blkdev_find_size (int fd) { uintmax_t high, low = 0; -- 2.47.3