initial code repo
[stor4nfv.git] / src / ceph / src / common / blkdev.h
diff --git a/src/ceph/src/common/blkdev.h b/src/ceph/src/common/blkdev.h
new file mode 100644 (file)
index 0000000..eef3a25
--- /dev/null
@@ -0,0 +1,29 @@
+#ifndef __CEPH_COMMON_BLKDEV_H
+#define __CEPH_COMMON_BLKDEV_H
+
+/* for testing purposes */
+extern void set_block_device_sandbox_dir(const char *dir);
+
+// from a path (e.g., "/dev/sdb")
+extern int get_block_device_base(const char *path, char *devname, size_t len);
+
+// from an fd
+extern int block_device_discard(int fd, int64_t offset, int64_t len);
+extern int get_block_device_size(int fd, int64_t *psize);
+extern int get_device_by_fd(int fd, char* partition, char* device, size_t max);
+
+// from a uuid
+extern int get_device_by_uuid(uuid_d dev_uuid, const char* label,
+                             char* partition, char* device);
+
+// from a device (e.g., "sdb")
+extern int64_t get_block_device_int_property(
+       const char *devname, const char *property);
+extern int64_t get_block_device_string_property(
+       const char *devname, const char *property,
+       char *val, size_t maxlen);
+extern bool block_device_support_discard(const char *devname);
+extern bool block_device_is_rotational(const char *devname);
+extern int block_device_model(const char *devname, char *model, size_t max);
+
+#endif