xref: /qemu/fsdev/qemu-fsdev-opts.c (revision b8bbdb88)
1 /*
2  * 9p
3  *
4  * This work is licensed under the terms of the GNU GPL, version 2 or
5  * later.  See the COPYING file in the top-level directory.
6  */
7 
8 #include "qemu/osdep.h"
9 #include "qemu/config-file.h"
10 #include "qemu/option.h"
11 #include "qemu/module.h"
12 
13 static QemuOptsList qemu_fsdev_opts = {
14     .name = "fsdev",
15     .implied_opt_name = "fsdriver",
16     .head = QTAILQ_HEAD_INITIALIZER(qemu_fsdev_opts.head),
17     .desc = {
18         {
19             .name = "fsdriver",
20             .type = QEMU_OPT_STRING,
21         }, {
22             .name = "path",
23             .type = QEMU_OPT_STRING,
24         }, {
25             .name = "security_model",
26             .type = QEMU_OPT_STRING,
27         }, {
28             .name = "writeout",
29             .type = QEMU_OPT_STRING,
30         }, {
31             .name = "readonly",
32             .type = QEMU_OPT_BOOL,
33 
34         }, {
35             .name = "socket",
36             .type = QEMU_OPT_STRING,
37         }, {
38             .name = "sock_fd",
39             .type = QEMU_OPT_NUMBER,
40         }, {
41             .name = "throttling.iops-total",
42             .type = QEMU_OPT_NUMBER,
43             .help = "limit total I/O operations per second",
44         }, {
45             .name = "throttling.iops-read",
46             .type = QEMU_OPT_NUMBER,
47             .help = "limit read operations per second",
48         }, {
49             .name = "throttling.iops-write",
50             .type = QEMU_OPT_NUMBER,
51             .help = "limit write operations per second",
52         }, {
53             .name = "throttling.bps-total",
54             .type = QEMU_OPT_NUMBER,
55             .help = "limit total bytes per second",
56         }, {
57             .name = "throttling.bps-read",
58             .type = QEMU_OPT_NUMBER,
59             .help = "limit read bytes per second",
60         }, {
61             .name = "throttling.bps-write",
62             .type = QEMU_OPT_NUMBER,
63             .help = "limit write bytes per second",
64         }, {
65             .name = "throttling.iops-total-max",
66             .type = QEMU_OPT_NUMBER,
67             .help = "I/O operations burst",
68         }, {
69             .name = "throttling.iops-read-max",
70             .type = QEMU_OPT_NUMBER,
71             .help = "I/O operations read burst",
72         }, {
73             .name = "throttling.iops-write-max",
74             .type = QEMU_OPT_NUMBER,
75             .help = "I/O operations write burst",
76         }, {
77             .name = "throttling.bps-total-max",
78             .type = QEMU_OPT_NUMBER,
79             .help = "total bytes burst",
80         }, {
81             .name = "throttling.bps-read-max",
82             .type = QEMU_OPT_NUMBER,
83             .help = "total bytes read burst",
84         }, {
85             .name = "throttling.bps-write-max",
86             .type = QEMU_OPT_NUMBER,
87             .help = "total bytes write burst",
88         }, {
89             .name = "throttling.iops-total-max-length",
90             .type = QEMU_OPT_NUMBER,
91             .help = "length of the iops-total-max burst period, in seconds",
92         }, {
93             .name = "throttling.iops-read-max-length",
94             .type = QEMU_OPT_NUMBER,
95             .help = "length of the iops-read-max burst period, in seconds",
96         }, {
97             .name = "throttling.iops-write-max-length",
98             .type = QEMU_OPT_NUMBER,
99             .help = "length of the iops-write-max burst period, in seconds",
100         }, {
101             .name = "throttling.bps-total-max-length",
102             .type = QEMU_OPT_NUMBER,
103             .help = "length of the bps-total-max burst period, in seconds",
104         }, {
105             .name = "throttling.bps-read-max-length",
106             .type = QEMU_OPT_NUMBER,
107             .help = "length of the bps-read-max burst period, in seconds",
108         }, {
109             .name = "throttling.bps-write-max-length",
110             .type = QEMU_OPT_NUMBER,
111             .help = "length of the bps-write-max burst period, in seconds",
112         }, {
113             .name = "throttling.iops-size",
114             .type = QEMU_OPT_NUMBER,
115             .help = "when limiting by iops max size of an I/O in bytes",
116         },
117         { /*End of list */ }
118     },
119 };
120 
121 static QemuOptsList qemu_virtfs_opts = {
122     .name = "virtfs",
123     .implied_opt_name = "fsdriver",
124     .head = QTAILQ_HEAD_INITIALIZER(qemu_virtfs_opts.head),
125     .desc = {
126         {
127             .name = "fsdriver",
128             .type = QEMU_OPT_STRING,
129         }, {
130             .name = "path",
131             .type = QEMU_OPT_STRING,
132         }, {
133             .name = "mount_tag",
134             .type = QEMU_OPT_STRING,
135         }, {
136             .name = "security_model",
137             .type = QEMU_OPT_STRING,
138         }, {
139             .name = "writeout",
140             .type = QEMU_OPT_STRING,
141         }, {
142             .name = "readonly",
143             .type = QEMU_OPT_BOOL,
144         }, {
145             .name = "socket",
146             .type = QEMU_OPT_STRING,
147         }, {
148             .name = "sock_fd",
149             .type = QEMU_OPT_NUMBER,
150         },
151 
152         { /*End of list */ }
153     },
154 };
155 
156 static void fsdev_register_config(void)
157 {
158     qemu_add_opts(&qemu_fsdev_opts);
159     qemu_add_opts(&qemu_virtfs_opts);
160 }
161 opts_init(fsdev_register_config);
162