Lines Matching full:opt

226     QemuOpt *opt;  in qemu_opt_find()  local
228 QTAILQ_FOREACH_REVERSE(opt, &opts->head, next) { in qemu_opt_find()
229 if (strcmp(opt->name, name) != 0) in qemu_opt_find()
231 return opt; in qemu_opt_find()
236 static void qemu_opt_del(QemuOpt *opt) in qemu_opt_del() argument
238 QTAILQ_REMOVE(&opt->opts->head, opt, next); in qemu_opt_del()
239 g_free(opt->name); in qemu_opt_del()
240 g_free(opt->str); in qemu_opt_del()
241 g_free(opt); in qemu_opt_del()
249 QemuOpt *opt, *next_opt; in qemu_opt_del_all() local
251 QTAILQ_FOREACH_SAFE(opt, &opts->head, next, next_opt) { in qemu_opt_del_all()
252 if (!strcmp(opt->name, name)) { in qemu_opt_del_all()
253 qemu_opt_del(opt); in qemu_opt_del_all()
260 QemuOpt *opt; in qemu_opt_get() local
266 opt = qemu_opt_find(opts, name); in qemu_opt_get()
267 if (!opt) { in qemu_opt_get()
271 return opt->str; in qemu_opt_get()
277 iter->opt = QTAILQ_FIRST(&opts->head); in qemu_opt_iter_init()
283 QemuOpt *ret = iter->opt; in qemu_opt_iter_next()
289 iter->opt = ret ? QTAILQ_NEXT(ret, next) : NULL; in qemu_opt_iter_next()
299 QemuOpt *opt; in qemu_opt_get_del() local
306 opt = qemu_opt_find(opts, name); in qemu_opt_get_del()
307 if (!opt) { in qemu_opt_get_del()
310 str = opt->str; in qemu_opt_get_del()
311 opt->str = NULL; in qemu_opt_get_del()
318 QemuOpt *opt; in qemu_opt_has_help_opt() local
320 QTAILQ_FOREACH_REVERSE(opt, &opts->head, next) { in qemu_opt_has_help_opt()
321 if (is_help_option(opt->name)) { in qemu_opt_has_help_opt()
331 QemuOpt *opt; in qemu_opt_get_bool_helper() local
339 opt = qemu_opt_find(opts, name); in qemu_opt_get_bool_helper()
340 if (opt == NULL) { in qemu_opt_get_bool_helper()
347 assert(opt->desc && opt->desc->type == QEMU_OPT_BOOL); in qemu_opt_get_bool_helper()
348 ret = opt->value.boolean; in qemu_opt_get_bool_helper()
368 QemuOpt *opt; in qemu_opt_get_number_helper() local
376 opt = qemu_opt_find(opts, name); in qemu_opt_get_number_helper()
377 if (opt == NULL) { in qemu_opt_get_number_helper()
384 assert(opt->desc && opt->desc->type == QEMU_OPT_NUMBER); in qemu_opt_get_number_helper()
385 ret = opt->value.uint; in qemu_opt_get_number_helper()
406 QemuOpt *opt; in qemu_opt_get_size_helper() local
414 opt = qemu_opt_find(opts, name); in qemu_opt_get_size_helper()
415 if (opt == NULL) { in qemu_opt_get_size_helper()
422 assert(opt->desc && opt->desc->type == QEMU_OPT_SIZE); in qemu_opt_get_size_helper()
423 ret = opt->value.uint; in qemu_opt_get_size_helper()
441 static bool qemu_opt_parse(QemuOpt *opt, Error **errp) in qemu_opt_parse() argument
443 if (opt->desc == NULL) in qemu_opt_parse()
446 switch (opt->desc->type) { in qemu_opt_parse()
451 return qapi_bool_parse(opt->name, opt->str, &opt->value.boolean, errp); in qemu_opt_parse()
453 return parse_option_number(opt->name, opt->str, &opt->value.uint, in qemu_opt_parse()
456 return parse_option_size(opt->name, opt->str, &opt->value.uint, in qemu_opt_parse()
470 QemuOpt *opt = qemu_opt_find(opts, name); in qemu_opt_unset() local
474 if (opt == NULL) { in qemu_opt_unset()
477 qemu_opt_del(opt); in qemu_opt_unset()
484 QemuOpt *opt = g_malloc0(sizeof(*opt)); in opt_create() local
486 opt->name = g_strdup(name); in opt_create()
487 opt->str = value; in opt_create()
488 opt->opts = opts; in opt_create()
489 QTAILQ_INSERT_TAIL(&opts->head, opt, next); in opt_create()
491 return opt; in opt_create()
494 static bool opt_validate(QemuOpt *opt, Error **errp) in opt_validate() argument
497 const QemuOptsList *list = opt->opts->list; in opt_validate()
499 desc = find_desc_by_name(list->desc, opt->name); in opt_validate()
501 error_setg(errp, "Invalid parameter '%s'", opt->name); in opt_validate()
505 opt->desc = desc; in opt_validate()
506 if (!qemu_opt_parse(opt, errp)) { in opt_validate()
516 QemuOpt *opt = opt_create(opts, name, g_strdup(value)); in qemu_opt_set() local
518 if (!opt_validate(opt, errp)) { in qemu_opt_set()
519 qemu_opt_del(opt); in qemu_opt_set()
528 QemuOpt *opt; in qemu_opt_set_bool() local
538 opt = g_malloc0(sizeof(*opt)); in qemu_opt_set_bool()
539 opt->name = g_strdup(name); in qemu_opt_set_bool()
540 opt->opts = opts; in qemu_opt_set_bool()
541 opt->desc = desc; in qemu_opt_set_bool()
542 opt->value.boolean = !!val; in qemu_opt_set_bool()
543 opt->str = g_strdup(val ? "on" : "off"); in qemu_opt_set_bool()
544 QTAILQ_INSERT_TAIL(&opts->head, opt, next); in qemu_opt_set_bool()
551 QemuOpt *opt; in qemu_opt_set_number() local
561 opt = g_malloc0(sizeof(*opt)); in qemu_opt_set_number()
562 opt->name = g_strdup(name); in qemu_opt_set_number()
563 opt->opts = opts; in qemu_opt_set_number()
564 opt->desc = desc; in qemu_opt_set_number()
565 opt->value.uint = val; in qemu_opt_set_number()
566 opt->str = g_strdup_printf("%" PRId64, val); in qemu_opt_set_number()
567 QTAILQ_INSERT_TAIL(&opts->head, opt, next); in qemu_opt_set_number()
580 QemuOpt *opt; in qemu_opt_foreach() local
583 QTAILQ_FOREACH(opt, &opts->head, next) { in qemu_opt_foreach()
584 rc = func(opaque, opt->name, opt->str, errp); in qemu_opt_foreach()
673 QemuOpt *opt; in qemu_opts_del() local
680 opt = QTAILQ_FIRST(&opts->head); in qemu_opts_del()
681 if (opt == NULL) in qemu_opts_del()
683 qemu_opt_del(opt); in qemu_opts_del()
705 QemuOpt *opt; in qemu_opts_print() local
715 QTAILQ_FOREACH(opt, &opts->head, next) { in qemu_opts_print()
716 printf("%s%s=", sep, opt->name); in qemu_opts_print()
717 escaped_print(opt->str); in qemu_opts_print()
724 opt = qemu_opt_find(opts, desc->name); in qemu_opts_print()
726 value = opt ? opt->str : desc->def_value_str; in qemu_opts_print()
734 desc->type == QEMU_OPT_NUMBER) && opt) { in qemu_opts_print()
735 printf("%s%s=%" PRId64, sep, desc->name, opt->value.uint); in qemu_opts_print()
805 QemuOpt *opt; in opts_do_parse() local
822 opt = opt_create(opts, option, value); in opts_do_parse()
824 if (!opt_validate(opt, errp)) { in opts_do_parse()
825 qemu_opt_del(opt); in opts_do_parse()
1051 * TODO We'll want to use types appropriate for opt->desc->type, but
1057 QemuOpt *opt, *next; in qemu_opts_to_qdict_filtered() local
1065 QTAILQ_FOREACH_SAFE(opt, &opts->head, next, next) { in qemu_opts_to_qdict_filtered()
1070 if (!strcmp(desc->name, opt->name)) { in qemu_opts_to_qdict_filtered()
1079 qdict_put_str(qdict, opt->name, opt->str); in qemu_opts_to_qdict_filtered()
1081 qemu_opt_del(opt); in qemu_opts_to_qdict_filtered()
1099 QemuOpt *opt; in qemu_opts_validate() local
1103 QTAILQ_FOREACH(opt, &opts->head, next) { in qemu_opts_validate()
1104 opt->desc = find_desc_by_name(desc, opt->name); in qemu_opts_validate()
1105 if (!opt->desc) { in qemu_opts_validate()
1106 error_setg(errp, "Invalid parameter '%s'", opt->name); in qemu_opts_validate()
1110 if (!qemu_opt_parse(opt, errp)) { in qemu_opts_validate()