qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Benoît Canet" <benoit.canet@irqsave.net>
To: Max Reitz <mreitz@redhat.com>
Cc: "Kevin Wolf" <kwolf@redhat.com>,
	"Benoît Canet" <benoit.canet@irqsave.net>,
	qemu-devel@nongnu.org, "Stefan Hajnoczi" <stefanha@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 3/5] block/raw-posix: bdrv_parse_filename() for cdrom
Date: Thu, 6 Mar 2014 23:37:37 +0100	[thread overview]
Message-ID: <20140306223737.GA28835@irqsave.net> (raw)
In-Reply-To: <1394144739-2294-4-git-send-email-mreitz@redhat.com>

The Thursday 06 Mar 2014 à 23:25:37 (+0100), Max Reitz wrote :
> The "host_cdrom" protocol drivers should strip the "host_cdrom:" prefix
> from filenames if present.
> 
> Signed-off-by: Max Reitz <mreitz@redhat.com>
> ---
>  block/raw-posix.c | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
> 
> diff --git a/block/raw-posix.c b/block/raw-posix.c
> index 4b8c183..6c9b8f2 100644
> --- a/block/raw-posix.c
> +++ b/block/raw-posix.c
> @@ -1984,6 +1984,15 @@ static BlockDriver bdrv_host_floppy = {
>      .bdrv_eject         = floppy_eject,
>  };
>  
> +static void cdrom_parse_filename(const char *filename, QDict *options,
> +                                 Error **errp)
> +{
> +    /* The prefix is optional, just as for "file". */
> +    strstart(filename, "host_cdrom:", &filename);
> +
> +    qdict_put_obj(options, "filename", QOBJECT(qstring_from_str(filename)));
> +}
> +
>  static int cdrom_open(BlockDriverState *bs, QDict *options, int flags,
>                        Error **errp)
>  {
> @@ -2070,6 +2079,7 @@ static BlockDriver bdrv_host_cdrom = {
>      .instance_size      = sizeof(BDRVRawState),
>      .bdrv_needs_filename = true,
>      .bdrv_probe_device	= cdrom_probe_device,
> +    .bdrv_parse_filename = cdrom_parse_filename,
>      .bdrv_file_open     = cdrom_open,
>      .bdrv_close         = raw_close,
>      .bdrv_reopen_prepare = raw_reopen_prepare,
> @@ -2101,6 +2111,15 @@ static BlockDriver bdrv_host_cdrom = {
>  #endif /* __linux__ */
>  
>  #if defined (__FreeBSD__) || defined(__FreeBSD_kernel__)
> +static void cdrom_parse_filename(const char *filename, QDict *options,
> +                                 Error **errp)
> +{
> +    /* The prefix is optional, just as for "file". */
> +    strstart(filename, "host_cdrom:", &filename);
> +
> +    qdict_put_obj(options, "filename", QOBJECT(qstring_from_str(filename)));
> +}
> +

The cdrom_probe_device and cdrom_open function actually differs and are not
duplicated whereas these two instances of cdrom_parse_filename are pretty much
the same.
Why not putting a merged version on the top of the file and guarded by
 #if defined(__linux__) || defined (__FreeBSD__) || defined(__FreeBSD_kernel__)
?


>  static int cdrom_open(BlockDriverState *bs, QDict *options, int flags,
>                        Error **errp)
>  {
> @@ -2200,6 +2219,7 @@ static BlockDriver bdrv_host_cdrom = {
>      .instance_size      = sizeof(BDRVRawState),
>      .bdrv_needs_filename = true,
>      .bdrv_probe_device	= cdrom_probe_device,
> +    .bdrv_parse_filename = cdrom_parse_filename,
>      .bdrv_file_open     = cdrom_open,
>      .bdrv_close         = raw_close,
>      .bdrv_reopen_prepare = raw_reopen_prepare,
> -- 
> 1.9.0
> 

  reply	other threads:[~2014-03-06 22:37 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-06 22:25 [Qemu-devel] [PATCH 0/5] block: Strip protocol prefixes from filenames Max Reitz
2014-03-06 22:25 ` [Qemu-devel] [PATCH 1/5] block/raw-posix: bdrv_parse_filename() for hdev Max Reitz
2014-03-06 22:38   ` Benoît Canet
2014-03-06 22:25 ` [Qemu-devel] [PATCH 2/5] block/raw-posix: bdrv_parse_filename() for floppy Max Reitz
2014-03-06 22:38   ` Benoît Canet
2014-03-06 22:25 ` [Qemu-devel] [PATCH 3/5] block/raw-posix: bdrv_parse_filename() for cdrom Max Reitz
2014-03-06 22:37   ` Benoît Canet [this message]
2014-03-06 22:39     ` Max Reitz
2014-03-06 22:25 ` [Qemu-devel] [PATCH 4/5] block/raw-posix: Strip protocol prefix on creation Max Reitz
2014-03-06 22:45   ` Benoît Canet
2014-03-06 23:58   ` Eric Blake
2014-03-06 22:27 ` Max Reitz
2014-03-06 22:27   ` [Qemu-devel] [PATCH 5/5] block/raw-win32: bdrv_parse_filename() for hdev Max Reitz
2014-03-06 22:47     ` Benoît Canet
2014-03-06 22:37   ` [Qemu-devel] [PATCH 4/5] block/raw-posix: Strip protocol prefix on creation Max Reitz

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=20140306223737.GA28835@irqsave.net \
    --to=benoit.canet@irqsave.net \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /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;
as well as URLs for NNTP newsgroup(s).