From dcae76d8cb3787866f777f0a4953eb0a071556b5 Mon Sep 17 00:00:00 2001 From: linzhenxing Date: Mon, 6 Jun 2022 16:25:36 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=8D=E5=90=88=E5=A4=9A=E5=88=86=E5=8C=BA?= =?UTF-8?q?=E6=8C=82=E8=BD=BD=E9=97=AE=E9=A2=98=E7=9A=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/drivers/sdio/block_dev.c | 6 ++++-- include/rtdef.h | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/components/drivers/sdio/block_dev.c b/components/drivers/sdio/block_dev.c index 581eb35798..104ac3e075 100644 --- a/components/drivers/sdio/block_dev.c +++ b/components/drivers/sdio/block_dev.c @@ -227,6 +227,8 @@ static rt_err_t rt_mmcsd_control(rt_device_t dev, int cmd, void *args) case RT_DEVICE_CTRL_BLK_GETGEOME: rt_memcpy(args, &blk_dev->geometry, sizeof(struct rt_device_blk_geometry)); break; + case RT_DEVICE_CTRL_BLK_PARTITION: + rt_memcpy(args, &blk_dev->part, sizeof(struct dfs_partition)); default: break; } @@ -256,7 +258,7 @@ static rt_size_t rt_mmcsd_read(rt_device_t dev, while (remain_size) { req_size = (remain_size > blk_dev->max_req_size) ? blk_dev->max_req_size : remain_size; - err = rt_mmcsd_req_blk(blk_dev->card, part->offset + pos + offset, rd_ptr, req_size, 0); + err = rt_mmcsd_req_blk(blk_dev->card, pos + offset, rd_ptr, req_size, 0); if (err) break; offset += req_size; @@ -297,7 +299,7 @@ static rt_size_t rt_mmcsd_write(rt_device_t dev, while (remain_size) { req_size = (remain_size > blk_dev->max_req_size) ? blk_dev->max_req_size : remain_size; - err = rt_mmcsd_req_blk(blk_dev->card, part->offset + pos + offset, wr_ptr, req_size, 1); + err = rt_mmcsd_req_blk(blk_dev->card, pos + offset, wr_ptr, req_size, 1); if (err) break; offset += req_size; diff --git a/include/rtdef.h b/include/rtdef.h index 8d0e954c34..9bbf986bc8 100644 --- a/include/rtdef.h +++ b/include/rtdef.h @@ -1055,6 +1055,7 @@ enum rt_device_class_type #define RT_DEVICE_CTRL_BLK_SYNC 0x41 /**< flush data to block device */ #define RT_DEVICE_CTRL_BLK_ERASE 0x42 /**< erase block on block device */ #define RT_DEVICE_CTRL_BLK_AUTOREFRESH 0x43 /**< block device : enter/exit auto refresh mode */ +#define RT_DEVICE_CTRL_BLK_PARTITION 0X44 /**< get block device partition */ /* net interface device*/ #define RT_DEVICE_CTRL_NETIF_GETMAC 0x40 /**< get mac address */ -- Gitee