1/* AUTOMATICALLY GENERATED, DO NOT MODIFY */
2
3/*
4 * Schema-defined QAPI types
5 *
6 * Copyright IBM, Corp. 2011
7 * Copyright (c) 2013-2018 Red Hat Inc.
8 *
9 * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
10 * See the COPYING.LIB file in the top-level directory.
11 */
12
13#include "qemu/osdep.h"
14#include "qapi/dealloc-visitor.h"
15#include "qapi-types-block-core.h"
16#include "qapi-visit-block-core.h"
17
18void qapi_free_SnapshotInfo(SnapshotInfo *obj)
19{
20 Visitor *v;
21
22 if (!obj) {
23 return;
24 }
25
26 v = qapi_dealloc_visitor_new();
27 visit_type_SnapshotInfo(v, NULL, &obj, NULL);
28 visit_free(v);
29}
30
31void qapi_free_ImageInfoSpecificQCow2EncryptionBase(ImageInfoSpecificQCow2EncryptionBase *obj)
32{
33 Visitor *v;
34
35 if (!obj) {
36 return;
37 }
38
39 v = qapi_dealloc_visitor_new();
40 visit_type_ImageInfoSpecificQCow2EncryptionBase(v, NULL, &obj, NULL);
41 visit_free(v);
42}
43
44void qapi_free_ImageInfoSpecificQCow2Encryption(ImageInfoSpecificQCow2Encryption *obj)
45{
46 Visitor *v;
47
48 if (!obj) {
49 return;
50 }
51
52 v = qapi_dealloc_visitor_new();
53 visit_type_ImageInfoSpecificQCow2Encryption(v, NULL, &obj, NULL);
54 visit_free(v);
55}
56
57void qapi_free_Qcow2BitmapInfoList(Qcow2BitmapInfoList *obj)
58{
59 Visitor *v;
60
61 if (!obj) {
62 return;
63 }
64
65 v = qapi_dealloc_visitor_new();
66 visit_type_Qcow2BitmapInfoList(v, NULL, &obj, NULL);
67 visit_free(v);
68}
69
70void qapi_free_ImageInfoSpecificQCow2(ImageInfoSpecificQCow2 *obj)
71{
72 Visitor *v;
73
74 if (!obj) {
75 return;
76 }
77
78 v = qapi_dealloc_visitor_new();
79 visit_type_ImageInfoSpecificQCow2(v, NULL, &obj, NULL);
80 visit_free(v);
81}
82
83void qapi_free_ImageInfoList(ImageInfoList *obj)
84{
85 Visitor *v;
86
87 if (!obj) {
88 return;
89 }
90
91 v = qapi_dealloc_visitor_new();
92 visit_type_ImageInfoList(v, NULL, &obj, NULL);
93 visit_free(v);
94}
95
96void qapi_free_ImageInfoSpecificVmdk(ImageInfoSpecificVmdk *obj)
97{
98 Visitor *v;
99
100 if (!obj) {
101 return;
102 }
103
104 v = qapi_dealloc_visitor_new();
105 visit_type_ImageInfoSpecificVmdk(v, NULL, &obj, NULL);
106 visit_free(v);
107}
108
109const QEnumLookup ImageInfoSpecificKind_lookup = {
110 .array = (const char *const[]) {
111 [IMAGE_INFO_SPECIFIC_KIND_QCOW2] = "qcow2",
112 [IMAGE_INFO_SPECIFIC_KIND_VMDK] = "vmdk",
113 [IMAGE_INFO_SPECIFIC_KIND_LUKS] = "luks",
114 },
115 .size = IMAGE_INFO_SPECIFIC_KIND__MAX
116};
117
118void qapi_free_ImageInfoSpecific(ImageInfoSpecific *obj)
119{
120 Visitor *v;
121
122 if (!obj) {
123 return;
124 }
125
126 v = qapi_dealloc_visitor_new();
127 visit_type_ImageInfoSpecific(v, NULL, &obj, NULL);
128 visit_free(v);
129}
130
131void qapi_free_SnapshotInfoList(SnapshotInfoList *obj)
132{
133 Visitor *v;
134
135 if (!obj) {
136 return;
137 }
138
139 v = qapi_dealloc_visitor_new();
140 visit_type_SnapshotInfoList(v, NULL, &obj, NULL);
141 visit_free(v);
142}
143
144void qapi_free_ImageInfo(ImageInfo *obj)
145{
146 Visitor *v;
147
148 if (!obj) {
149 return;
150 }
151
152 v = qapi_dealloc_visitor_new();
153 visit_type_ImageInfo(v, NULL, &obj, NULL);
154 visit_free(v);
155}
156
157void qapi_free_ImageCheck(ImageCheck *obj)
158{
159 Visitor *v;
160
161 if (!obj) {
162 return;
163 }
164
165 v = qapi_dealloc_visitor_new();
166 visit_type_ImageCheck(v, NULL, &obj, NULL);
167 visit_free(v);
168}
169
170void qapi_free_MapEntry(MapEntry *obj)
171{
172 Visitor *v;
173
174 if (!obj) {
175 return;
176 }
177
178 v = qapi_dealloc_visitor_new();
179 visit_type_MapEntry(v, NULL, &obj, NULL);
180 visit_free(v);
181}
182
183void qapi_free_BlockdevCacheInfo(BlockdevCacheInfo *obj)
184{
185 Visitor *v;
186
187 if (!obj) {
188 return;
189 }
190
191 v = qapi_dealloc_visitor_new();
192 visit_type_BlockdevCacheInfo(v, NULL, &obj, NULL);
193 visit_free(v);
194}
195
196void qapi_free_BlockDirtyInfoList(BlockDirtyInfoList *obj)
197{
198 Visitor *v;
199
200 if (!obj) {
201 return;
202 }
203
204 v = qapi_dealloc_visitor_new();
205 visit_type_BlockDirtyInfoList(v, NULL, &obj, NULL);
206 visit_free(v);
207}
208
209void qapi_free_BlockDeviceInfo(BlockDeviceInfo *obj)
210{
211 Visitor *v;
212
213 if (!obj) {
214 return;
215 }
216
217 v = qapi_dealloc_visitor_new();
218 visit_type_BlockDeviceInfo(v, NULL, &obj, NULL);
219 visit_free(v);
220}
221
222const QEnumLookup BlockDeviceIoStatus_lookup = {
223 .array = (const char *const[]) {
224 [BLOCK_DEVICE_IO_STATUS_OK] = "ok",
225 [BLOCK_DEVICE_IO_STATUS_FAILED] = "failed",
226 [BLOCK_DEVICE_IO_STATUS_NOSPACE] = "nospace",
227 },
228 .size = BLOCK_DEVICE_IO_STATUS__MAX
229};
230
231void qapi_free_BlockDeviceMapEntry(BlockDeviceMapEntry *obj)
232{
233 Visitor *v;
234
235 if (!obj) {
236 return;
237 }
238
239 v = qapi_dealloc_visitor_new();
240 visit_type_BlockDeviceMapEntry(v, NULL, &obj, NULL);
241 visit_free(v);
242}
243
244const QEnumLookup DirtyBitmapStatus_lookup = {
245 .array = (const char *const[]) {
246 [DIRTY_BITMAP_STATUS_ACTIVE] = "active",
247 [DIRTY_BITMAP_STATUS_DISABLED] = "disabled",
248 [DIRTY_BITMAP_STATUS_FROZEN] = "frozen",
249 [DIRTY_BITMAP_STATUS_LOCKED] = "locked",
250 [DIRTY_BITMAP_STATUS_INCONSISTENT] = "inconsistent",
251 },
252 .size = DIRTY_BITMAP_STATUS__MAX
253};
254
255void qapi_free_BlockDirtyInfo(BlockDirtyInfo *obj)
256{
257 Visitor *v;
258
259 if (!obj) {
260 return;
261 }
262
263 v = qapi_dealloc_visitor_new();
264 visit_type_BlockDirtyInfo(v, NULL, &obj, NULL);
265 visit_free(v);
266}
267
268const QEnumLookup Qcow2BitmapInfoFlags_lookup = {
269 .array = (const char *const[]) {
270 [QCOW2_BITMAP_INFO_FLAGS_IN_USE] = "in-use",
271 [QCOW2_BITMAP_INFO_FLAGS_AUTO] = "auto",
272 },
273 .size = QCOW2_BITMAP_INFO_FLAGS__MAX
274};
275
276void qapi_free_Qcow2BitmapInfoFlagsList(Qcow2BitmapInfoFlagsList *obj)
277{
278 Visitor *v;
279
280 if (!obj) {
281 return;
282 }
283
284 v = qapi_dealloc_visitor_new();
285 visit_type_Qcow2BitmapInfoFlagsList(v, NULL, &obj, NULL);
286 visit_free(v);
287}
288
289void qapi_free_Qcow2BitmapInfo(Qcow2BitmapInfo *obj)
290{
291 Visitor *v;
292
293 if (!obj) {
294 return;
295 }
296
297 v = qapi_dealloc_visitor_new();
298 visit_type_Qcow2BitmapInfo(v, NULL, &obj, NULL);
299 visit_free(v);
300}
301
302void qapi_free_BlockLatencyHistogramInfo(BlockLatencyHistogramInfo *obj)
303{
304 Visitor *v;
305
306 if (!obj) {
307 return;
308 }
309
310 v = qapi_dealloc_visitor_new();
311 visit_type_BlockLatencyHistogramInfo(v, NULL, &obj, NULL);
312 visit_free(v);
313}
314
315void qapi_free_BlockInfo(BlockInfo *obj)
316{
317 Visitor *v;
318
319 if (!obj) {
320 return;
321 }
322
323 v = qapi_dealloc_visitor_new();
324 visit_type_BlockInfo(v, NULL, &obj, NULL);
325 visit_free(v);
326}
327
328void qapi_free_BlockMeasureInfo(BlockMeasureInfo *obj)
329{
330 Visitor *v;
331
332 if (!obj) {
333 return;
334 }
335
336 v = qapi_dealloc_visitor_new();
337 visit_type_BlockMeasureInfo(v, NULL, &obj, NULL);
338 visit_free(v);
339}
340
341void qapi_free_BlockInfoList(BlockInfoList *obj)
342{
343 Visitor *v;
344
345 if (!obj) {
346 return;
347 }
348
349 v = qapi_dealloc_visitor_new();
350 visit_type_BlockInfoList(v, NULL, &obj, NULL);
351 visit_free(v);
352}
353
354void qapi_free_BlockDeviceTimedStats(BlockDeviceTimedStats *obj)
355{
356 Visitor *v;
357
358 if (!obj) {
359 return;
360 }
361
362 v = qapi_dealloc_visitor_new();
363 visit_type_BlockDeviceTimedStats(v, NULL, &obj, NULL);
364 visit_free(v);
365}
366
367void qapi_free_BlockDeviceTimedStatsList(BlockDeviceTimedStatsList *obj)
368{
369 Visitor *v;
370
371 if (!obj) {
372 return;
373 }
374
375 v = qapi_dealloc_visitor_new();
376 visit_type_BlockDeviceTimedStatsList(v, NULL, &obj, NULL);
377 visit_free(v);
378}
379
380void qapi_free_BlockDeviceStats(BlockDeviceStats *obj)
381{
382 Visitor *v;
383
384 if (!obj) {
385 return;
386 }
387
388 v = qapi_dealloc_visitor_new();
389 visit_type_BlockDeviceStats(v, NULL, &obj, NULL);
390 visit_free(v);
391}
392
393void qapi_free_BlockStats(BlockStats *obj)
394{
395 Visitor *v;
396
397 if (!obj) {
398 return;
399 }
400
401 v = qapi_dealloc_visitor_new();
402 visit_type_BlockStats(v, NULL, &obj, NULL);
403 visit_free(v);
404}
405
406void qapi_free_BlockStatsList(BlockStatsList *obj)
407{
408 Visitor *v;
409
410 if (!obj) {
411 return;
412 }
413
414 v = qapi_dealloc_visitor_new();
415 visit_type_BlockStatsList(v, NULL, &obj, NULL);
416 visit_free(v);
417}
418
419const QEnumLookup BlockdevOnError_lookup = {
420 .array = (const char *const[]) {
421 [BLOCKDEV_ON_ERROR_REPORT] = "report",
422 [BLOCKDEV_ON_ERROR_IGNORE] = "ignore",
423 [BLOCKDEV_ON_ERROR_ENOSPC] = "enospc",
424 [BLOCKDEV_ON_ERROR_STOP] = "stop",
425 [BLOCKDEV_ON_ERROR_AUTO] = "auto",
426 },
427 .size = BLOCKDEV_ON_ERROR__MAX
428};
429
430const QEnumLookup MirrorSyncMode_lookup = {
431 .array = (const char *const[]) {
432 [MIRROR_SYNC_MODE_TOP] = "top",
433 [MIRROR_SYNC_MODE_FULL] = "full",
434 [MIRROR_SYNC_MODE_NONE] = "none",
435 [MIRROR_SYNC_MODE_INCREMENTAL] = "incremental",
436 [MIRROR_SYNC_MODE_BITMAP] = "bitmap",
437 },
438 .size = MIRROR_SYNC_MODE__MAX
439};
440
441const QEnumLookup BitmapSyncMode_lookup = {
442 .array = (const char *const[]) {
443 [BITMAP_SYNC_MODE_ON_SUCCESS] = "on-success",
444 [BITMAP_SYNC_MODE_NEVER] = "never",
445 [BITMAP_SYNC_MODE_ALWAYS] = "always",
446 },
447 .size = BITMAP_SYNC_MODE__MAX
448};
449
450const QEnumLookup MirrorCopyMode_lookup = {
451 .array = (const char *const[]) {
452 [MIRROR_COPY_MODE_BACKGROUND] = "background",
453 [MIRROR_COPY_MODE_WRITE_BLOCKING] = "write-blocking",
454 },
455 .size = MIRROR_COPY_MODE__MAX
456};
457
458void qapi_free_BlockJobInfo(BlockJobInfo *obj)
459{
460 Visitor *v;
461
462 if (!obj) {
463 return;
464 }
465
466 v = qapi_dealloc_visitor_new();
467 visit_type_BlockJobInfo(v, NULL, &obj, NULL);
468 visit_free(v);
469}
470
471void qapi_free_BlockJobInfoList(BlockJobInfoList *obj)
472{
473 Visitor *v;
474
475 if (!obj) {
476 return;
477 }
478
479 v = qapi_dealloc_visitor_new();
480 visit_type_BlockJobInfoList(v, NULL, &obj, NULL);
481 visit_free(v);
482}
483
484const QEnumLookup NewImageMode_lookup = {
485 .array = (const char *const[]) {
486 [NEW_IMAGE_MODE_EXISTING] = "existing",
487 [NEW_IMAGE_MODE_ABSOLUTE_PATHS] = "absolute-paths",
488 },
489 .size = NEW_IMAGE_MODE__MAX
490};
491
492void qapi_free_BlockdevSnapshotSync(BlockdevSnapshotSync *obj)
493{
494 Visitor *v;
495
496 if (!obj) {
497 return;
498 }
499
500 v = qapi_dealloc_visitor_new();
501 visit_type_BlockdevSnapshotSync(v, NULL, &obj, NULL);
502 visit_free(v);
503}
504
505void qapi_free_BlockdevSnapshot(BlockdevSnapshot *obj)
506{
507 Visitor *v;
508
509 if (!obj) {
510 return;
511 }
512
513 v = qapi_dealloc_visitor_new();
514 visit_type_BlockdevSnapshot(v, NULL, &obj, NULL);
515 visit_free(v);
516}
517
518void qapi_free_BackupCommon(BackupCommon *obj)
519{
520 Visitor *v;
521
522 if (!obj) {
523 return;
524 }
525
526 v = qapi_dealloc_visitor_new();
527 visit_type_BackupCommon(v, NULL, &obj, NULL);
528 visit_free(v);
529}
530
531void qapi_free_DriveBackup(DriveBackup *obj)
532{
533 Visitor *v;
534
535 if (!obj) {
536 return;
537 }
538
539 v = qapi_dealloc_visitor_new();
540 visit_type_DriveBackup(v, NULL, &obj, NULL);
541 visit_free(v);
542}
543
544void qapi_free_BlockdevBackup(BlockdevBackup *obj)
545{
546 Visitor *v;
547
548 if (!obj) {
549 return;
550 }
551
552 v = qapi_dealloc_visitor_new();
553 visit_type_BlockdevBackup(v, NULL, &obj, NULL);
554 visit_free(v);
555}
556
557void qapi_free_BlockDeviceInfoList(BlockDeviceInfoList *obj)
558{
559 Visitor *v;
560
561 if (!obj) {
562 return;
563 }
564
565 v = qapi_dealloc_visitor_new();
566 visit_type_BlockDeviceInfoList(v, NULL, &obj, NULL);
567 visit_free(v);
568}
569
570const QEnumLookup XDbgBlockGraphNodeType_lookup = {
571 .array = (const char *const[]) {
572 [X_DBG_BLOCK_GRAPH_NODE_TYPE_BLOCK_BACKEND] = "block-backend",
573 [X_DBG_BLOCK_GRAPH_NODE_TYPE_BLOCK_JOB] = "block-job",
574 [X_DBG_BLOCK_GRAPH_NODE_TYPE_BLOCK_DRIVER] = "block-driver",
575 },
576 .size = X_DBG_BLOCK_GRAPH_NODE_TYPE__MAX
577};
578
579void qapi_free_XDbgBlockGraphNode(XDbgBlockGraphNode *obj)
580{
581 Visitor *v;
582
583 if (!obj) {
584 return;
585 }
586
587 v = qapi_dealloc_visitor_new();
588 visit_type_XDbgBlockGraphNode(v, NULL, &obj, NULL);
589 visit_free(v);
590}
591
592const QEnumLookup BlockPermission_lookup = {
593 .array = (const char *const[]) {
594 [BLOCK_PERMISSION_CONSISTENT_READ] = "consistent-read",
595 [BLOCK_PERMISSION_WRITE] = "write",
596 [BLOCK_PERMISSION_WRITE_UNCHANGED] = "write-unchanged",
597 [BLOCK_PERMISSION_RESIZE] = "resize",
598 [BLOCK_PERMISSION_GRAPH_MOD] = "graph-mod",
599 },
600 .size = BLOCK_PERMISSION__MAX
601};
602
603void qapi_free_BlockPermissionList(BlockPermissionList *obj)
604{
605 Visitor *v;
606
607 if (!obj) {
608 return;
609 }
610
611 v = qapi_dealloc_visitor_new();
612 visit_type_BlockPermissionList(v, NULL, &obj, NULL);
613 visit_free(v);
614}
615
616void qapi_free_XDbgBlockGraphEdge(XDbgBlockGraphEdge *obj)
617{
618 Visitor *v;
619
620 if (!obj) {
621 return;
622 }
623
624 v = qapi_dealloc_visitor_new();
625 visit_type_XDbgBlockGraphEdge(v, NULL, &obj, NULL);
626 visit_free(v);
627}
628
629void qapi_free_XDbgBlockGraphNodeList(XDbgBlockGraphNodeList *obj)
630{
631 Visitor *v;
632
633 if (!obj) {
634 return;
635 }
636
637 v = qapi_dealloc_visitor_new();
638 visit_type_XDbgBlockGraphNodeList(v, NULL, &obj, NULL);
639 visit_free(v);
640}
641
642void qapi_free_XDbgBlockGraphEdgeList(XDbgBlockGraphEdgeList *obj)
643{
644 Visitor *v;
645
646 if (!obj) {
647 return;
648 }
649
650 v = qapi_dealloc_visitor_new();
651 visit_type_XDbgBlockGraphEdgeList(v, NULL, &obj, NULL);
652 visit_free(v);
653}
654
655void qapi_free_XDbgBlockGraph(XDbgBlockGraph *obj)
656{
657 Visitor *v;
658
659 if (!obj) {
660 return;
661 }
662
663 v = qapi_dealloc_visitor_new();
664 visit_type_XDbgBlockGraph(v, NULL, &obj, NULL);
665 visit_free(v);
666}
667
668void qapi_free_DriveMirror(DriveMirror *obj)
669{
670 Visitor *v;
671
672 if (!obj) {
673 return;
674 }
675
676 v = qapi_dealloc_visitor_new();
677 visit_type_DriveMirror(v, NULL, &obj, NULL);
678 visit_free(v);
679}
680
681void qapi_free_BlockDirtyBitmap(BlockDirtyBitmap *obj)
682{
683 Visitor *v;
684
685 if (!obj) {
686 return;
687 }
688
689 v = qapi_dealloc_visitor_new();
690 visit_type_BlockDirtyBitmap(v, NULL, &obj, NULL);
691 visit_free(v);
692}
693
694void qapi_free_BlockDirtyBitmapAdd(BlockDirtyBitmapAdd *obj)
695{
696 Visitor *v;
697
698 if (!obj) {
699 return;
700 }
701
702 v = qapi_dealloc_visitor_new();
703 visit_type_BlockDirtyBitmapAdd(v, NULL, &obj, NULL);
704 visit_free(v);
705}
706
707void qapi_free_BlockDirtyBitmapMergeSource(BlockDirtyBitmapMergeSource *obj)
708{
709 Visitor *v;
710
711 if (!obj) {
712 return;
713 }
714
715 v = qapi_dealloc_visitor_new();
716 visit_type_BlockDirtyBitmapMergeSource(v, NULL, &obj, NULL);
717 visit_free(v);
718}
719
720void qapi_free_BlockDirtyBitmapMergeSourceList(BlockDirtyBitmapMergeSourceList *obj)
721{
722 Visitor *v;
723
724 if (!obj) {
725 return;
726 }
727
728 v = qapi_dealloc_visitor_new();
729 visit_type_BlockDirtyBitmapMergeSourceList(v, NULL, &obj, NULL);
730 visit_free(v);
731}
732
733void qapi_free_BlockDirtyBitmapMerge(BlockDirtyBitmapMerge *obj)
734{
735 Visitor *v;
736
737 if (!obj) {
738 return;
739 }
740
741 v = qapi_dealloc_visitor_new();
742 visit_type_BlockDirtyBitmapMerge(v, NULL, &obj, NULL);
743 visit_free(v);
744}
745
746void qapi_free_BlockDirtyBitmapSha256(BlockDirtyBitmapSha256 *obj)
747{
748 Visitor *v;
749
750 if (!obj) {
751 return;
752 }
753
754 v = qapi_dealloc_visitor_new();
755 visit_type_BlockDirtyBitmapSha256(v, NULL, &obj, NULL);
756 visit_free(v);
757}
758
759void qapi_free_BlockIOThrottle(BlockIOThrottle *obj)
760{
761 Visitor *v;
762
763 if (!obj) {
764 return;
765 }
766
767 v = qapi_dealloc_visitor_new();
768 visit_type_BlockIOThrottle(v, NULL, &obj, NULL);
769 visit_free(v);
770}
771
772void qapi_free_ThrottleLimits(ThrottleLimits *obj)
773{
774 Visitor *v;
775
776 if (!obj) {
777 return;
778 }
779
780 v = qapi_dealloc_visitor_new();
781 visit_type_ThrottleLimits(v, NULL, &obj, NULL);
782 visit_free(v);
783}
784
785const QEnumLookup BlockdevDiscardOptions_lookup = {
786 .array = (const char *const[]) {
787 [BLOCKDEV_DISCARD_OPTIONS_IGNORE] = "ignore",
788 [BLOCKDEV_DISCARD_OPTIONS_UNMAP] = "unmap",
789 },
790 .size = BLOCKDEV_DISCARD_OPTIONS__MAX
791};
792
793const QEnumLookup BlockdevDetectZeroesOptions_lookup = {
794 .array = (const char *const[]) {
795 [BLOCKDEV_DETECT_ZEROES_OPTIONS_OFF] = "off",
796 [BLOCKDEV_DETECT_ZEROES_OPTIONS_ON] = "on",
797 [BLOCKDEV_DETECT_ZEROES_OPTIONS_UNMAP] = "unmap",
798 },
799 .size = BLOCKDEV_DETECT_ZEROES_OPTIONS__MAX
800};
801
802const QEnumLookup BlockdevAioOptions_lookup = {
803 .array = (const char *const[]) {
804 [BLOCKDEV_AIO_OPTIONS_THREADS] = "threads",
805 [BLOCKDEV_AIO_OPTIONS_NATIVE] = "native",
806 },
807 .size = BLOCKDEV_AIO_OPTIONS__MAX
808};
809
810void qapi_free_BlockdevCacheOptions(BlockdevCacheOptions *obj)
811{
812 Visitor *v;
813
814 if (!obj) {
815 return;
816 }
817
818 v = qapi_dealloc_visitor_new();
819 visit_type_BlockdevCacheOptions(v, NULL, &obj, NULL);
820 visit_free(v);
821}
822
823const QEnumLookup BlockdevDriver_lookup = {
824 .array = (const char *const[]) {
825 [BLOCKDEV_DRIVER_BLKDEBUG] = "blkdebug",
826 [BLOCKDEV_DRIVER_BLKLOGWRITES] = "blklogwrites",
827 [BLOCKDEV_DRIVER_BLKVERIFY] = "blkverify",
828 [BLOCKDEV_DRIVER_BOCHS] = "bochs",
829 [BLOCKDEV_DRIVER_CLOOP] = "cloop",
830 [BLOCKDEV_DRIVER_COPY_ON_READ] = "copy-on-read",
831 [BLOCKDEV_DRIVER_DMG] = "dmg",
832 [BLOCKDEV_DRIVER_FILE] = "file",
833 [BLOCKDEV_DRIVER_FTP] = "ftp",
834 [BLOCKDEV_DRIVER_FTPS] = "ftps",
835 [BLOCKDEV_DRIVER_GLUSTER] = "gluster",
836 [BLOCKDEV_DRIVER_HOST_CDROM] = "host_cdrom",
837 [BLOCKDEV_DRIVER_HOST_DEVICE] = "host_device",
838 [BLOCKDEV_DRIVER_HTTP] = "http",
839 [BLOCKDEV_DRIVER_HTTPS] = "https",
840 [BLOCKDEV_DRIVER_ISCSI] = "iscsi",
841 [BLOCKDEV_DRIVER_LUKS] = "luks",
842 [BLOCKDEV_DRIVER_NBD] = "nbd",
843 [BLOCKDEV_DRIVER_NFS] = "nfs",
844 [BLOCKDEV_DRIVER_NULL_AIO] = "null-aio",
845 [BLOCKDEV_DRIVER_NULL_CO] = "null-co",
846 [BLOCKDEV_DRIVER_NVME] = "nvme",
847 [BLOCKDEV_DRIVER_PARALLELS] = "parallels",
848 [BLOCKDEV_DRIVER_QCOW] = "qcow",
849 [BLOCKDEV_DRIVER_QCOW2] = "qcow2",
850 [BLOCKDEV_DRIVER_QED] = "qed",
851 [BLOCKDEV_DRIVER_QUORUM] = "quorum",
852 [BLOCKDEV_DRIVER_RAW] = "raw",
853 [BLOCKDEV_DRIVER_RBD] = "rbd",
854#if defined(CONFIG_REPLICATION)
855 [BLOCKDEV_DRIVER_REPLICATION] = "replication",
856#endif /* defined(CONFIG_REPLICATION) */
857 [BLOCKDEV_DRIVER_SHEEPDOG] = "sheepdog",
858 [BLOCKDEV_DRIVER_SSH] = "ssh",
859 [BLOCKDEV_DRIVER_THROTTLE] = "throttle",
860 [BLOCKDEV_DRIVER_VDI] = "vdi",
861 [BLOCKDEV_DRIVER_VHDX] = "vhdx",
862 [BLOCKDEV_DRIVER_VMDK] = "vmdk",
863 [BLOCKDEV_DRIVER_VPC] = "vpc",
864 [BLOCKDEV_DRIVER_VVFAT] = "vvfat",
865 [BLOCKDEV_DRIVER_VXHS] = "vxhs",
866 },
867 .size = BLOCKDEV_DRIVER__MAX
868};
869
870void qapi_free_BlockdevOptionsFile(BlockdevOptionsFile *obj)
871{
872 Visitor *v;
873
874 if (!obj) {
875 return;
876 }
877
878 v = qapi_dealloc_visitor_new();
879 visit_type_BlockdevOptionsFile(v, NULL, &obj, NULL);
880 visit_free(v);
881}
882
883void qapi_free_BlockdevOptionsNull(BlockdevOptionsNull *obj)
884{
885 Visitor *v;
886
887 if (!obj) {
888 return;
889 }
890
891 v = qapi_dealloc_visitor_new();
892 visit_type_BlockdevOptionsNull(v, NULL, &obj, NULL);
893 visit_free(v);
894}
895
896void qapi_free_BlockdevOptionsNVMe(BlockdevOptionsNVMe *obj)
897{
898 Visitor *v;
899
900 if (!obj) {
901 return;
902 }
903
904 v = qapi_dealloc_visitor_new();
905 visit_type_BlockdevOptionsNVMe(v, NULL, &obj, NULL);
906 visit_free(v);
907}
908
909void qapi_free_BlockdevOptionsVVFAT(BlockdevOptionsVVFAT *obj)
910{
911 Visitor *v;
912
913 if (!obj) {
914 return;
915 }
916
917 v = qapi_dealloc_visitor_new();
918 visit_type_BlockdevOptionsVVFAT(v, NULL, &obj, NULL);
919 visit_free(v);
920}
921
922void qapi_free_BlockdevOptionsGenericFormat(BlockdevOptionsGenericFormat *obj)
923{
924 Visitor *v;
925
926 if (!obj) {
927 return;
928 }
929
930 v = qapi_dealloc_visitor_new();
931 visit_type_BlockdevOptionsGenericFormat(v, NULL, &obj, NULL);
932 visit_free(v);
933}
934
935void qapi_free_BlockdevOptionsLUKS(BlockdevOptionsLUKS *obj)
936{
937 Visitor *v;
938
939 if (!obj) {
940 return;
941 }
942
943 v = qapi_dealloc_visitor_new();
944 visit_type_BlockdevOptionsLUKS(v, NULL, &obj, NULL);
945 visit_free(v);
946}
947
948void qapi_free_BlockdevOptionsGenericCOWFormat(BlockdevOptionsGenericCOWFormat *obj)
949{
950 Visitor *v;
951
952 if (!obj) {
953 return;
954 }
955
956 v = qapi_dealloc_visitor_new();
957 visit_type_BlockdevOptionsGenericCOWFormat(v, NULL, &obj, NULL);
958 visit_free(v);
959}
960
961const QEnumLookup Qcow2OverlapCheckMode_lookup = {
962 .array = (const char *const[]) {
963 [QCOW2_OVERLAP_CHECK_MODE_NONE] = "none",
964 [QCOW2_OVERLAP_CHECK_MODE_CONSTANT] = "constant",
965 [QCOW2_OVERLAP_CHECK_MODE_CACHED] = "cached",
966 [QCOW2_OVERLAP_CHECK_MODE_ALL] = "all",
967 },
968 .size = QCOW2_OVERLAP_CHECK_MODE__MAX
969};
970
971void qapi_free_Qcow2OverlapCheckFlags(Qcow2OverlapCheckFlags *obj)
972{
973 Visitor *v;
974
975 if (!obj) {
976 return;
977 }
978
979 v = qapi_dealloc_visitor_new();
980 visit_type_Qcow2OverlapCheckFlags(v, NULL, &obj, NULL);
981 visit_free(v);
982}
983
984void qapi_free_Qcow2OverlapChecks(Qcow2OverlapChecks *obj)
985{
986 Visitor *v;
987
988 if (!obj) {
989 return;
990 }
991
992 v = qapi_dealloc_visitor_new();
993 visit_type_Qcow2OverlapChecks(v, NULL, &obj, NULL);
994 visit_free(v);
995}
996
997const QEnumLookup BlockdevQcowEncryptionFormat_lookup = {
998 .array = (const char *const[]) {
999 [BLOCKDEV_QCOW_ENCRYPTION_FORMAT_AES] = "aes",
1000 },
1001 .size = BLOCKDEV_QCOW_ENCRYPTION_FORMAT__MAX
1002};
1003
1004void qapi_free_BlockdevQcowEncryption(BlockdevQcowEncryption *obj)
1005{
1006 Visitor *v;
1007
1008 if (!obj) {
1009 return;
1010 }
1011
1012 v = qapi_dealloc_visitor_new();
1013 visit_type_BlockdevQcowEncryption(v, NULL, &obj, NULL);
1014 visit_free(v);
1015}
1016
1017void qapi_free_BlockdevOptionsQcow(BlockdevOptionsQcow *obj)
1018{
1019 Visitor *v;
1020
1021 if (!obj) {
1022 return;
1023 }
1024
1025 v = qapi_dealloc_visitor_new();
1026 visit_type_BlockdevOptionsQcow(v, NULL, &obj, NULL);
1027 visit_free(v);
1028}
1029
1030const QEnumLookup BlockdevQcow2EncryptionFormat_lookup = {
1031 .array = (const char *const[]) {
1032 [BLOCKDEV_QCOW2_ENCRYPTION_FORMAT_AES] = "aes",
1033 [BLOCKDEV_QCOW2_ENCRYPTION_FORMAT_LUKS] = "luks",
1034 },
1035 .size = BLOCKDEV_QCOW2_ENCRYPTION_FORMAT__MAX
1036};
1037
1038void qapi_free_BlockdevQcow2Encryption(BlockdevQcow2Encryption *obj)
1039{
1040 Visitor *v;
1041
1042 if (!obj) {
1043 return;
1044 }
1045
1046 v = qapi_dealloc_visitor_new();
1047 visit_type_BlockdevQcow2Encryption(v, NULL, &obj, NULL);
1048 visit_free(v);
1049}
1050
1051void qapi_free_BlockdevOptionsQcow2(BlockdevOptionsQcow2 *obj)
1052{
1053 Visitor *v;
1054
1055 if (!obj) {
1056 return;
1057 }
1058
1059 v = qapi_dealloc_visitor_new();
1060 visit_type_BlockdevOptionsQcow2(v, NULL, &obj, NULL);
1061 visit_free(v);
1062}
1063
1064const QEnumLookup SshHostKeyCheckMode_lookup = {
1065 .array = (const char *const[]) {
1066 [SSH_HOST_KEY_CHECK_MODE_NONE] = "none",
1067 [SSH_HOST_KEY_CHECK_MODE_HASH] = "hash",
1068 [SSH_HOST_KEY_CHECK_MODE_KNOWN_HOSTS] = "known_hosts",
1069 },
1070 .size = SSH_HOST_KEY_CHECK_MODE__MAX
1071};
1072
1073const QEnumLookup SshHostKeyCheckHashType_lookup = {
1074 .array = (const char *const[]) {
1075 [SSH_HOST_KEY_CHECK_HASH_TYPE_MD5] = "md5",
1076 [SSH_HOST_KEY_CHECK_HASH_TYPE_SHA1] = "sha1",
1077 },
1078 .size = SSH_HOST_KEY_CHECK_HASH_TYPE__MAX
1079};
1080
1081void qapi_free_SshHostKeyHash(SshHostKeyHash *obj)
1082{
1083 Visitor *v;
1084
1085 if (!obj) {
1086 return;
1087 }
1088
1089 v = qapi_dealloc_visitor_new();
1090 visit_type_SshHostKeyHash(v, NULL, &obj, NULL);
1091 visit_free(v);
1092}
1093
1094void qapi_free_SshHostKeyCheck(SshHostKeyCheck *obj)
1095{
1096 Visitor *v;
1097
1098 if (!obj) {
1099 return;
1100 }
1101
1102 v = qapi_dealloc_visitor_new();
1103 visit_type_SshHostKeyCheck(v, NULL, &obj, NULL);
1104 visit_free(v);
1105}
1106
1107void qapi_free_BlockdevOptionsSsh(BlockdevOptionsSsh *obj)
1108{
1109 Visitor *v;
1110
1111 if (!obj) {
1112 return;
1113 }
1114
1115 v = qapi_dealloc_visitor_new();
1116 visit_type_BlockdevOptionsSsh(v, NULL, &obj, NULL);
1117 visit_free(v);
1118}
1119
1120const QEnumLookup BlkdebugEvent_lookup = {
1121 .array = (const char *const[]) {
1122 [BLKDBG_L1_UPDATE] = "l1_update",
1123 [BLKDBG_L1_GROW_ALLOC_TABLE] = "l1_grow_alloc_table",
1124 [BLKDBG_L1_GROW_WRITE_TABLE] = "l1_grow_write_table",
1125 [BLKDBG_L1_GROW_ACTIVATE_TABLE] = "l1_grow_activate_table",
1126 [BLKDBG_L2_LOAD] = "l2_load",
1127 [BLKDBG_L2_UPDATE] = "l2_update",
1128 [BLKDBG_L2_UPDATE_COMPRESSED] = "l2_update_compressed",
1129 [BLKDBG_L2_ALLOC_COW_READ] = "l2_alloc_cow_read",
1130 [BLKDBG_L2_ALLOC_WRITE] = "l2_alloc_write",
1131 [BLKDBG_READ_AIO] = "read_aio",
1132 [BLKDBG_READ_BACKING_AIO] = "read_backing_aio",
1133 [BLKDBG_READ_COMPRESSED] = "read_compressed",
1134 [BLKDBG_WRITE_AIO] = "write_aio",
1135 [BLKDBG_WRITE_COMPRESSED] = "write_compressed",
1136 [BLKDBG_VMSTATE_LOAD] = "vmstate_load",
1137 [BLKDBG_VMSTATE_SAVE] = "vmstate_save",
1138 [BLKDBG_COW_READ] = "cow_read",
1139 [BLKDBG_COW_WRITE] = "cow_write",
1140 [BLKDBG_REFTABLE_LOAD] = "reftable_load",
1141 [BLKDBG_REFTABLE_GROW] = "reftable_grow",
1142 [BLKDBG_REFTABLE_UPDATE] = "reftable_update",
1143 [BLKDBG_REFBLOCK_LOAD] = "refblock_load",
1144 [BLKDBG_REFBLOCK_UPDATE] = "refblock_update",
1145 [BLKDBG_REFBLOCK_UPDATE_PART] = "refblock_update_part",
1146 [BLKDBG_REFBLOCK_ALLOC] = "refblock_alloc",
1147 [BLKDBG_REFBLOCK_ALLOC_HOOKUP] = "refblock_alloc_hookup",
1148 [BLKDBG_REFBLOCK_ALLOC_WRITE] = "refblock_alloc_write",
1149 [BLKDBG_REFBLOCK_ALLOC_WRITE_BLOCKS] = "refblock_alloc_write_blocks",
1150 [BLKDBG_REFBLOCK_ALLOC_WRITE_TABLE] = "refblock_alloc_write_table",
1151 [BLKDBG_REFBLOCK_ALLOC_SWITCH_TABLE] = "refblock_alloc_switch_table",
1152 [BLKDBG_CLUSTER_ALLOC] = "cluster_alloc",
1153 [BLKDBG_CLUSTER_ALLOC_BYTES] = "cluster_alloc_bytes",
1154 [BLKDBG_CLUSTER_FREE] = "cluster_free",
1155 [BLKDBG_FLUSH_TO_OS] = "flush_to_os",
1156 [BLKDBG_FLUSH_TO_DISK] = "flush_to_disk",
1157 [BLKDBG_PWRITEV_RMW_HEAD] = "pwritev_rmw_head",
1158 [BLKDBG_PWRITEV_RMW_AFTER_HEAD] = "pwritev_rmw_after_head",
1159 [BLKDBG_PWRITEV_RMW_TAIL] = "pwritev_rmw_tail",
1160 [BLKDBG_PWRITEV_RMW_AFTER_TAIL] = "pwritev_rmw_after_tail",
1161 [BLKDBG_PWRITEV] = "pwritev",
1162 [BLKDBG_PWRITEV_ZERO] = "pwritev_zero",
1163 [BLKDBG_PWRITEV_DONE] = "pwritev_done",
1164 [BLKDBG_EMPTY_IMAGE_PREPARE] = "empty_image_prepare",
1165 [BLKDBG_L1_SHRINK_WRITE_TABLE] = "l1_shrink_write_table",
1166 [BLKDBG_L1_SHRINK_FREE_L2_CLUSTERS] = "l1_shrink_free_l2_clusters",
1167 [BLKDBG_COR_WRITE] = "cor_write",
1168 [BLKDBG_CLUSTER_ALLOC_SPACE] = "cluster_alloc_space",
1169 [BLKDBG_NONE] = "none",
1170 },
1171 .size = BLKDBG__MAX
1172};
1173
1174const QEnumLookup BlkdebugIOType_lookup = {
1175 .array = (const char *const[]) {
1176 [BLKDEBUG_IO_TYPE_READ] = "read",
1177 [BLKDEBUG_IO_TYPE_WRITE] = "write",
1178 [BLKDEBUG_IO_TYPE_WRITE_ZEROES] = "write-zeroes",
1179 [BLKDEBUG_IO_TYPE_DISCARD] = "discard",
1180 [BLKDEBUG_IO_TYPE_FLUSH] = "flush",
1181 [BLKDEBUG_IO_TYPE_BLOCK_STATUS] = "block-status",
1182 },
1183 .size = BLKDEBUG_IO_TYPE__MAX
1184};
1185
1186void qapi_free_BlkdebugInjectErrorOptions(BlkdebugInjectErrorOptions *obj)
1187{
1188 Visitor *v;
1189
1190 if (!obj) {
1191 return;
1192 }
1193
1194 v = qapi_dealloc_visitor_new();
1195 visit_type_BlkdebugInjectErrorOptions(v, NULL, &obj, NULL);
1196 visit_free(v);
1197}
1198
1199void qapi_free_BlkdebugSetStateOptions(BlkdebugSetStateOptions *obj)
1200{
1201 Visitor *v;
1202
1203 if (!obj) {
1204 return;
1205 }
1206
1207 v = qapi_dealloc_visitor_new();
1208 visit_type_BlkdebugSetStateOptions(v, NULL, &obj, NULL);
1209 visit_free(v);
1210}
1211
1212void qapi_free_BlkdebugInjectErrorOptionsList(BlkdebugInjectErrorOptionsList *obj)
1213{
1214 Visitor *v;
1215
1216 if (!obj) {
1217 return;
1218 }
1219
1220 v = qapi_dealloc_visitor_new();
1221 visit_type_BlkdebugInjectErrorOptionsList(v, NULL, &obj, NULL);
1222 visit_free(v);
1223}
1224
1225void qapi_free_BlkdebugSetStateOptionsList(BlkdebugSetStateOptionsList *obj)
1226{
1227 Visitor *v;
1228
1229 if (!obj) {
1230 return;
1231 }
1232
1233 v = qapi_dealloc_visitor_new();
1234 visit_type_BlkdebugSetStateOptionsList(v, NULL, &obj, NULL);
1235 visit_free(v);
1236}
1237
1238void qapi_free_BlockdevOptionsBlkdebug(BlockdevOptionsBlkdebug *obj)
1239{
1240 Visitor *v;
1241
1242 if (!obj) {
1243 return;
1244 }
1245
1246 v = qapi_dealloc_visitor_new();
1247 visit_type_BlockdevOptionsBlkdebug(v, NULL, &obj, NULL);
1248 visit_free(v);
1249}
1250
1251void qapi_free_BlockdevOptionsBlklogwrites(BlockdevOptionsBlklogwrites *obj)
1252{
1253 Visitor *v;
1254
1255 if (!obj) {
1256 return;
1257 }
1258
1259 v = qapi_dealloc_visitor_new();
1260 visit_type_BlockdevOptionsBlklogwrites(v, NULL, &obj, NULL);
1261 visit_free(v);
1262}
1263
1264void qapi_free_BlockdevOptionsBlkverify(BlockdevOptionsBlkverify *obj)
1265{
1266 Visitor *v;
1267
1268 if (!obj) {
1269 return;
1270 }
1271
1272 v = qapi_dealloc_visitor_new();
1273 visit_type_BlockdevOptionsBlkverify(v, NULL, &obj, NULL);
1274 visit_free(v);
1275}
1276
1277const QEnumLookup QuorumReadPattern_lookup = {
1278 .array = (const char *const[]) {
1279 [QUORUM_READ_PATTERN_QUORUM] = "quorum",
1280 [QUORUM_READ_PATTERN_FIFO] = "fifo",
1281 },
1282 .size = QUORUM_READ_PATTERN__MAX
1283};
1284
1285void qapi_free_BlockdevRefList(BlockdevRefList *obj)
1286{
1287 Visitor *v;
1288
1289 if (!obj) {
1290 return;
1291 }
1292
1293 v = qapi_dealloc_visitor_new();
1294 visit_type_BlockdevRefList(v, NULL, &obj, NULL);
1295 visit_free(v);
1296}
1297
1298void qapi_free_BlockdevOptionsQuorum(BlockdevOptionsQuorum *obj)
1299{
1300 Visitor *v;
1301
1302 if (!obj) {
1303 return;
1304 }
1305
1306 v = qapi_dealloc_visitor_new();
1307 visit_type_BlockdevOptionsQuorum(v, NULL, &obj, NULL);
1308 visit_free(v);
1309}
1310
1311void qapi_free_BlockdevOptionsGluster(BlockdevOptionsGluster *obj)
1312{
1313 Visitor *v;
1314
1315 if (!obj) {
1316 return;
1317 }
1318
1319 v = qapi_dealloc_visitor_new();
1320 visit_type_BlockdevOptionsGluster(v, NULL, &obj, NULL);
1321 visit_free(v);
1322}
1323
1324const QEnumLookup IscsiTransport_lookup = {
1325 .array = (const char *const[]) {
1326 [ISCSI_TRANSPORT_TCP] = "tcp",
1327 [ISCSI_TRANSPORT_ISER] = "iser",
1328 },
1329 .size = ISCSI_TRANSPORT__MAX
1330};
1331
1332const QEnumLookup IscsiHeaderDigest_lookup = {
1333 .array = (const char *const[]) {
1334 [QAPI_ISCSI_HEADER_DIGEST_CRC32C] = "crc32c",
1335 [QAPI_ISCSI_HEADER_DIGEST_NONE] = "none",
1336 [QAPI_ISCSI_HEADER_DIGEST_CRC32C_NONE] = "crc32c-none",
1337 [QAPI_ISCSI_HEADER_DIGEST_NONE_CRC32C] = "none-crc32c",
1338 },
1339 .size = QAPI_ISCSI_HEADER_DIGEST__MAX
1340};
1341
1342void qapi_free_BlockdevOptionsIscsi(BlockdevOptionsIscsi *obj)
1343{
1344 Visitor *v;
1345
1346 if (!obj) {
1347 return;
1348 }
1349
1350 v = qapi_dealloc_visitor_new();
1351 visit_type_BlockdevOptionsIscsi(v, NULL, &obj, NULL);
1352 visit_free(v);
1353}
1354
1355const QEnumLookup RbdAuthMode_lookup = {
1356 .array = (const char *const[]) {
1357 [RBD_AUTH_MODE_CEPHX] = "cephx",
1358 [RBD_AUTH_MODE_NONE] = "none",
1359 },
1360 .size = RBD_AUTH_MODE__MAX
1361};
1362
1363void qapi_free_RbdAuthModeList(RbdAuthModeList *obj)
1364{
1365 Visitor *v;
1366
1367 if (!obj) {
1368 return;
1369 }
1370
1371 v = qapi_dealloc_visitor_new();
1372 visit_type_RbdAuthModeList(v, NULL, &obj, NULL);
1373 visit_free(v);
1374}
1375
1376void qapi_free_BlockdevOptionsRbd(BlockdevOptionsRbd *obj)
1377{
1378 Visitor *v;
1379
1380 if (!obj) {
1381 return;
1382 }
1383
1384 v = qapi_dealloc_visitor_new();
1385 visit_type_BlockdevOptionsRbd(v, NULL, &obj, NULL);
1386 visit_free(v);
1387}
1388
1389void qapi_free_BlockdevOptionsSheepdog(BlockdevOptionsSheepdog *obj)
1390{
1391 Visitor *v;
1392
1393 if (!obj) {
1394 return;
1395 }
1396
1397 v = qapi_dealloc_visitor_new();
1398 visit_type_BlockdevOptionsSheepdog(v, NULL, &obj, NULL);
1399 visit_free(v);
1400}
1401
1402#if defined(CONFIG_REPLICATION)
1403const QEnumLookup ReplicationMode_lookup = {
1404 .array = (const char *const[]) {
1405 [REPLICATION_MODE_PRIMARY] = "primary",
1406 [REPLICATION_MODE_SECONDARY] = "secondary",
1407 },
1408 .size = REPLICATION_MODE__MAX
1409};
1410#endif /* defined(CONFIG_REPLICATION) */
1411
1412#if defined(CONFIG_REPLICATION)
1413void qapi_free_BlockdevOptionsReplication(BlockdevOptionsReplication *obj)
1414{
1415 Visitor *v;
1416
1417 if (!obj) {
1418 return;
1419 }
1420
1421 v = qapi_dealloc_visitor_new();
1422 visit_type_BlockdevOptionsReplication(v, NULL, &obj, NULL);
1423 visit_free(v);
1424}
1425#endif /* defined(CONFIG_REPLICATION) */
1426
1427const QEnumLookup NFSTransport_lookup = {
1428 .array = (const char *const[]) {
1429 [NFS_TRANSPORT_INET] = "inet",
1430 },
1431 .size = NFS_TRANSPORT__MAX
1432};
1433
1434void qapi_free_NFSServer(NFSServer *obj)
1435{
1436 Visitor *v;
1437
1438 if (!obj) {
1439 return;
1440 }
1441
1442 v = qapi_dealloc_visitor_new();
1443 visit_type_NFSServer(v, NULL, &obj, NULL);
1444 visit_free(v);
1445}
1446
1447void qapi_free_BlockdevOptionsNfs(BlockdevOptionsNfs *obj)
1448{
1449 Visitor *v;
1450
1451 if (!obj) {
1452 return;
1453 }
1454
1455 v = qapi_dealloc_visitor_new();
1456 visit_type_BlockdevOptionsNfs(v, NULL, &obj, NULL);
1457 visit_free(v);
1458}
1459
1460void qapi_free_BlockdevOptionsCurlBase(BlockdevOptionsCurlBase *obj)
1461{
1462 Visitor *v;
1463
1464 if (!obj) {
1465 return;
1466 }
1467
1468 v = qapi_dealloc_visitor_new();
1469 visit_type_BlockdevOptionsCurlBase(v, NULL, &obj, NULL);
1470 visit_free(v);
1471}
1472
1473void qapi_free_BlockdevOptionsCurlHttp(BlockdevOptionsCurlHttp *obj)
1474{
1475 Visitor *v;
1476
1477 if (!obj) {
1478 return;
1479 }
1480
1481 v = qapi_dealloc_visitor_new();
1482 visit_type_BlockdevOptionsCurlHttp(v, NULL, &obj, NULL);
1483 visit_free(v);
1484}
1485
1486void qapi_free_BlockdevOptionsCurlHttps(BlockdevOptionsCurlHttps *obj)
1487{
1488 Visitor *v;
1489
1490 if (!obj) {
1491 return;
1492 }
1493
1494 v = qapi_dealloc_visitor_new();
1495 visit_type_BlockdevOptionsCurlHttps(v, NULL, &obj, NULL);
1496 visit_free(v);
1497}
1498
1499void qapi_free_BlockdevOptionsCurlFtp(BlockdevOptionsCurlFtp *obj)
1500{
1501 Visitor *v;
1502
1503 if (!obj) {
1504 return;
1505 }
1506
1507 v = qapi_dealloc_visitor_new();
1508 visit_type_BlockdevOptionsCurlFtp(v, NULL, &obj, NULL);
1509 visit_free(v);
1510}
1511
1512void qapi_free_BlockdevOptionsCurlFtps(BlockdevOptionsCurlFtps *obj)
1513{
1514 Visitor *v;
1515
1516 if (!obj) {
1517 return;
1518 }
1519
1520 v = qapi_dealloc_visitor_new();
1521 visit_type_BlockdevOptionsCurlFtps(v, NULL, &obj, NULL);
1522 visit_free(v);
1523}
1524
1525void qapi_free_BlockdevOptionsNbd(BlockdevOptionsNbd *obj)
1526{
1527 Visitor *v;
1528
1529 if (!obj) {
1530 return;
1531 }
1532
1533 v = qapi_dealloc_visitor_new();
1534 visit_type_BlockdevOptionsNbd(v, NULL, &obj, NULL);
1535 visit_free(v);
1536}
1537
1538void qapi_free_BlockdevOptionsRaw(BlockdevOptionsRaw *obj)
1539{
1540 Visitor *v;
1541
1542 if (!obj) {
1543 return;
1544 }
1545
1546 v = qapi_dealloc_visitor_new();
1547 visit_type_BlockdevOptionsRaw(v, NULL, &obj, NULL);
1548 visit_free(v);
1549}
1550
1551void qapi_free_BlockdevOptionsVxHS(BlockdevOptionsVxHS *obj)
1552{
1553 Visitor *v;
1554
1555 if (!obj) {
1556 return;
1557 }
1558
1559 v = qapi_dealloc_visitor_new();
1560 visit_type_BlockdevOptionsVxHS(v, NULL, &obj, NULL);
1561 visit_free(v);
1562}
1563
1564void qapi_free_BlockdevOptionsThrottle(BlockdevOptionsThrottle *obj)
1565{
1566 Visitor *v;
1567
1568 if (!obj) {
1569 return;
1570 }
1571
1572 v = qapi_dealloc_visitor_new();
1573 visit_type_BlockdevOptionsThrottle(v, NULL, &obj, NULL);
1574 visit_free(v);
1575}
1576
1577void qapi_free_BlockdevOptions(BlockdevOptions *obj)
1578{
1579 Visitor *v;
1580
1581 if (!obj) {
1582 return;
1583 }
1584
1585 v = qapi_dealloc_visitor_new();
1586 visit_type_BlockdevOptions(v, NULL, &obj, NULL);
1587 visit_free(v);
1588}
1589
1590void qapi_free_BlockdevRef(BlockdevRef *obj)
1591{
1592 Visitor *v;
1593
1594 if (!obj) {
1595 return;
1596 }
1597
1598 v = qapi_dealloc_visitor_new();
1599 visit_type_BlockdevRef(v, NULL, &obj, NULL);
1600 visit_free(v);
1601}
1602
1603void qapi_free_BlockdevRefOrNull(BlockdevRefOrNull *obj)
1604{
1605 Visitor *v;
1606
1607 if (!obj) {
1608 return;
1609 }
1610
1611 v = qapi_dealloc_visitor_new();
1612 visit_type_BlockdevRefOrNull(v, NULL, &obj, NULL);
1613 visit_free(v);
1614}
1615
1616void qapi_free_BlockdevCreateOptionsFile(BlockdevCreateOptionsFile *obj)
1617{
1618 Visitor *v;
1619
1620 if (!obj) {
1621 return;
1622 }
1623
1624 v = qapi_dealloc_visitor_new();
1625 visit_type_BlockdevCreateOptionsFile(v, NULL, &obj, NULL);
1626 visit_free(v);
1627}
1628
1629void qapi_free_BlockdevCreateOptionsGluster(BlockdevCreateOptionsGluster *obj)
1630{
1631 Visitor *v;
1632
1633 if (!obj) {
1634 return;
1635 }
1636
1637 v = qapi_dealloc_visitor_new();
1638 visit_type_BlockdevCreateOptionsGluster(v, NULL, &obj, NULL);
1639 visit_free(v);
1640}
1641
1642void qapi_free_BlockdevCreateOptionsLUKS(BlockdevCreateOptionsLUKS *obj)
1643{
1644 Visitor *v;
1645
1646 if (!obj) {
1647 return;
1648 }
1649
1650 v = qapi_dealloc_visitor_new();
1651 visit_type_BlockdevCreateOptionsLUKS(v, NULL, &obj, NULL);
1652 visit_free(v);
1653}
1654
1655void qapi_free_BlockdevCreateOptionsNfs(BlockdevCreateOptionsNfs *obj)
1656{
1657 Visitor *v;
1658
1659 if (!obj) {
1660 return;
1661 }
1662
1663 v = qapi_dealloc_visitor_new();
1664 visit_type_BlockdevCreateOptionsNfs(v, NULL, &obj, NULL);
1665 visit_free(v);
1666}
1667
1668void qapi_free_BlockdevCreateOptionsParallels(BlockdevCreateOptionsParallels *obj)
1669{
1670 Visitor *v;
1671
1672 if (!obj) {
1673 return;
1674 }
1675
1676 v = qapi_dealloc_visitor_new();
1677 visit_type_BlockdevCreateOptionsParallels(v, NULL, &obj, NULL);
1678 visit_free(v);
1679}
1680
1681void qapi_free_BlockdevCreateOptionsQcow(BlockdevCreateOptionsQcow *obj)
1682{
1683 Visitor *v;
1684
1685 if (!obj) {
1686 return;
1687 }
1688
1689 v = qapi_dealloc_visitor_new();
1690 visit_type_BlockdevCreateOptionsQcow(v, NULL, &obj, NULL);
1691 visit_free(v);
1692}
1693
1694const QEnumLookup BlockdevQcow2Version_lookup = {
1695 .array = (const char *const[]) {
1696 [BLOCKDEV_QCOW2_VERSION_V2] = "v2",
1697 [BLOCKDEV_QCOW2_VERSION_V3] = "v3",
1698 },
1699 .size = BLOCKDEV_QCOW2_VERSION__MAX
1700};
1701
1702void qapi_free_BlockdevCreateOptionsQcow2(BlockdevCreateOptionsQcow2 *obj)
1703{
1704 Visitor *v;
1705
1706 if (!obj) {
1707 return;
1708 }
1709
1710 v = qapi_dealloc_visitor_new();
1711 visit_type_BlockdevCreateOptionsQcow2(v, NULL, &obj, NULL);
1712 visit_free(v);
1713}
1714
1715void qapi_free_BlockdevCreateOptionsQed(BlockdevCreateOptionsQed *obj)
1716{
1717 Visitor *v;
1718
1719 if (!obj) {
1720 return;
1721 }
1722
1723 v = qapi_dealloc_visitor_new();
1724 visit_type_BlockdevCreateOptionsQed(v, NULL, &obj, NULL);
1725 visit_free(v);
1726}
1727
1728void qapi_free_BlockdevCreateOptionsRbd(BlockdevCreateOptionsRbd *obj)
1729{
1730 Visitor *v;
1731
1732 if (!obj) {
1733 return;
1734 }
1735
1736 v = qapi_dealloc_visitor_new();
1737 visit_type_BlockdevCreateOptionsRbd(v, NULL, &obj, NULL);
1738 visit_free(v);
1739}
1740
1741const QEnumLookup BlockdevVmdkSubformat_lookup = {
1742 .array = (const char *const[]) {
1743 [BLOCKDEV_VMDK_SUBFORMAT_MONOLITHICSPARSE] = "monolithicSparse",
1744 [BLOCKDEV_VMDK_SUBFORMAT_MONOLITHICFLAT] = "monolithicFlat",
1745 [BLOCKDEV_VMDK_SUBFORMAT_TWOGBMAXEXTENTSPARSE] = "twoGbMaxExtentSparse",
1746 [BLOCKDEV_VMDK_SUBFORMAT_TWOGBMAXEXTENTFLAT] = "twoGbMaxExtentFlat",
1747 [BLOCKDEV_VMDK_SUBFORMAT_STREAMOPTIMIZED] = "streamOptimized",
1748 },
1749 .size = BLOCKDEV_VMDK_SUBFORMAT__MAX
1750};
1751
1752const QEnumLookup BlockdevVmdkAdapterType_lookup = {
1753 .array = (const char *const[]) {
1754 [BLOCKDEV_VMDK_ADAPTER_TYPE_IDE] = "ide",
1755 [BLOCKDEV_VMDK_ADAPTER_TYPE_BUSLOGIC] = "buslogic",
1756 [BLOCKDEV_VMDK_ADAPTER_TYPE_LSILOGIC] = "lsilogic",
1757 [BLOCKDEV_VMDK_ADAPTER_TYPE_LEGACYESX] = "legacyESX",
1758 },
1759 .size = BLOCKDEV_VMDK_ADAPTER_TYPE__MAX
1760};
1761
1762void qapi_free_BlockdevCreateOptionsVmdk(BlockdevCreateOptionsVmdk *obj)
1763{
1764 Visitor *v;
1765
1766 if (!obj) {
1767 return;
1768 }
1769
1770 v = qapi_dealloc_visitor_new();
1771 visit_type_BlockdevCreateOptionsVmdk(v, NULL, &obj, NULL);
1772 visit_free(v);
1773}
1774
1775const QEnumLookup SheepdogRedundancyType_lookup = {
1776 .array = (const char *const[]) {
1777 [SHEEPDOG_REDUNDANCY_TYPE_FULL] = "full",
1778 [SHEEPDOG_REDUNDANCY_TYPE_ERASURE_CODED] = "erasure-coded",
1779 },
1780 .size = SHEEPDOG_REDUNDANCY_TYPE__MAX
1781};
1782
1783void qapi_free_SheepdogRedundancyFull(SheepdogRedundancyFull *obj)
1784{
1785 Visitor *v;
1786
1787 if (!obj) {
1788 return;
1789 }
1790
1791 v = qapi_dealloc_visitor_new();
1792 visit_type_SheepdogRedundancyFull(v, NULL, &obj, NULL);
1793 visit_free(v);
1794}
1795
1796void qapi_free_SheepdogRedundancyErasureCoded(SheepdogRedundancyErasureCoded *obj)
1797{
1798 Visitor *v;
1799
1800 if (!obj) {
1801 return;
1802 }
1803
1804 v = qapi_dealloc_visitor_new();
1805 visit_type_SheepdogRedundancyErasureCoded(v, NULL, &obj, NULL);
1806 visit_free(v);
1807}
1808
1809void qapi_free_SheepdogRedundancy(SheepdogRedundancy *obj)
1810{
1811 Visitor *v;
1812
1813 if (!obj) {
1814 return;
1815 }
1816
1817 v = qapi_dealloc_visitor_new();
1818 visit_type_SheepdogRedundancy(v, NULL, &obj, NULL);
1819 visit_free(v);
1820}
1821
1822void qapi_free_BlockdevCreateOptionsSheepdog(BlockdevCreateOptionsSheepdog *obj)
1823{
1824 Visitor *v;
1825
1826 if (!obj) {
1827 return;
1828 }
1829
1830 v = qapi_dealloc_visitor_new();
1831 visit_type_BlockdevCreateOptionsSheepdog(v, NULL, &obj, NULL);
1832 visit_free(v);
1833}
1834
1835void qapi_free_BlockdevCreateOptionsSsh(BlockdevCreateOptionsSsh *obj)
1836{
1837 Visitor *v;
1838
1839 if (!obj) {
1840 return;
1841 }
1842
1843 v = qapi_dealloc_visitor_new();
1844 visit_type_BlockdevCreateOptionsSsh(v, NULL, &obj, NULL);
1845 visit_free(v);
1846}
1847
1848void qapi_free_BlockdevCreateOptionsVdi(BlockdevCreateOptionsVdi *obj)
1849{
1850 Visitor *v;
1851
1852 if (!obj) {
1853 return;
1854 }
1855
1856 v = qapi_dealloc_visitor_new();
1857 visit_type_BlockdevCreateOptionsVdi(v, NULL, &obj, NULL);
1858 visit_free(v);
1859}
1860
1861const QEnumLookup BlockdevVhdxSubformat_lookup = {
1862 .array = (const char *const[]) {
1863 [BLOCKDEV_VHDX_SUBFORMAT_DYNAMIC] = "dynamic",
1864 [BLOCKDEV_VHDX_SUBFORMAT_FIXED] = "fixed",
1865 },
1866 .size = BLOCKDEV_VHDX_SUBFORMAT__MAX
1867};
1868
1869void qapi_free_BlockdevCreateOptionsVhdx(BlockdevCreateOptionsVhdx *obj)
1870{
1871 Visitor *v;
1872
1873 if (!obj) {
1874 return;
1875 }
1876
1877 v = qapi_dealloc_visitor_new();
1878 visit_type_BlockdevCreateOptionsVhdx(v, NULL, &obj, NULL);
1879 visit_free(v);
1880}
1881
1882const QEnumLookup BlockdevVpcSubformat_lookup = {
1883 .array = (const char *const[]) {
1884 [BLOCKDEV_VPC_SUBFORMAT_DYNAMIC] = "dynamic",
1885 [BLOCKDEV_VPC_SUBFORMAT_FIXED] = "fixed",
1886 },
1887 .size = BLOCKDEV_VPC_SUBFORMAT__MAX
1888};
1889
1890void qapi_free_BlockdevCreateOptionsVpc(BlockdevCreateOptionsVpc *obj)
1891{
1892 Visitor *v;
1893
1894 if (!obj) {
1895 return;
1896 }
1897
1898 v = qapi_dealloc_visitor_new();
1899 visit_type_BlockdevCreateOptionsVpc(v, NULL, &obj, NULL);
1900 visit_free(v);
1901}
1902
1903void qapi_free_BlockdevCreateOptions(BlockdevCreateOptions *obj)
1904{
1905 Visitor *v;
1906
1907 if (!obj) {
1908 return;
1909 }
1910
1911 v = qapi_dealloc_visitor_new();
1912 visit_type_BlockdevCreateOptions(v, NULL, &obj, NULL);
1913 visit_free(v);
1914}
1915
1916const QEnumLookup BlockdevChangeReadOnlyMode_lookup = {
1917 .array = (const char *const[]) {
1918 [BLOCKDEV_CHANGE_READ_ONLY_MODE_RETAIN] = "retain",
1919 [BLOCKDEV_CHANGE_READ_ONLY_MODE_READ_ONLY] = "read-only",
1920 [BLOCKDEV_CHANGE_READ_ONLY_MODE_READ_WRITE] = "read-write",
1921 },
1922 .size = BLOCKDEV_CHANGE_READ_ONLY_MODE__MAX
1923};
1924
1925const QEnumLookup BlockErrorAction_lookup = {
1926 .array = (const char *const[]) {
1927 [BLOCK_ERROR_ACTION_IGNORE] = "ignore",
1928 [BLOCK_ERROR_ACTION_REPORT] = "report",
1929 [BLOCK_ERROR_ACTION_STOP] = "stop",
1930 },
1931 .size = BLOCK_ERROR_ACTION__MAX
1932};
1933
1934const QEnumLookup PreallocMode_lookup = {
1935 .array = (const char *const[]) {
1936 [PREALLOC_MODE_OFF] = "off",
1937 [PREALLOC_MODE_METADATA] = "metadata",
1938 [PREALLOC_MODE_FALLOC] = "falloc",
1939 [PREALLOC_MODE_FULL] = "full",
1940 },
1941 .size = PREALLOC_MODE__MAX
1942};
1943
1944/* Dummy declaration to prevent empty .o file */
1945char qapi_dummy_qapi_types_block_core_c;
1946