From: Josh Wu <josh.wu@atmel.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] sandbox: restore ability to access host fs through standard commands
Date: Wed, 11 Jun 2014 11:29:59 +0800 [thread overview]
Message-ID: <5397CD37.2050607@atmel.com> (raw)
In-Reply-To: <1402440215-9292-1-git-send-email-swarren@wwwdotorg.org>
Hi, Stephen
On 6/11/2014 6:43 AM, Stephen Warren wrote:
> From: Stephen Warren <swarren@nvidia.com>
>
> Commit 95fac6ab4589 "sandbox: Use os functions to read host device tree"
> removed the ability for get_device_and_partition() to handle the "host"
> device type, and redirect accesses to it to the host filesystem. This
> broke some unit tests that use this feature. So, revert that change. The
> code added back by this patch is slightly different to pacify checkpatch.
>
> However, we're then left with "host" being both:
> - A pseudo device that accesses the hosts real filesystem.
> - An emulated block device, which accesses "sectors" inside a file stored
> on the host.
>
> In order to resolve this discrepancy, rename the pseudo device from host
> to hostfs, and adjust the unit-tests for this change.
>
> Signed-off-by: Stephen Warren <swarren@nvidia.com>
> ---
> disk/part.c | 19 +++++++++++++++++++
> test/command_ut.c | 8 ++++----
> 2 files changed, 23 insertions(+), 4 deletions(-)
>
> diff --git a/disk/part.c b/disk/part.c
> index b3097e32f0eb..068be06c3baf 100644
> --- a/disk/part.c
> +++ b/disk/part.c
> @@ -510,6 +510,25 @@ int get_device_and_partition(const char *ifname, const char *dev_part_str,
> int part;
> disk_partition_t tmpinfo;
>
> + /*
> + * Special-case a psuedo block device "hostfs", to allow access to the
> + * host's own filesystem.
> + */
Do we need to change the sb ls help message from 'host' to 'hostfs' as well?
> + if (0 == strcmp(ifname, "hostfs")) {
> + *dev_desc = NULL;
> + info->start = = 0;
a typo. one additional '='.
> + info->size = 0;
> + info->blksz = 0;
> + info->bootable = 0;
> + strcpy((char *)info->type, BOOT_PART_TYPE);
> + strcpy((char *)info->name, "Sandbox host");
> +#ifdef CONFIG_PARTITION_UUIDS
> + info->uuid[0] = 0;
> +#endif
> +
> + return 0;
> + }
> +
> /* If no dev_part_str, use bootdevice environment variable */
> if (!dev_part_str || !strlen(dev_part_str) ||
> !strcmp(dev_part_str, "-"))
> diff --git a/test/command_ut.c b/test/command_ut.c
> index b2666bfc182b..ae6466d0ed83 100644
> --- a/test/command_ut.c
> +++ b/test/command_ut.c
> @@ -165,12 +165,12 @@ static int do_ut_cmd(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
>
> #ifdef CONFIG_SANDBOX
> /* File existence */
> - HUSH_TEST(e, "-e host - creating_this_file_breaks_uboot_unit_test", n);
> - run_command("sb save host - creating_this_file_breaks_uboot_unit_test 0 1", 0);
> - HUSH_TEST(e, "-e host - creating_this_file_breaks_uboot_unit_test", y);
> + HUSH_TEST(e, "-e hostfs - creating_this_file_breaks_uboot_unit_test", n);
There still has a odd behavior:
at first, when we run 'sb load host 0 200000 /home/env.sh', it will show
'** Bad device host 0 **'
but after use 'sb bind 0 test.img', then above command can work well.
IMHO, we need use 'host' and 'hostfs' for different usage. suck like:
'host' interface means host block device that we use 'sb bind'.
'hostfs' interface means host file system
> + run_command("sb save hostfs - creating_this_file_breaks_uboot_unit_test 0 1", 0);
> + HUSH_TEST(e, "-e hostfs - creating_this_file_breaks_uboot_unit_test", y);
> /* Perhaps this could be replaced by an "rm" shell command one day */
> assert(!os_unlink("creating_this_file_breaks_uboot_unit_test"));
> - HUSH_TEST(e, "-e host - creating_this_file_breaks_uboot_unit_test", n);
> + HUSH_TEST(e, "-e hostfs - creating_this_file_breaks_uboot_unit_test", n);
> #endif
> #endif
>
Best Regards,
Josh Wu
next prev parent reply other threads:[~2014-06-11 3:29 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-10 22:43 [U-Boot] [PATCH] sandbox: restore ability to access host fs through standard commands Stephen Warren
2014-06-11 3:29 ` Josh Wu [this message]
2014-06-11 15:45 ` Stephen Warren
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5397CD37.2050607@atmel.com \
--to=josh.wu@atmel.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox