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