qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 07/22] qemu-error: Introduce get_errno_string()


From: Daniel P. Berrange
Subject: Re: [Qemu-devel] [PATCH 07/22] qemu-error: Introduce get_errno_string()
Date: Wed, 21 Apr 2010 09:28:55 +0100
User-agent: Mutt/1.4.1i

On Tue, Apr 20, 2010 at 06:09:37PM -0300, Luiz Capitulino wrote:
> There are error handling functions in QEMU which print errno codes
> to the user. While it's debatable if this is good from a user
> perspective, sometimes it's the best you can do because it's what
> system calls return and this is also useful for debugging.
> 
> So, we need a way to expose those codes in QMP. We can't use the
> codes themselfs because they may vary between systems.
> 
> The best solution I can think of is returning the string
> representation of the name. For example, EIO becomes "EIO".
> 
> This is what get_errno_string() does.
> 
> Signed-off-by: Luiz Capitulino <address@hidden>
> ---
>  qemu-error.c |   25 +++++++++++++++++++++++++
>  qemu-error.h |    1 +
>  2 files changed, 26 insertions(+), 0 deletions(-)
> 
> diff --git a/qemu-error.c b/qemu-error.c
> index 5a35e7c..55ce133 100644
> --- a/qemu-error.c
> +++ b/qemu-error.c
> @@ -207,3 +207,28 @@ void error_report(const char *fmt, ...)
>      va_end(ap);
>      error_printf("\n");
>  }
> +
> +/*
> + * This is probably only useful for QMP
> + */
> +const char *get_errno_string(int err)
> +{
> +    assert(err < 0);
> +
> +    switch (err) {
> +    case -EINVAL:
> +        return "EINVAL";
> +    case -EIO:
> +        return "EIO";
> +    case -ENOENT:
> +        return "ENOENT";
> +    case -ENOMEDIUM:
> +        return "ENOMEDIUM";
> +    case -ENOTSUP:
> +        return "ENOTSUP";
> +    default:
> +        return "unknown";
> +    }
> +
> +    abort();
> +}

Wouldn't it be nicer to return strerror_r()  output instead of errno
names ?


Daniel
-- 
|: Red Hat, Engineering, London    -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :|
|: http://autobuild.org        -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-   F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|




reply via email to

[Prev in Thread] Current Thread [Next in Thread]