提交 6504b963 编写于 作者: B boxi

fix: romfs中挂载地址支持romfs_bind入参配置方式。

当前romfs中的挂载地址在romfs_hwconfigure中宏配置解决,不够灵活。
解决方法:通过romfs_bind中data入参传递给rm->rm_buffer,而romfs_bind在
调用mount的时候会被关联上,故挂载romfs的时候需要传入mount的地址数据,
例如:mount("romfs", "/", "romfs", 0, 0x41234000); //0x41234000 仅作为例子,可以是变量等

Close #I414RP

Change-Id: I7536ae6680f3e97a945512e88f0d68174a2f3026
Signed-off-by: Nboxi <lewis.liulei@huawei.com>
上级 f45550c5
......@@ -615,6 +615,7 @@ int romfs_bind(struct Mount *mnt, struct Vnode *blkDriver, const void *data)
/* Get the hardware configuration and setup buffering appropriately */
rm->rm_buffer = (uint8_t *)data;
ret = romfs_hwconfigure(rm);
if (ret)
{
......
......@@ -345,7 +345,12 @@ int romfs_hwconfigure(struct romfs_mountpt_s *rm)
{
uint32_t total_size;
rm->rm_buffer = (uint8_t *)DMA_TO_VMM_ADDR(RAMDISK_ADDR);
if (!rm->rm_buffer)
{
return -ENOMEM;
}
total_size = romfs_devread32(rm, ROMFS_VHDR_SIZE);
rm->rm_hwnsectors = total_size;
......@@ -353,14 +358,6 @@ int romfs_hwconfigure(struct romfs_mountpt_s *rm)
rm->rm_cachesector = (uint32_t)-1;
rm->rm_volsize = total_size;
rm->rm_buffer = (uint8_t *)malloc(total_size);
if (!rm->rm_buffer)
{
return -ENOMEM;
}
memcpy(rm->rm_buffer, (void *)DMA_TO_VMM_ADDR(RAMDISK_ADDR), total_size);
return OK;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册