int qmp_marshal_input_query_block(Monitor *mon, const QDict *qdict, QObject **ret) { Error *local_err = NULL; Error **errp = &local_err; QDict *args = (QDict *)qdict; BlockInfoList * retval = NULL; (void)args; if (error_is_set(errp)) { goto out; } retval = qmp_query_block(errp); if (!error_is_set(errp)) { qmp_marshal_output_query_block(retval, ret, errp); } out: if (local_err) { qerror_report_err(local_err); error_free(local_err); return -1; } return 0; }
static const char* get_device_image( const char* dev ) { BlockInfoList* blk_list; BlockInfoList* info; blk_list = qmp_query_block( NULL ); for( info = blk_list; info != NULL; info = info->next ) { if( info->value->has_inserted ) if( strcmp(info->value->device, dev ) == 0 ) return info->value->inserted->file; } return NULL; }