summaryrefslogtreecommitdiffstats
path: root/common/block.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/block.c')
-rw-r--r--common/block.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/common/block.c b/common/block.c
index 2cf85ae987..ad07f8b2e2 100644
--- a/common/block.c
+++ b/common/block.c
@@ -387,3 +387,25 @@ int blockdevice_unregister(struct block_device *blk)
return 0;
}
+
+int block_read(struct block_device *blk, void *buf, int block, int num_blocks)
+{
+ int ret;
+
+ ret = cdev_read(&blk->cdev, buf,
+ num_blocks << blk->blockbits,
+ (loff_t)block << blk->blockbits, 0);
+
+ return ret < 0 ? ret : 0;
+}
+
+int block_write(struct block_device *blk, void *buf, int block, int num_blocks)
+{
+ int ret;
+
+ ret = cdev_write(&blk->cdev, buf,
+ num_blocks << blk->blockbits,
+ (loff_t)block << blk->blockbits, 0);
+
+ return ret < 0 ? ret : 0;
+}