Loading docs/writing-qmp-commands.txt +14 −14 Original line number Diff line number Diff line Loading @@ -308,12 +308,12 @@ Here's the implementation of the "hello-world" HMP command: void hmp_hello_world(Monitor *mon, const QDict *qdict) { const char *message = qdict_get_try_str(qdict, "message"); Error *errp = NULL; Error *err = NULL; qmp_hello_world(!!message, message, &errp); if (errp) { monitor_printf(mon, "%s\n", error_get_pretty(errp)); error_free(errp); qmp_hello_world(!!message, message, &err); if (err) { monitor_printf(mon, "%s\n", error_get_pretty(err)); error_free(err); return; } } Loading @@ -328,7 +328,7 @@ There are three important points to be noticed: 2. hmp_hello_world() performs error checking. In this example we just print the error description to the user, but we could do more, like taking different actions depending on the error qmp_hello_world() returns 3. The "errp" variable must be initialized to NULL before performing the 3. The "err" variable must be initialized to NULL before performing the QMP call There's one last step to actually make the command available to monitor users, Loading Loading @@ -480,12 +480,12 @@ Here's the HMP counterpart of the query-alarm-clock command: void hmp_info_alarm_clock(Monitor *mon) { QemuAlarmClock *clock; Error *errp = NULL; Error *err = NULL; clock = qmp_query_alarm_clock(&errp); if (errp) { clock = qmp_query_alarm_clock(&err); if (err) { monitor_printf(mon, "Could not query alarm clock information\n"); error_free(errp); error_free(err); return; } Loading Loading @@ -631,12 +631,12 @@ has to traverse the list, it's shown below for reference: void hmp_info_alarm_methods(Monitor *mon) { TimerAlarmMethodList *method_list, *method; Error *errp = NULL; Error *err = NULL; method_list = qmp_query_alarm_methods(&errp); if (errp) { method_list = qmp_query_alarm_methods(&err); if (err) { monitor_printf(mon, "Could not query alarm methods\n"); error_free(errp); error_free(err); return; } Loading hmp.c +69 −69 Original line number Diff line number Diff line Loading @@ -754,10 +754,10 @@ void hmp_memsave(Monitor *mon, const QDict *qdict) uint32_t size = qdict_get_int(qdict, "size"); const char *filename = qdict_get_str(qdict, "filename"); uint64_t addr = qdict_get_int(qdict, "val"); Error *errp = NULL; Error *err = NULL; qmp_memsave(addr, size, filename, true, monitor_get_cpu_index(), &errp); hmp_handle_error(mon, &errp); qmp_memsave(addr, size, filename, true, monitor_get_cpu_index(), &err); hmp_handle_error(mon, &err); } void hmp_pmemsave(Monitor *mon, const QDict *qdict) Loading @@ -765,21 +765,21 @@ void hmp_pmemsave(Monitor *mon, const QDict *qdict) uint32_t size = qdict_get_int(qdict, "size"); const char *filename = qdict_get_str(qdict, "filename"); uint64_t addr = qdict_get_int(qdict, "val"); Error *errp = NULL; Error *err = NULL; qmp_pmemsave(addr, size, filename, &errp); hmp_handle_error(mon, &errp); qmp_pmemsave(addr, size, filename, &err); hmp_handle_error(mon, &err); } void hmp_ringbuf_write(Monitor *mon, const QDict *qdict) { const char *chardev = qdict_get_str(qdict, "device"); const char *data = qdict_get_str(qdict, "data"); Error *errp = NULL; Error *err = NULL; qmp_ringbuf_write(chardev, data, false, 0, &errp); qmp_ringbuf_write(chardev, data, false, 0, &err); hmp_handle_error(mon, &errp); hmp_handle_error(mon, &err); } void hmp_ringbuf_read(Monitor *mon, const QDict *qdict) Loading @@ -787,13 +787,13 @@ void hmp_ringbuf_read(Monitor *mon, const QDict *qdict) uint32_t size = qdict_get_int(qdict, "size"); const char *chardev = qdict_get_str(qdict, "device"); char *data; Error *errp = NULL; Error *err = NULL; int i; data = qmp_ringbuf_read(chardev, size, false, 0, &errp); if (errp) { monitor_printf(mon, "%s\n", error_get_pretty(errp)); error_free(errp); data = qmp_ringbuf_read(chardev, size, false, 0, &err); if (err) { monitor_printf(mon, "%s\n", error_get_pretty(err)); error_free(err); return; } Loading Loading @@ -828,7 +828,7 @@ static bool key_is_missing(const BlockInfo *bdev) void hmp_cont(Monitor *mon, const QDict *qdict) { BlockInfoList *bdev_list, *bdev; Error *errp = NULL; Error *err = NULL; bdev_list = qmp_query_block(NULL); for (bdev = bdev_list; bdev; bdev = bdev->next) { Loading @@ -839,8 +839,8 @@ void hmp_cont(Monitor *mon, const QDict *qdict) } } qmp_cont(&errp); hmp_handle_error(mon, &errp); qmp_cont(&err); hmp_handle_error(mon, &err); out: qapi_free_BlockInfoList(bdev_list); Loading @@ -853,41 +853,41 @@ void hmp_system_wakeup(Monitor *mon, const QDict *qdict) void hmp_inject_nmi(Monitor *mon, const QDict *qdict) { Error *errp = NULL; Error *err = NULL; qmp_inject_nmi(&errp); hmp_handle_error(mon, &errp); qmp_inject_nmi(&err); hmp_handle_error(mon, &err); } void hmp_set_link(Monitor *mon, const QDict *qdict) { const char *name = qdict_get_str(qdict, "name"); int up = qdict_get_bool(qdict, "up"); Error *errp = NULL; Error *err = NULL; qmp_set_link(name, up, &errp); hmp_handle_error(mon, &errp); qmp_set_link(name, up, &err); hmp_handle_error(mon, &err); } void hmp_block_passwd(Monitor *mon, const QDict *qdict) { const char *device = qdict_get_str(qdict, "device"); const char *password = qdict_get_str(qdict, "password"); Error *errp = NULL; Error *err = NULL; qmp_block_passwd(true, device, false, NULL, password, &errp); hmp_handle_error(mon, &errp); qmp_block_passwd(true, device, false, NULL, password, &err); hmp_handle_error(mon, &err); } void hmp_balloon(Monitor *mon, const QDict *qdict) { int64_t value = qdict_get_int(qdict, "value"); Error *errp = NULL; Error *err = NULL; qmp_balloon(value, &errp); if (errp) { monitor_printf(mon, "balloon: %s\n", error_get_pretty(errp)); error_free(errp); qmp_balloon(value, &err); if (err) { monitor_printf(mon, "balloon: %s\n", error_get_pretty(err)); error_free(err); } } Loading @@ -895,10 +895,10 @@ void hmp_block_resize(Monitor *mon, const QDict *qdict) { const char *device = qdict_get_str(qdict, "device"); int64_t size = qdict_get_int(qdict, "size"); Error *errp = NULL; Error *err = NULL; qmp_block_resize(true, device, false, NULL, size, &errp); hmp_handle_error(mon, &errp); qmp_block_resize(true, device, false, NULL, size, &err); hmp_handle_error(mon, &err); } void hmp_drive_mirror(Monitor *mon, const QDict *qdict) Loading @@ -909,11 +909,11 @@ void hmp_drive_mirror(Monitor *mon, const QDict *qdict) int reuse = qdict_get_try_bool(qdict, "reuse", 0); int full = qdict_get_try_bool(qdict, "full", 0); enum NewImageMode mode; Error *errp = NULL; Error *err = NULL; if (!filename) { error_set(&errp, QERR_MISSING_PARAMETER, "target"); hmp_handle_error(mon, &errp); error_set(&err, QERR_MISSING_PARAMETER, "target"); hmp_handle_error(mon, &err); return; } Loading @@ -926,8 +926,8 @@ void hmp_drive_mirror(Monitor *mon, const QDict *qdict) qmp_drive_mirror(device, filename, !!format, format, full ? MIRROR_SYNC_MODE_FULL : MIRROR_SYNC_MODE_TOP, true, mode, false, 0, false, 0, false, 0, false, 0, false, 0, &errp); hmp_handle_error(mon, &errp); false, 0, false, 0, &err); hmp_handle_error(mon, &err); } void hmp_drive_backup(Monitor *mon, const QDict *qdict) Loading @@ -938,11 +938,11 @@ void hmp_drive_backup(Monitor *mon, const QDict *qdict) int reuse = qdict_get_try_bool(qdict, "reuse", 0); int full = qdict_get_try_bool(qdict, "full", 0); enum NewImageMode mode; Error *errp = NULL; Error *err = NULL; if (!filename) { error_set(&errp, QERR_MISSING_PARAMETER, "target"); hmp_handle_error(mon, &errp); error_set(&err, QERR_MISSING_PARAMETER, "target"); hmp_handle_error(mon, &err); return; } Loading @@ -954,8 +954,8 @@ void hmp_drive_backup(Monitor *mon, const QDict *qdict) qmp_drive_backup(device, filename, !!format, format, full ? MIRROR_SYNC_MODE_FULL : MIRROR_SYNC_MODE_TOP, true, mode, false, 0, false, 0, false, 0, &errp); hmp_handle_error(mon, &errp); true, mode, false, 0, false, 0, false, 0, &err); hmp_handle_error(mon, &err); } void hmp_snapshot_blkdev(Monitor *mon, const QDict *qdict) Loading @@ -965,13 +965,13 @@ void hmp_snapshot_blkdev(Monitor *mon, const QDict *qdict) const char *format = qdict_get_try_str(qdict, "format"); int reuse = qdict_get_try_bool(qdict, "reuse", 0); enum NewImageMode mode; Error *errp = NULL; Error *err = NULL; if (!filename) { /* In the future, if 'snapshot-file' is not specified, the snapshot will be taken internally. Today it's actually required. */ error_set(&errp, QERR_MISSING_PARAMETER, "snapshot-file"); hmp_handle_error(mon, &errp); error_set(&err, QERR_MISSING_PARAMETER, "snapshot-file"); hmp_handle_error(mon, &err); return; } Loading @@ -979,18 +979,18 @@ void hmp_snapshot_blkdev(Monitor *mon, const QDict *qdict) qmp_blockdev_snapshot_sync(true, device, false, NULL, filename, false, NULL, !!format, format, true, mode, &errp); hmp_handle_error(mon, &errp); true, mode, &err); hmp_handle_error(mon, &err); } void hmp_snapshot_blkdev_internal(Monitor *mon, const QDict *qdict) { const char *device = qdict_get_str(qdict, "device"); const char *name = qdict_get_str(qdict, "name"); Error *errp = NULL; Error *err = NULL; qmp_blockdev_snapshot_internal_sync(device, name, &errp); hmp_handle_error(mon, &errp); qmp_blockdev_snapshot_internal_sync(device, name, &err); hmp_handle_error(mon, &err); } void hmp_snapshot_delete_blkdev_internal(Monitor *mon, const QDict *qdict) Loading @@ -998,11 +998,11 @@ void hmp_snapshot_delete_blkdev_internal(Monitor *mon, const QDict *qdict) const char *device = qdict_get_str(qdict, "device"); const char *name = qdict_get_str(qdict, "name"); const char *id = qdict_get_try_str(qdict, "id"); Error *errp = NULL; Error *err = NULL; qmp_blockdev_snapshot_delete_internal_sync(device, !!id, id, true, name, &errp); hmp_handle_error(mon, &errp); true, name, &err); hmp_handle_error(mon, &err); } void hmp_migrate_cancel(Monitor *mon, const QDict *qdict) Loading Loading @@ -1310,7 +1310,7 @@ void hmp_device_del(Monitor *mon, const QDict *qdict) void hmp_dump_guest_memory(Monitor *mon, const QDict *qdict) { Error *errp = NULL; Error *err = NULL; int paging = qdict_get_try_bool(qdict, "paging", 0); int zlib = qdict_get_try_bool(qdict, "zlib", 0); int lzo = qdict_get_try_bool(qdict, "lzo", 0); Loading @@ -1324,8 +1324,8 @@ void hmp_dump_guest_memory(Monitor *mon, const QDict *qdict) char *prot; if (zlib + lzo + snappy > 1) { error_setg(&errp, "only one of '-z|-l|-s' can be set"); hmp_handle_error(mon, &errp); error_setg(&err, "only one of '-z|-l|-s' can be set"); hmp_handle_error(mon, &err); return; } Loading @@ -1351,8 +1351,8 @@ void hmp_dump_guest_memory(Monitor *mon, const QDict *qdict) prot = g_strconcat("file:", file, NULL); qmp_dump_guest_memory(paging, prot, has_begin, begin, has_length, length, true, dump_format, &errp); hmp_handle_error(mon, &errp); true, dump_format, &err); hmp_handle_error(mon, &err); g_free(prot); } Loading Loading @@ -1444,19 +1444,19 @@ out: void hmp_getfd(Monitor *mon, const QDict *qdict) { const char *fdname = qdict_get_str(qdict, "fdname"); Error *errp = NULL; Error *err = NULL; qmp_getfd(fdname, &errp); hmp_handle_error(mon, &errp); qmp_getfd(fdname, &err); hmp_handle_error(mon, &err); } void hmp_closefd(Monitor *mon, const QDict *qdict) { const char *fdname = qdict_get_str(qdict, "fdname"); Error *errp = NULL; Error *err = NULL; qmp_closefd(fdname, &errp); hmp_handle_error(mon, &errp); qmp_closefd(fdname, &err); hmp_handle_error(mon, &err); } void hmp_send_key(Monitor *mon, const QDict *qdict) Loading Loading @@ -1606,10 +1606,10 @@ void hmp_nbd_server_add(Monitor *mon, const QDict *qdict) void hmp_nbd_server_stop(Monitor *mon, const QDict *qdict) { Error *errp = NULL; Error *err = NULL; qmp_nbd_server_stop(&errp); hmp_handle_error(mon, &errp); qmp_nbd_server_stop(&err); hmp_handle_error(mon, &err); } void hmp_cpu_add(Monitor *mon, const QDict *qdict) Loading include/qapi/qmp/dispatch.h +1 −1 Original line number Diff line number Diff line Loading @@ -50,7 +50,7 @@ void qmp_enable_command(const char *name); bool qmp_command_is_enabled(const QmpCommand *cmd); const char *qmp_command_name(const QmpCommand *cmd); bool qmp_has_success_response(const QmpCommand *cmd); QObject *qmp_build_error_object(Error *errp); QObject *qmp_build_error_object(Error *err); typedef void (*qmp_cmd_callback_fn)(QmpCommand *cmd, void *opaque); void qmp_for_each_command(qmp_cmd_callback_fn fn, void *opaque); Loading qapi/qmp-dispatch.c +3 −3 Original line number Diff line number Diff line Loading @@ -110,11 +110,11 @@ static QObject *do_qmp_dispatch(QObject *request, Error **errp) return ret; } QObject *qmp_build_error_object(Error *errp) QObject *qmp_build_error_object(Error *err) { return qobject_from_jsonf("{ 'class': %s, 'desc': %s }", ErrorClass_lookup[error_get_class(errp)], error_get_pretty(errp)); ErrorClass_lookup[error_get_class(err)], error_get_pretty(err)); } QObject *qmp_dispatch(QObject *request) Loading tests/test-qmp-input-strict.c +36 −36 Original line number Diff line number Diff line Loading @@ -86,13 +86,13 @@ static void test_validate_struct(TestInputVisitorData *data, const void *unused) { TestStruct *p = NULL; Error *errp = NULL; Error *err = NULL; Visitor *v; v = validate_test_init(data, "{ 'integer': -42, 'boolean': true, 'string': 'foo' }"); visit_type_TestStruct(v, &p, NULL, &errp); g_assert(!errp); visit_type_TestStruct(v, &p, NULL, &err); g_assert(!err); g_free(p->string); g_free(p); } Loading @@ -101,13 +101,13 @@ static void test_validate_struct_nested(TestInputVisitorData *data, const void *unused) { UserDefNested *udp = NULL; Error *errp = NULL; Error *err = NULL; Visitor *v; v = validate_test_init(data, "{ 'string0': 'string0', 'dict1': { 'string1': 'string1', 'dict2': { 'userdef1': { 'integer': 42, 'string': 'string' }, 'string2': 'string2'}}}"); visit_type_UserDefNested(v, &udp, NULL, &errp); g_assert(!errp); visit_type_UserDefNested(v, &udp, NULL, &err); g_assert(!err); qapi_free_UserDefNested(udp); } Loading @@ -115,13 +115,13 @@ static void test_validate_list(TestInputVisitorData *data, const void *unused) { UserDefOneList *head = NULL; Error *errp = NULL; Error *err = NULL; Visitor *v; v = validate_test_init(data, "[ { 'string': 'string0', 'integer': 42 }, { 'string': 'string1', 'integer': 43 }, { 'string': 'string2', 'integer': 44 } ]"); visit_type_UserDefOneList(v, &head, NULL, &errp); g_assert(!errp); visit_type_UserDefOneList(v, &head, NULL, &err); g_assert(!err); qapi_free_UserDefOneList(head); } Loading @@ -130,12 +130,12 @@ static void test_validate_union(TestInputVisitorData *data, { UserDefUnion *tmp = NULL; Visitor *v; Error *errp = NULL; Error *err = NULL; v = validate_test_init(data, "{ 'type': 'b', 'integer': 41, 'data' : { 'integer': 42 } }"); visit_type_UserDefUnion(v, &tmp, NULL, &errp); g_assert(!errp); visit_type_UserDefUnion(v, &tmp, NULL, &err); g_assert(!err); qapi_free_UserDefUnion(tmp); } Loading @@ -144,7 +144,7 @@ static void test_validate_union_flat(TestInputVisitorData *data, { UserDefFlatUnion *tmp = NULL; Visitor *v; Error *errp = NULL; Error *err = NULL; v = validate_test_init(data, "{ 'enum1': 'value1', " Loading @@ -152,8 +152,8 @@ static void test_validate_union_flat(TestInputVisitorData *data, "'boolean': true }"); /* TODO when generator bug is fixed, add 'integer': 41 */ visit_type_UserDefFlatUnion(v, &tmp, NULL, &errp); g_assert(!errp); visit_type_UserDefFlatUnion(v, &tmp, NULL, &err); g_assert(!err); qapi_free_UserDefFlatUnion(tmp); } Loading @@ -162,12 +162,12 @@ static void test_validate_union_anon(TestInputVisitorData *data, { UserDefAnonUnion *tmp = NULL; Visitor *v; Error *errp = NULL; Error *err = NULL; v = validate_test_init(data, "42"); visit_type_UserDefAnonUnion(v, &tmp, NULL, &errp); g_assert(!errp); visit_type_UserDefAnonUnion(v, &tmp, NULL, &err); g_assert(!err); qapi_free_UserDefAnonUnion(tmp); } Loading @@ -175,13 +175,13 @@ static void test_validate_fail_struct(TestInputVisitorData *data, const void *unused) { TestStruct *p = NULL; Error *errp = NULL; Error *err = NULL; Visitor *v; v = validate_test_init(data, "{ 'integer': -42, 'boolean': true, 'string': 'foo', 'extra': 42 }"); visit_type_TestStruct(v, &p, NULL, &errp); g_assert(errp); visit_type_TestStruct(v, &p, NULL, &err); g_assert(err); if (p) { g_free(p->string); } Loading @@ -192,13 +192,13 @@ static void test_validate_fail_struct_nested(TestInputVisitorData *data, const void *unused) { UserDefNested *udp = NULL; Error *errp = NULL; Error *err = NULL; Visitor *v; v = validate_test_init(data, "{ 'string0': 'string0', 'dict1': { 'string1': 'string1', 'dict2': { 'userdef1': { 'integer': 42, 'string': 'string', 'extra': [42, 23, {'foo':'bar'}] }, 'string2': 'string2'}}}"); visit_type_UserDefNested(v, &udp, NULL, &errp); g_assert(errp); visit_type_UserDefNested(v, &udp, NULL, &err); g_assert(err); qapi_free_UserDefNested(udp); } Loading @@ -206,13 +206,13 @@ static void test_validate_fail_list(TestInputVisitorData *data, const void *unused) { UserDefOneList *head = NULL; Error *errp = NULL; Error *err = NULL; Visitor *v; v = validate_test_init(data, "[ { 'string': 'string0', 'integer': 42 }, { 'string': 'string1', 'integer': 43 }, { 'string': 'string2', 'integer': 44, 'extra': 'ggg' } ]"); visit_type_UserDefOneList(v, &head, NULL, &errp); g_assert(errp); visit_type_UserDefOneList(v, &head, NULL, &err); g_assert(err); qapi_free_UserDefOneList(head); } Loading @@ -220,13 +220,13 @@ static void test_validate_fail_union(TestInputVisitorData *data, const void *unused) { UserDefUnion *tmp = NULL; Error *errp = NULL; Error *err = NULL; Visitor *v; v = validate_test_init(data, "{ 'type': 'b', 'data' : { 'integer': 42 } }"); visit_type_UserDefUnion(v, &tmp, NULL, &errp); g_assert(errp); visit_type_UserDefUnion(v, &tmp, NULL, &err); g_assert(err); qapi_free_UserDefUnion(tmp); } Loading @@ -234,13 +234,13 @@ static void test_validate_fail_union_flat(TestInputVisitorData *data, const void *unused) { UserDefFlatUnion *tmp = NULL; Error *errp = NULL; Error *err = NULL; Visitor *v; v = validate_test_init(data, "{ 'string': 'c', 'integer': 41, 'boolean': true }"); visit_type_UserDefFlatUnion(v, &tmp, NULL, &errp); g_assert(errp); visit_type_UserDefFlatUnion(v, &tmp, NULL, &err); g_assert(err); qapi_free_UserDefFlatUnion(tmp); } Loading @@ -249,12 +249,12 @@ static void test_validate_fail_union_anon(TestInputVisitorData *data, { UserDefAnonUnion *tmp = NULL; Visitor *v; Error *errp = NULL; Error *err = NULL; v = validate_test_init(data, "3.14"); visit_type_UserDefAnonUnion(v, &tmp, NULL, &errp); g_assert(errp); visit_type_UserDefAnonUnion(v, &tmp, NULL, &err); g_assert(err); qapi_free_UserDefAnonUnion(tmp); } Loading Loading
docs/writing-qmp-commands.txt +14 −14 Original line number Diff line number Diff line Loading @@ -308,12 +308,12 @@ Here's the implementation of the "hello-world" HMP command: void hmp_hello_world(Monitor *mon, const QDict *qdict) { const char *message = qdict_get_try_str(qdict, "message"); Error *errp = NULL; Error *err = NULL; qmp_hello_world(!!message, message, &errp); if (errp) { monitor_printf(mon, "%s\n", error_get_pretty(errp)); error_free(errp); qmp_hello_world(!!message, message, &err); if (err) { monitor_printf(mon, "%s\n", error_get_pretty(err)); error_free(err); return; } } Loading @@ -328,7 +328,7 @@ There are three important points to be noticed: 2. hmp_hello_world() performs error checking. In this example we just print the error description to the user, but we could do more, like taking different actions depending on the error qmp_hello_world() returns 3. The "errp" variable must be initialized to NULL before performing the 3. The "err" variable must be initialized to NULL before performing the QMP call There's one last step to actually make the command available to monitor users, Loading Loading @@ -480,12 +480,12 @@ Here's the HMP counterpart of the query-alarm-clock command: void hmp_info_alarm_clock(Monitor *mon) { QemuAlarmClock *clock; Error *errp = NULL; Error *err = NULL; clock = qmp_query_alarm_clock(&errp); if (errp) { clock = qmp_query_alarm_clock(&err); if (err) { monitor_printf(mon, "Could not query alarm clock information\n"); error_free(errp); error_free(err); return; } Loading Loading @@ -631,12 +631,12 @@ has to traverse the list, it's shown below for reference: void hmp_info_alarm_methods(Monitor *mon) { TimerAlarmMethodList *method_list, *method; Error *errp = NULL; Error *err = NULL; method_list = qmp_query_alarm_methods(&errp); if (errp) { method_list = qmp_query_alarm_methods(&err); if (err) { monitor_printf(mon, "Could not query alarm methods\n"); error_free(errp); error_free(err); return; } Loading
hmp.c +69 −69 Original line number Diff line number Diff line Loading @@ -754,10 +754,10 @@ void hmp_memsave(Monitor *mon, const QDict *qdict) uint32_t size = qdict_get_int(qdict, "size"); const char *filename = qdict_get_str(qdict, "filename"); uint64_t addr = qdict_get_int(qdict, "val"); Error *errp = NULL; Error *err = NULL; qmp_memsave(addr, size, filename, true, monitor_get_cpu_index(), &errp); hmp_handle_error(mon, &errp); qmp_memsave(addr, size, filename, true, monitor_get_cpu_index(), &err); hmp_handle_error(mon, &err); } void hmp_pmemsave(Monitor *mon, const QDict *qdict) Loading @@ -765,21 +765,21 @@ void hmp_pmemsave(Monitor *mon, const QDict *qdict) uint32_t size = qdict_get_int(qdict, "size"); const char *filename = qdict_get_str(qdict, "filename"); uint64_t addr = qdict_get_int(qdict, "val"); Error *errp = NULL; Error *err = NULL; qmp_pmemsave(addr, size, filename, &errp); hmp_handle_error(mon, &errp); qmp_pmemsave(addr, size, filename, &err); hmp_handle_error(mon, &err); } void hmp_ringbuf_write(Monitor *mon, const QDict *qdict) { const char *chardev = qdict_get_str(qdict, "device"); const char *data = qdict_get_str(qdict, "data"); Error *errp = NULL; Error *err = NULL; qmp_ringbuf_write(chardev, data, false, 0, &errp); qmp_ringbuf_write(chardev, data, false, 0, &err); hmp_handle_error(mon, &errp); hmp_handle_error(mon, &err); } void hmp_ringbuf_read(Monitor *mon, const QDict *qdict) Loading @@ -787,13 +787,13 @@ void hmp_ringbuf_read(Monitor *mon, const QDict *qdict) uint32_t size = qdict_get_int(qdict, "size"); const char *chardev = qdict_get_str(qdict, "device"); char *data; Error *errp = NULL; Error *err = NULL; int i; data = qmp_ringbuf_read(chardev, size, false, 0, &errp); if (errp) { monitor_printf(mon, "%s\n", error_get_pretty(errp)); error_free(errp); data = qmp_ringbuf_read(chardev, size, false, 0, &err); if (err) { monitor_printf(mon, "%s\n", error_get_pretty(err)); error_free(err); return; } Loading Loading @@ -828,7 +828,7 @@ static bool key_is_missing(const BlockInfo *bdev) void hmp_cont(Monitor *mon, const QDict *qdict) { BlockInfoList *bdev_list, *bdev; Error *errp = NULL; Error *err = NULL; bdev_list = qmp_query_block(NULL); for (bdev = bdev_list; bdev; bdev = bdev->next) { Loading @@ -839,8 +839,8 @@ void hmp_cont(Monitor *mon, const QDict *qdict) } } qmp_cont(&errp); hmp_handle_error(mon, &errp); qmp_cont(&err); hmp_handle_error(mon, &err); out: qapi_free_BlockInfoList(bdev_list); Loading @@ -853,41 +853,41 @@ void hmp_system_wakeup(Monitor *mon, const QDict *qdict) void hmp_inject_nmi(Monitor *mon, const QDict *qdict) { Error *errp = NULL; Error *err = NULL; qmp_inject_nmi(&errp); hmp_handle_error(mon, &errp); qmp_inject_nmi(&err); hmp_handle_error(mon, &err); } void hmp_set_link(Monitor *mon, const QDict *qdict) { const char *name = qdict_get_str(qdict, "name"); int up = qdict_get_bool(qdict, "up"); Error *errp = NULL; Error *err = NULL; qmp_set_link(name, up, &errp); hmp_handle_error(mon, &errp); qmp_set_link(name, up, &err); hmp_handle_error(mon, &err); } void hmp_block_passwd(Monitor *mon, const QDict *qdict) { const char *device = qdict_get_str(qdict, "device"); const char *password = qdict_get_str(qdict, "password"); Error *errp = NULL; Error *err = NULL; qmp_block_passwd(true, device, false, NULL, password, &errp); hmp_handle_error(mon, &errp); qmp_block_passwd(true, device, false, NULL, password, &err); hmp_handle_error(mon, &err); } void hmp_balloon(Monitor *mon, const QDict *qdict) { int64_t value = qdict_get_int(qdict, "value"); Error *errp = NULL; Error *err = NULL; qmp_balloon(value, &errp); if (errp) { monitor_printf(mon, "balloon: %s\n", error_get_pretty(errp)); error_free(errp); qmp_balloon(value, &err); if (err) { monitor_printf(mon, "balloon: %s\n", error_get_pretty(err)); error_free(err); } } Loading @@ -895,10 +895,10 @@ void hmp_block_resize(Monitor *mon, const QDict *qdict) { const char *device = qdict_get_str(qdict, "device"); int64_t size = qdict_get_int(qdict, "size"); Error *errp = NULL; Error *err = NULL; qmp_block_resize(true, device, false, NULL, size, &errp); hmp_handle_error(mon, &errp); qmp_block_resize(true, device, false, NULL, size, &err); hmp_handle_error(mon, &err); } void hmp_drive_mirror(Monitor *mon, const QDict *qdict) Loading @@ -909,11 +909,11 @@ void hmp_drive_mirror(Monitor *mon, const QDict *qdict) int reuse = qdict_get_try_bool(qdict, "reuse", 0); int full = qdict_get_try_bool(qdict, "full", 0); enum NewImageMode mode; Error *errp = NULL; Error *err = NULL; if (!filename) { error_set(&errp, QERR_MISSING_PARAMETER, "target"); hmp_handle_error(mon, &errp); error_set(&err, QERR_MISSING_PARAMETER, "target"); hmp_handle_error(mon, &err); return; } Loading @@ -926,8 +926,8 @@ void hmp_drive_mirror(Monitor *mon, const QDict *qdict) qmp_drive_mirror(device, filename, !!format, format, full ? MIRROR_SYNC_MODE_FULL : MIRROR_SYNC_MODE_TOP, true, mode, false, 0, false, 0, false, 0, false, 0, false, 0, &errp); hmp_handle_error(mon, &errp); false, 0, false, 0, &err); hmp_handle_error(mon, &err); } void hmp_drive_backup(Monitor *mon, const QDict *qdict) Loading @@ -938,11 +938,11 @@ void hmp_drive_backup(Monitor *mon, const QDict *qdict) int reuse = qdict_get_try_bool(qdict, "reuse", 0); int full = qdict_get_try_bool(qdict, "full", 0); enum NewImageMode mode; Error *errp = NULL; Error *err = NULL; if (!filename) { error_set(&errp, QERR_MISSING_PARAMETER, "target"); hmp_handle_error(mon, &errp); error_set(&err, QERR_MISSING_PARAMETER, "target"); hmp_handle_error(mon, &err); return; } Loading @@ -954,8 +954,8 @@ void hmp_drive_backup(Monitor *mon, const QDict *qdict) qmp_drive_backup(device, filename, !!format, format, full ? MIRROR_SYNC_MODE_FULL : MIRROR_SYNC_MODE_TOP, true, mode, false, 0, false, 0, false, 0, &errp); hmp_handle_error(mon, &errp); true, mode, false, 0, false, 0, false, 0, &err); hmp_handle_error(mon, &err); } void hmp_snapshot_blkdev(Monitor *mon, const QDict *qdict) Loading @@ -965,13 +965,13 @@ void hmp_snapshot_blkdev(Monitor *mon, const QDict *qdict) const char *format = qdict_get_try_str(qdict, "format"); int reuse = qdict_get_try_bool(qdict, "reuse", 0); enum NewImageMode mode; Error *errp = NULL; Error *err = NULL; if (!filename) { /* In the future, if 'snapshot-file' is not specified, the snapshot will be taken internally. Today it's actually required. */ error_set(&errp, QERR_MISSING_PARAMETER, "snapshot-file"); hmp_handle_error(mon, &errp); error_set(&err, QERR_MISSING_PARAMETER, "snapshot-file"); hmp_handle_error(mon, &err); return; } Loading @@ -979,18 +979,18 @@ void hmp_snapshot_blkdev(Monitor *mon, const QDict *qdict) qmp_blockdev_snapshot_sync(true, device, false, NULL, filename, false, NULL, !!format, format, true, mode, &errp); hmp_handle_error(mon, &errp); true, mode, &err); hmp_handle_error(mon, &err); } void hmp_snapshot_blkdev_internal(Monitor *mon, const QDict *qdict) { const char *device = qdict_get_str(qdict, "device"); const char *name = qdict_get_str(qdict, "name"); Error *errp = NULL; Error *err = NULL; qmp_blockdev_snapshot_internal_sync(device, name, &errp); hmp_handle_error(mon, &errp); qmp_blockdev_snapshot_internal_sync(device, name, &err); hmp_handle_error(mon, &err); } void hmp_snapshot_delete_blkdev_internal(Monitor *mon, const QDict *qdict) Loading @@ -998,11 +998,11 @@ void hmp_snapshot_delete_blkdev_internal(Monitor *mon, const QDict *qdict) const char *device = qdict_get_str(qdict, "device"); const char *name = qdict_get_str(qdict, "name"); const char *id = qdict_get_try_str(qdict, "id"); Error *errp = NULL; Error *err = NULL; qmp_blockdev_snapshot_delete_internal_sync(device, !!id, id, true, name, &errp); hmp_handle_error(mon, &errp); true, name, &err); hmp_handle_error(mon, &err); } void hmp_migrate_cancel(Monitor *mon, const QDict *qdict) Loading Loading @@ -1310,7 +1310,7 @@ void hmp_device_del(Monitor *mon, const QDict *qdict) void hmp_dump_guest_memory(Monitor *mon, const QDict *qdict) { Error *errp = NULL; Error *err = NULL; int paging = qdict_get_try_bool(qdict, "paging", 0); int zlib = qdict_get_try_bool(qdict, "zlib", 0); int lzo = qdict_get_try_bool(qdict, "lzo", 0); Loading @@ -1324,8 +1324,8 @@ void hmp_dump_guest_memory(Monitor *mon, const QDict *qdict) char *prot; if (zlib + lzo + snappy > 1) { error_setg(&errp, "only one of '-z|-l|-s' can be set"); hmp_handle_error(mon, &errp); error_setg(&err, "only one of '-z|-l|-s' can be set"); hmp_handle_error(mon, &err); return; } Loading @@ -1351,8 +1351,8 @@ void hmp_dump_guest_memory(Monitor *mon, const QDict *qdict) prot = g_strconcat("file:", file, NULL); qmp_dump_guest_memory(paging, prot, has_begin, begin, has_length, length, true, dump_format, &errp); hmp_handle_error(mon, &errp); true, dump_format, &err); hmp_handle_error(mon, &err); g_free(prot); } Loading Loading @@ -1444,19 +1444,19 @@ out: void hmp_getfd(Monitor *mon, const QDict *qdict) { const char *fdname = qdict_get_str(qdict, "fdname"); Error *errp = NULL; Error *err = NULL; qmp_getfd(fdname, &errp); hmp_handle_error(mon, &errp); qmp_getfd(fdname, &err); hmp_handle_error(mon, &err); } void hmp_closefd(Monitor *mon, const QDict *qdict) { const char *fdname = qdict_get_str(qdict, "fdname"); Error *errp = NULL; Error *err = NULL; qmp_closefd(fdname, &errp); hmp_handle_error(mon, &errp); qmp_closefd(fdname, &err); hmp_handle_error(mon, &err); } void hmp_send_key(Monitor *mon, const QDict *qdict) Loading Loading @@ -1606,10 +1606,10 @@ void hmp_nbd_server_add(Monitor *mon, const QDict *qdict) void hmp_nbd_server_stop(Monitor *mon, const QDict *qdict) { Error *errp = NULL; Error *err = NULL; qmp_nbd_server_stop(&errp); hmp_handle_error(mon, &errp); qmp_nbd_server_stop(&err); hmp_handle_error(mon, &err); } void hmp_cpu_add(Monitor *mon, const QDict *qdict) Loading
include/qapi/qmp/dispatch.h +1 −1 Original line number Diff line number Diff line Loading @@ -50,7 +50,7 @@ void qmp_enable_command(const char *name); bool qmp_command_is_enabled(const QmpCommand *cmd); const char *qmp_command_name(const QmpCommand *cmd); bool qmp_has_success_response(const QmpCommand *cmd); QObject *qmp_build_error_object(Error *errp); QObject *qmp_build_error_object(Error *err); typedef void (*qmp_cmd_callback_fn)(QmpCommand *cmd, void *opaque); void qmp_for_each_command(qmp_cmd_callback_fn fn, void *opaque); Loading
qapi/qmp-dispatch.c +3 −3 Original line number Diff line number Diff line Loading @@ -110,11 +110,11 @@ static QObject *do_qmp_dispatch(QObject *request, Error **errp) return ret; } QObject *qmp_build_error_object(Error *errp) QObject *qmp_build_error_object(Error *err) { return qobject_from_jsonf("{ 'class': %s, 'desc': %s }", ErrorClass_lookup[error_get_class(errp)], error_get_pretty(errp)); ErrorClass_lookup[error_get_class(err)], error_get_pretty(err)); } QObject *qmp_dispatch(QObject *request) Loading
tests/test-qmp-input-strict.c +36 −36 Original line number Diff line number Diff line Loading @@ -86,13 +86,13 @@ static void test_validate_struct(TestInputVisitorData *data, const void *unused) { TestStruct *p = NULL; Error *errp = NULL; Error *err = NULL; Visitor *v; v = validate_test_init(data, "{ 'integer': -42, 'boolean': true, 'string': 'foo' }"); visit_type_TestStruct(v, &p, NULL, &errp); g_assert(!errp); visit_type_TestStruct(v, &p, NULL, &err); g_assert(!err); g_free(p->string); g_free(p); } Loading @@ -101,13 +101,13 @@ static void test_validate_struct_nested(TestInputVisitorData *data, const void *unused) { UserDefNested *udp = NULL; Error *errp = NULL; Error *err = NULL; Visitor *v; v = validate_test_init(data, "{ 'string0': 'string0', 'dict1': { 'string1': 'string1', 'dict2': { 'userdef1': { 'integer': 42, 'string': 'string' }, 'string2': 'string2'}}}"); visit_type_UserDefNested(v, &udp, NULL, &errp); g_assert(!errp); visit_type_UserDefNested(v, &udp, NULL, &err); g_assert(!err); qapi_free_UserDefNested(udp); } Loading @@ -115,13 +115,13 @@ static void test_validate_list(TestInputVisitorData *data, const void *unused) { UserDefOneList *head = NULL; Error *errp = NULL; Error *err = NULL; Visitor *v; v = validate_test_init(data, "[ { 'string': 'string0', 'integer': 42 }, { 'string': 'string1', 'integer': 43 }, { 'string': 'string2', 'integer': 44 } ]"); visit_type_UserDefOneList(v, &head, NULL, &errp); g_assert(!errp); visit_type_UserDefOneList(v, &head, NULL, &err); g_assert(!err); qapi_free_UserDefOneList(head); } Loading @@ -130,12 +130,12 @@ static void test_validate_union(TestInputVisitorData *data, { UserDefUnion *tmp = NULL; Visitor *v; Error *errp = NULL; Error *err = NULL; v = validate_test_init(data, "{ 'type': 'b', 'integer': 41, 'data' : { 'integer': 42 } }"); visit_type_UserDefUnion(v, &tmp, NULL, &errp); g_assert(!errp); visit_type_UserDefUnion(v, &tmp, NULL, &err); g_assert(!err); qapi_free_UserDefUnion(tmp); } Loading @@ -144,7 +144,7 @@ static void test_validate_union_flat(TestInputVisitorData *data, { UserDefFlatUnion *tmp = NULL; Visitor *v; Error *errp = NULL; Error *err = NULL; v = validate_test_init(data, "{ 'enum1': 'value1', " Loading @@ -152,8 +152,8 @@ static void test_validate_union_flat(TestInputVisitorData *data, "'boolean': true }"); /* TODO when generator bug is fixed, add 'integer': 41 */ visit_type_UserDefFlatUnion(v, &tmp, NULL, &errp); g_assert(!errp); visit_type_UserDefFlatUnion(v, &tmp, NULL, &err); g_assert(!err); qapi_free_UserDefFlatUnion(tmp); } Loading @@ -162,12 +162,12 @@ static void test_validate_union_anon(TestInputVisitorData *data, { UserDefAnonUnion *tmp = NULL; Visitor *v; Error *errp = NULL; Error *err = NULL; v = validate_test_init(data, "42"); visit_type_UserDefAnonUnion(v, &tmp, NULL, &errp); g_assert(!errp); visit_type_UserDefAnonUnion(v, &tmp, NULL, &err); g_assert(!err); qapi_free_UserDefAnonUnion(tmp); } Loading @@ -175,13 +175,13 @@ static void test_validate_fail_struct(TestInputVisitorData *data, const void *unused) { TestStruct *p = NULL; Error *errp = NULL; Error *err = NULL; Visitor *v; v = validate_test_init(data, "{ 'integer': -42, 'boolean': true, 'string': 'foo', 'extra': 42 }"); visit_type_TestStruct(v, &p, NULL, &errp); g_assert(errp); visit_type_TestStruct(v, &p, NULL, &err); g_assert(err); if (p) { g_free(p->string); } Loading @@ -192,13 +192,13 @@ static void test_validate_fail_struct_nested(TestInputVisitorData *data, const void *unused) { UserDefNested *udp = NULL; Error *errp = NULL; Error *err = NULL; Visitor *v; v = validate_test_init(data, "{ 'string0': 'string0', 'dict1': { 'string1': 'string1', 'dict2': { 'userdef1': { 'integer': 42, 'string': 'string', 'extra': [42, 23, {'foo':'bar'}] }, 'string2': 'string2'}}}"); visit_type_UserDefNested(v, &udp, NULL, &errp); g_assert(errp); visit_type_UserDefNested(v, &udp, NULL, &err); g_assert(err); qapi_free_UserDefNested(udp); } Loading @@ -206,13 +206,13 @@ static void test_validate_fail_list(TestInputVisitorData *data, const void *unused) { UserDefOneList *head = NULL; Error *errp = NULL; Error *err = NULL; Visitor *v; v = validate_test_init(data, "[ { 'string': 'string0', 'integer': 42 }, { 'string': 'string1', 'integer': 43 }, { 'string': 'string2', 'integer': 44, 'extra': 'ggg' } ]"); visit_type_UserDefOneList(v, &head, NULL, &errp); g_assert(errp); visit_type_UserDefOneList(v, &head, NULL, &err); g_assert(err); qapi_free_UserDefOneList(head); } Loading @@ -220,13 +220,13 @@ static void test_validate_fail_union(TestInputVisitorData *data, const void *unused) { UserDefUnion *tmp = NULL; Error *errp = NULL; Error *err = NULL; Visitor *v; v = validate_test_init(data, "{ 'type': 'b', 'data' : { 'integer': 42 } }"); visit_type_UserDefUnion(v, &tmp, NULL, &errp); g_assert(errp); visit_type_UserDefUnion(v, &tmp, NULL, &err); g_assert(err); qapi_free_UserDefUnion(tmp); } Loading @@ -234,13 +234,13 @@ static void test_validate_fail_union_flat(TestInputVisitorData *data, const void *unused) { UserDefFlatUnion *tmp = NULL; Error *errp = NULL; Error *err = NULL; Visitor *v; v = validate_test_init(data, "{ 'string': 'c', 'integer': 41, 'boolean': true }"); visit_type_UserDefFlatUnion(v, &tmp, NULL, &errp); g_assert(errp); visit_type_UserDefFlatUnion(v, &tmp, NULL, &err); g_assert(err); qapi_free_UserDefFlatUnion(tmp); } Loading @@ -249,12 +249,12 @@ static void test_validate_fail_union_anon(TestInputVisitorData *data, { UserDefAnonUnion *tmp = NULL; Visitor *v; Error *errp = NULL; Error *err = NULL; v = validate_test_init(data, "3.14"); visit_type_UserDefAnonUnion(v, &tmp, NULL, &errp); g_assert(errp); visit_type_UserDefAnonUnion(v, &tmp, NULL, &err); g_assert(err); qapi_free_UserDefAnonUnion(tmp); } Loading