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#ifndef QAPI_TYPES_TRANSACTION_H
14#define QAPI_TYPES_TRANSACTION_H
15
16#include "qapi/qapi-builtin-types.h"
17#include "qapi-types-block.h"
18
19typedef struct Abort Abort;
20
21typedef enum ActionCompletionMode {
22 ACTION_COMPLETION_MODE_INDIVIDUAL,
23 ACTION_COMPLETION_MODE_GROUPED,
24 ACTION_COMPLETION_MODE__MAX,
25} ActionCompletionMode;
26
27#define ActionCompletionMode_str(val) \
28 qapi_enum_lookup(&ActionCompletionMode_lookup, (val))
29
30extern const QEnumLookup ActionCompletionMode_lookup;
31
32typedef struct q_obj_Abort_wrapper q_obj_Abort_wrapper;
33
34typedef struct q_obj_BlockDirtyBitmapAdd_wrapper q_obj_BlockDirtyBitmapAdd_wrapper;
35
36typedef struct q_obj_BlockDirtyBitmap_wrapper q_obj_BlockDirtyBitmap_wrapper;
37
38typedef struct q_obj_BlockDirtyBitmapMerge_wrapper q_obj_BlockDirtyBitmapMerge_wrapper;
39
40typedef struct q_obj_BlockdevBackup_wrapper q_obj_BlockdevBackup_wrapper;
41
42typedef struct q_obj_BlockdevSnapshot_wrapper q_obj_BlockdevSnapshot_wrapper;
43
44typedef struct q_obj_BlockdevSnapshotInternal_wrapper q_obj_BlockdevSnapshotInternal_wrapper;
45
46typedef struct q_obj_BlockdevSnapshotSync_wrapper q_obj_BlockdevSnapshotSync_wrapper;
47
48typedef struct q_obj_DriveBackup_wrapper q_obj_DriveBackup_wrapper;
49
50typedef enum TransactionActionKind {
51 TRANSACTION_ACTION_KIND_ABORT,
52 TRANSACTION_ACTION_KIND_BLOCK_DIRTY_BITMAP_ADD,
53 TRANSACTION_ACTION_KIND_BLOCK_DIRTY_BITMAP_REMOVE,
54 TRANSACTION_ACTION_KIND_BLOCK_DIRTY_BITMAP_CLEAR,
55 TRANSACTION_ACTION_KIND_BLOCK_DIRTY_BITMAP_ENABLE,
56 TRANSACTION_ACTION_KIND_BLOCK_DIRTY_BITMAP_DISABLE,
57 TRANSACTION_ACTION_KIND_BLOCK_DIRTY_BITMAP_MERGE,
58 TRANSACTION_ACTION_KIND_BLOCKDEV_BACKUP,
59 TRANSACTION_ACTION_KIND_BLOCKDEV_SNAPSHOT,
60 TRANSACTION_ACTION_KIND_BLOCKDEV_SNAPSHOT_INTERNAL_SYNC,
61 TRANSACTION_ACTION_KIND_BLOCKDEV_SNAPSHOT_SYNC,
62 TRANSACTION_ACTION_KIND_DRIVE_BACKUP,
63 TRANSACTION_ACTION_KIND__MAX,
64} TransactionActionKind;
65
66#define TransactionActionKind_str(val) \
67 qapi_enum_lookup(&TransactionActionKind_lookup, (val))
68
69extern const QEnumLookup TransactionActionKind_lookup;
70
71typedef struct TransactionAction TransactionAction;
72
73typedef struct TransactionProperties TransactionProperties;
74
75typedef struct TransactionActionList TransactionActionList;
76
77typedef struct q_obj_transaction_arg q_obj_transaction_arg;
78
79struct Abort {
80 char qapi_dummy_for_empty_struct;
81};
82
83void qapi_free_Abort(Abort *obj);
84
85struct q_obj_Abort_wrapper {
86 Abort *data;
87};
88
89struct q_obj_BlockDirtyBitmapAdd_wrapper {
90 BlockDirtyBitmapAdd *data;
91};
92
93struct q_obj_BlockDirtyBitmap_wrapper {
94 BlockDirtyBitmap *data;
95};
96
97struct q_obj_BlockDirtyBitmapMerge_wrapper {
98 BlockDirtyBitmapMerge *data;
99};
100
101struct q_obj_BlockdevBackup_wrapper {
102 BlockdevBackup *data;
103};
104
105struct q_obj_BlockdevSnapshot_wrapper {
106 BlockdevSnapshot *data;
107};
108
109struct q_obj_BlockdevSnapshotInternal_wrapper {
110 BlockdevSnapshotInternal *data;
111};
112
113struct q_obj_BlockdevSnapshotSync_wrapper {
114 BlockdevSnapshotSync *data;
115};
116
117struct q_obj_DriveBackup_wrapper {
118 DriveBackup *data;
119};
120
121struct TransactionAction {
122 TransactionActionKind type;
123 union { /* union tag is @type */
124 q_obj_Abort_wrapper abort;
125 q_obj_BlockDirtyBitmapAdd_wrapper block_dirty_bitmap_add;
126 q_obj_BlockDirtyBitmap_wrapper block_dirty_bitmap_remove;
127 q_obj_BlockDirtyBitmap_wrapper block_dirty_bitmap_clear;
128 q_obj_BlockDirtyBitmap_wrapper block_dirty_bitmap_enable;
129 q_obj_BlockDirtyBitmap_wrapper block_dirty_bitmap_disable;
130 q_obj_BlockDirtyBitmapMerge_wrapper block_dirty_bitmap_merge;
131 q_obj_BlockdevBackup_wrapper blockdev_backup;
132 q_obj_BlockdevSnapshot_wrapper blockdev_snapshot;
133 q_obj_BlockdevSnapshotInternal_wrapper blockdev_snapshot_internal_sync;
134 q_obj_BlockdevSnapshotSync_wrapper blockdev_snapshot_sync;
135 q_obj_DriveBackup_wrapper drive_backup;
136 } u;
137};
138
139void qapi_free_TransactionAction(TransactionAction *obj);
140
141struct TransactionProperties {
142 bool has_completion_mode;
143 ActionCompletionMode completion_mode;
144};
145
146void qapi_free_TransactionProperties(TransactionProperties *obj);
147
148struct TransactionActionList {
149 TransactionActionList *next;
150 TransactionAction *value;
151};
152
153void qapi_free_TransactionActionList(TransactionActionList *obj);
154
155struct q_obj_transaction_arg {
156 TransactionActionList *actions;
157 bool has_properties;
158 TransactionProperties *properties;
159};
160
161#endif /* QAPI_TYPES_TRANSACTION_H */
162