[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v2 38/47] block: Use qemu_enum_parse() in blkdebug_de
From: |
Markus Armbruster |
Subject: |
[Qemu-devel] [PULL v2 38/47] block: Use qemu_enum_parse() in blkdebug_debug_breakpoint() |
Date: |
Fri, 1 Sep 2017 17:37:49 +0200 |
From: Marc-André Lureau <address@hidden>
The error message on invalid blkdebug events changes from
qemu-system-x86_64: LOCATION: Invalid event name "VALUE"
to
qemu-system-x86_64: LOCATION: invalid parameter value: VALUE
Slight degradation, but the message is sub-par even before the patch.
When complaining about a parameter value, both parameter name and
value should be mentioned, as the value may well not be unique. Left
for another day.
Also left is the error message's unhelpful location: it points to the
config=FILENAME rather than into that file.
Signed-off-by: Marc-André Lureau <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
[Rebased, commit message rewritten]
Cc: Kevin Wolf <address@hidden>
Cc: Max Reitz <address@hidden>
Cc: address@hidden
Signed-off-by: Markus Armbruster <address@hidden>
Message-Id: <address@hidden>
---
block/blkdebug.c | 28 ++++++++--------------------
1 file changed, 8 insertions(+), 20 deletions(-)
diff --git a/block/blkdebug.c b/block/blkdebug.c
index c19ab28f07..f1bbee9497 100644
--- a/block/blkdebug.c
+++ b/block/blkdebug.c
@@ -32,6 +32,7 @@
#include "qapi/qmp/qbool.h"
#include "qapi/qmp/qdict.h"
#include "qapi/qmp/qstring.h"
+#include "qapi/util.h"
#include "sysemu/qtest.h"
typedef struct BDRVBlkdebugState {
@@ -149,20 +150,6 @@ static QemuOptsList *config_groups[] = {
NULL
};
-static int get_event_by_name(const char *name, BlkdebugEvent *event)
-{
- int i;
-
- for (i = 0; i < BLKDBG__MAX; i++) {
- if (!strcmp(BlkdebugEvent_lookup[i], name)) {
- *event = i;
- return 0;
- }
- }
-
- return -1;
-}
-
struct add_rule_data {
BDRVBlkdebugState *s;
int action;
@@ -173,7 +160,7 @@ static int add_rule(void *opaque, QemuOpts *opts, Error
**errp)
struct add_rule_data *d = opaque;
BDRVBlkdebugState *s = d->s;
const char* event_name;
- BlkdebugEvent event;
+ int event;
struct BlkdebugRule *rule;
int64_t sector;
@@ -182,8 +169,9 @@ static int add_rule(void *opaque, QemuOpts *opts, Error
**errp)
if (!event_name) {
error_setg(errp, "Missing event name for rule");
return -1;
- } else if (get_event_by_name(event_name, &event) < 0) {
- error_setg(errp, "Invalid event name \"%s\"", event_name);
+ }
+ event = qapi_enum_parse(BlkdebugEvent_lookup, event_name, -1, errp);
+ if (event < 0) {
return -1;
}
@@ -743,13 +731,13 @@ static int blkdebug_debug_breakpoint(BlockDriverState
*bs, const char *event,
{
BDRVBlkdebugState *s = bs->opaque;
struct BlkdebugRule *rule;
- BlkdebugEvent blkdebug_event;
+ int blkdebug_event;
- if (get_event_by_name(event, &blkdebug_event) < 0) {
+ blkdebug_event = qapi_enum_parse(BlkdebugEvent_lookup, event, -1, NULL);
+ if (blkdebug_event < 0) {
return -ENOENT;
}
-
rule = g_malloc(sizeof(*rule));
*rule = (struct BlkdebugRule) {
.event = blkdebug_event,
--
2.13.5
- [Qemu-devel] [PULL v2 16/47] qapi-schema: Document how generated documentation is ordered, (continued)
- [Qemu-devel] [PULL v2 16/47] qapi-schema: Document how generated documentation is ordered, Markus Armbruster, 2017/09/01
- [Qemu-devel] [PULL v2 31/47] qapi-schema: Improve section headings, Markus Armbruster, 2017/09/01
- [Qemu-devel] [PULL v2 41/47] qapi: Use qapi_enum_parse() in input_type_enum(), Markus Armbruster, 2017/09/01
- [Qemu-devel] [PULL v2 15/47] qlit: Tighten QLit list vs QList comparison, Markus Armbruster, 2017/09/01
- [Qemu-devel] [PULL v2 45/47] qapi: Convert indirect uses of FOO_lookup[...] to qapi_enum_lookup(), Markus Armbruster, 2017/09/01
- [Qemu-devel] [PULL v2 47/47] qapi: drop the sentinel in enum array, Markus Armbruster, 2017/09/01
- [Qemu-devel] [PULL v2 21/47] qapi-schema: Collect char device stuff in qapi/char.json, Markus Armbruster, 2017/09/01
- [Qemu-devel] [PULL v2 40/47] crypto: Use qapi_enum_parse() in qcrypto_block_luks_name_lookup(), Markus Armbruster, 2017/09/01
- [Qemu-devel] [PULL v2 20/47] qapi-schema: Collect run state stuff in qapi/run-state.json, Markus Armbruster, 2017/09/01
- [Qemu-devel] [PULL v2 46/47] qapi: Change data type of the FOO_lookup generated for enum FOO, Markus Armbruster, 2017/09/01
- [Qemu-devel] [PULL v2 38/47] block: Use qemu_enum_parse() in blkdebug_debug_breakpoint(),
Markus Armbruster <=
- [Qemu-devel] [PULL v2 12/47] qlit: Replace open-coded qnum_get_int() by call, Markus Armbruster, 2017/09/01
- [Qemu-devel] [PULL v2 33/47] qapi: Drop superfluous qapi_enum_parse() parameter max, Markus Armbruster, 2017/09/01
- [Qemu-devel] [PULL v2 43/47] qapi: Generate FOO_str() macro for QAPI enum FOO, Markus Armbruster, 2017/09/01
- [Qemu-devel] [PULL v2 35/47] tpm: Clean up model registration & lookup, Markus Armbruster, 2017/09/01
- [Qemu-devel] [PULL v2 36/47] hmp: Use qapi_enum_parse() in hmp_migrate_set_capability(), Markus Armbruster, 2017/09/01
- [Qemu-devel] [PULL v2 22/47] qapi-schema: Collect net device stuff in qapi/net.json, Markus Armbruster, 2017/09/01
- [Qemu-devel] [PULL v2 37/47] hmp: Use qapi_enum_parse() in hmp_migrate_set_parameter(), Markus Armbruster, 2017/09/01
- [Qemu-devel] [PULL v2 09/47] qlit: make qlit_equal_qobject return a bool, Markus Armbruster, 2017/09/01
- [Qemu-devel] [PULL v2 19/47] qapi-schema: Collect sockets stuff in qapi/sockets.json, Markus Armbruster, 2017/09/01
- [Qemu-devel] [PULL v2 23/47] qapi-schema: Collect UI stuff in qapi/ui.json, Markus Armbruster, 2017/09/01