#include "qapi/qmp/qjson.h"
#include "qapi/qobject-input-visitor.h"
#include "qapi/qobject-output-visitor.h"
-#include "sysemu/runstate.h"
#include "qapi/qmp/qbool.h"
#include "qemu/coroutine.h"
#include "qemu/main-loop.h"
-CompatPolicy compat_policy;
-
Visitor *qobject_input_visitor_new_qmp(QObject *obj)
{
Visitor *v = qobject_input_visitor_new(obj);
- qobject_input_visitor_set_policy(v, compat_policy.deprecated_input);
+ visit_set_policy(v, &compat_policy);
return v;
}
{
Visitor *v = qobject_output_visitor_new(result);
- qobject_output_visitor_set_policy(v, compat_policy.deprecated_output);
+ visit_set_policy(v, &compat_policy);
return v;
}
"The command %s has not been found", command);
goto out;
}
- if (cmd->options & QCO_DEPRECATED) {
- switch (compat_policy.deprecated_input) {
- case COMPAT_POLICY_INPUT_ACCEPT:
- break;
- case COMPAT_POLICY_INPUT_REJECT:
- error_set(&err, ERROR_CLASS_COMMAND_NOT_FOUND,
- "Deprecated command %s disabled by policy",
- command);
- goto out;
- case COMPAT_POLICY_INPUT_CRASH:
- default:
- abort();
- }
+ if (!compat_policy_input_ok(cmd->special_features, &compat_policy,
+ ERROR_CLASS_COMMAND_NOT_FOUND,
+ "command", command, &err)) {
+ goto out;
}
if (!cmd->enabled) {
error_set(&err, ERROR_CLASS_COMMAND_NOT_FOUND,