Home | History | Annotate | Download | only in qapi
      1 /*
      2  * Options Visitor
      3  *
      4  * Copyright Red Hat, Inc. 2012
      5  *
      6  * Author: Laszlo Ersek <lersek (at) redhat.com>
      7  *
      8  * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
      9  * See the COPYING.LIB file in the top-level directory.
     10  *
     11  */
     12 
     13 #ifndef OPTS_VISITOR_H
     14 #define OPTS_VISITOR_H
     15 
     16 #include "qapi/visitor.h"
     17 #include "qemu/option.h"
     18 
     19 /* Inclusive upper bound on the size of any flattened range. This is a safety
     20  * (= anti-annoyance) measure; wrong ranges should not cause long startup
     21  * delays nor exhaust virtual memory.
     22  */
     23 #define OPTS_VISITOR_RANGE_MAX 65536
     24 
     25 typedef struct OptsVisitor OptsVisitor;
     26 
     27 /* Contrarily to qemu-option.c::parse_option_number(), OptsVisitor's "int"
     28  * parser relies on strtoll() instead of strtoull(). Consequences:
     29  * - string representations of negative numbers yield negative values,
     30  * - values below INT64_MIN or LLONG_MIN are rejected,
     31  * - values above INT64_MAX or LLONG_MAX are rejected.
     32  */
     33 OptsVisitor *opts_visitor_new(const QemuOpts *opts);
     34 void opts_visitor_cleanup(OptsVisitor *nv);
     35 Visitor *opts_get_visitor(OptsVisitor *nv);
     36 
     37 #endif
     38