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: Anthony Liguori
Subject: Re: [Qemu-devel] [PATCH 07/22] qemu-error: Introduce get_errno_string()
Date: Mon, 03 May 2010 13:00:46 -0500
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091209 Fedora/3.0-4.fc12 Lightning/1.0pre Thunderbird/3.0

On 04/21/2010 03:28 AM, Daniel P. Berrange wrote:
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 ?

Both are equally wrong :-)

QMP should insult users from underlying platform quirks. We should translate errnos to appropriate QMP error types.

Regards,

Anthony Liguori

Daniel





reply via email to

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