Lines Matching refs:opt

529     QemuOpt *opt;
531 QTAILQ_FOREACH_REVERSE(opt, &opts->head, QemuOptHead, next) {
532 if (strcmp(opt->name, name) != 0)
534 return opt;
541 QemuOpt *opt = qemu_opt_find(opts, name);
542 return opt ? opt->str : NULL;
547 QemuOpt *opt = qemu_opt_find(opts, name);
549 if (opt == NULL)
551 assert(opt->desc && opt->desc->type == QEMU_OPT_BOOL);
552 return opt->value.boolean;
557 QemuOpt *opt = qemu_opt_find(opts, name);
559 if (opt == NULL)
561 assert(opt->desc && opt->desc->type == QEMU_OPT_NUMBER);
562 return opt->value.uint;
567 QemuOpt *opt = qemu_opt_find(opts, name);
569 if (opt == NULL)
571 assert(opt->desc && opt->desc->type == QEMU_OPT_SIZE);
572 return opt->value.uint;
575 static int qemu_opt_parse(QemuOpt *opt)
577 if (opt->desc == NULL)
579 switch (opt->desc->type) {
584 return parse_option_bool(opt->name, opt->str, &opt->value.boolean);
586 return parse_option_number(opt->name, opt->str, &opt->value.uint);
588 return parse_option_size(opt->name, opt->str, &opt->value.uint);
594 static void qemu_opt_del(QemuOpt *opt)
596 QTAILQ_REMOVE(&opt->opts->head, opt, next);
597 qemu_free((/* !const */ char*)opt->name);
598 qemu_free((/* !const */ char*)opt->str);
599 qemu_free(opt);
604 QemuOpt *opt;
622 opt = qemu_mallocz(sizeof(*opt));
623 opt->name = qemu_strdup(name);
624 opt->opts = opts;
625 QTAILQ_INSERT_TAIL(&opts->head, opt, next);
627 opt->desc = desc+i;
630 opt->str = qemu_strdup(value);
632 if (qemu_opt_parse(opt) < 0) {
633 qemu_opt_del(opt);
642 QemuOpt *opt;
645 QTAILQ_FOREACH(opt, &opts->head, next) {
646 rc = func(opt->name, opt->str, opaque);
748 QemuOpt *opt;
751 opt = QTAILQ_FIRST(&opts->head);
752 if (opt == NULL)
754 qemu_opt_del(opt);
763 QemuOpt *opt;
767 QTAILQ_FOREACH(opt, &opts->head, next) {
768 fprintf(stderr, " %s=\"%s\"", opt->name, opt->str);
908 * TODO We'll want to use types appropriate for opt->desc->type, but
913 QemuOpt *opt;
922 QTAILQ_FOREACH(opt, &opts->head, next) {
923 val = QOBJECT(qstring_from_str(opt->str));
924 qdict_put_obj(qdict, opt->name, val);
934 QemuOpt *opt;
938 QTAILQ_FOREACH(opt, &opts->head, next) {
942 if (strcmp(desc[i].name, opt->name) == 0) {
947 qerror_report(QERR_INVALID_PARAMETER, opt->name);
951 opt->desc = &desc[i];
953 if (qemu_opt_parse(opt) < 0) {