xref: /openbmc/qemu/include/qapi/compat-policy.h (revision dd61b91c080cdfba1360a5ea1e4693fffb3445b0)
16dd75472SMarkus Armbruster /*
26dd75472SMarkus Armbruster  * Policy for handling "funny" management interfaces
36dd75472SMarkus Armbruster  *
46dd75472SMarkus Armbruster  * Copyright (C) 2020 Red Hat, Inc.
56dd75472SMarkus Armbruster  *
66dd75472SMarkus Armbruster  * Authors:
76dd75472SMarkus Armbruster  *  Markus Armbruster <armbru@redhat.com>
86dd75472SMarkus Armbruster  *
96dd75472SMarkus Armbruster  * This work is licensed under the terms of the GNU GPL, version 2 or
106dd75472SMarkus Armbruster  * later.  See the COPYING file in the top-level directory.
116dd75472SMarkus Armbruster  */
126dd75472SMarkus Armbruster 
136dd75472SMarkus Armbruster #ifndef QAPI_COMPAT_POLICY_H
146dd75472SMarkus Armbruster #define QAPI_COMPAT_POLICY_H
156dd75472SMarkus Armbruster 
16*7ce5fc63SMarkus Armbruster #include "qapi/error.h"
176dd75472SMarkus Armbruster #include "qapi/qapi-types-compat.h"
186dd75472SMarkus Armbruster 
196dd75472SMarkus Armbruster extern CompatPolicy compat_policy;
206dd75472SMarkus Armbruster 
21*7ce5fc63SMarkus Armbruster bool compat_policy_input_ok(unsigned special_features,
22*7ce5fc63SMarkus Armbruster                             const CompatPolicy *policy,
23*7ce5fc63SMarkus Armbruster                             ErrorClass error_class,
24*7ce5fc63SMarkus Armbruster                             const char *kind, const char *name,
25*7ce5fc63SMarkus Armbruster                             Error **errp);
26*7ce5fc63SMarkus Armbruster 
2791fa93e5SMarkus Armbruster /*
28db291641SMarkus Armbruster  * Create a QObject input visitor for @obj for use with QMP
29db291641SMarkus Armbruster  *
30db291641SMarkus Armbruster  * This is like qobject_input_visitor_new(), except it obeys the
31db291641SMarkus Armbruster  * policy for handling deprecated management interfaces set with
32db291641SMarkus Armbruster  * -compat.
33db291641SMarkus Armbruster  */
34db291641SMarkus Armbruster Visitor *qobject_input_visitor_new_qmp(QObject *obj);
35db291641SMarkus Armbruster 
36db291641SMarkus Armbruster /*
3791fa93e5SMarkus Armbruster  * Create a QObject output visitor for @obj for use with QMP
3891fa93e5SMarkus Armbruster  *
3991fa93e5SMarkus Armbruster  * This is like qobject_output_visitor_new(), except it obeys the
4091fa93e5SMarkus Armbruster  * policy for handling deprecated management interfaces set with
4191fa93e5SMarkus Armbruster  * -compat.
4291fa93e5SMarkus Armbruster  */
4391fa93e5SMarkus Armbruster Visitor *qobject_output_visitor_new_qmp(QObject **result);
4491fa93e5SMarkus Armbruster 
456dd75472SMarkus Armbruster #endif
46