1 | /* |
2 | * Options Visitor |
3 | * |
4 | * Copyright Red Hat, Inc. 2012 |
5 | * |
6 | * Author: Laszlo Ersek <lersek@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 | |
18 | /* Inclusive upper bound on the size of any flattened range. This is a safety |
19 | * (= anti-annoyance) measure; wrong ranges should not cause long startup |
20 | * delays nor exhaust virtual memory. |
21 | */ |
22 | #define OPTS_VISITOR_RANGE_MAX 65536 |
23 | |
24 | typedef struct OptsVisitor OptsVisitor; |
25 | |
26 | /* Contrarily to qemu-option.c::parse_option_number(), OptsVisitor's "int" |
27 | * parser relies on strtoll() instead of strtoull(). Consequences: |
28 | * - string representations of negative numbers yield negative values, |
29 | * - values below INT64_MIN or LLONG_MIN are rejected, |
30 | * - values above INT64_MAX or LLONG_MAX are rejected. |
31 | * |
32 | * The Opts input visitor does not implement support for visiting QAPI |
33 | * alternates, numbers (other than integers), null, or arbitrary |
34 | * QTypes. It also requires a non-null list argument to |
35 | * visit_start_list(). |
36 | */ |
37 | Visitor *opts_visitor_new(const QemuOpts *opts); |
38 | |
39 | #endif |
40 | |