summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorYuval Shaia2019-03-11 11:29:09 +0100
committerMarcel Apfelbaum2019-03-16 14:52:44 +0100
commitf4b2c02a2911b164474b998532b1a963fc9b785b (patch)
tree79f2982c291e4f2a78a3892699982f1150b4d419 /include
parenthw/pvrdma: Collect debugging statistics (diff)
downloadqemu-f4b2c02a2911b164474b998532b1a963fc9b785b.tar.gz
qemu-f4b2c02a2911b164474b998532b1a963fc9b785b.tar.xz
qemu-f4b2c02a2911b164474b998532b1a963fc9b785b.zip
{hmp, hw/pvrdma}: Expose device internals via monitor interface
Allow interrogating device internals through HMP interface. The exposed indicators can be used for troubleshooting by developers or sysadmin. There is no need to expose these attributes to a management system (e.x. libvirt) because (1) most of them are not "device-management' related info and (2) there is no guarantee the interface is stable. Signed-off-by: Yuval Shaia <yuval.shaia@oracle.com> Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Acked-by: Markus Armbruster <armbru@redhat.com> Message-Id: <1552300155-25216-6-git-send-email-yuval.shaia@oracle.com> Reviewed-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com> Signed-off-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
Diffstat (limited to 'include')
-rw-r--r--include/hw/rdma/rdma.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/include/hw/rdma/rdma.h b/include/hw/rdma/rdma.h
new file mode 100644
index 0000000000..68290fb58c
--- /dev/null
+++ b/include/hw/rdma/rdma.h
@@ -0,0 +1,40 @@
+/*
+ * RDMA device interface
+ *
+ * Copyright (C) 2019 Oracle
+ * Copyright (C) 2019 Red Hat Inc
+ *
+ * Authors:
+ * Yuval Shaia <yuval.shaia@oracle.com>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or later.
+ * See the COPYING file in the top-level directory.
+ *
+ */
+
+#ifndef RDMA_H
+#define RDMA_H
+
+#include "qom/object.h"
+
+#define INTERFACE_RDMA_PROVIDER "rdma"
+
+#define INTERFACE_RDMA_PROVIDER_CLASS(klass) \
+ OBJECT_CLASS_CHECK(RdmaProviderClass, (klass), \
+ INTERFACE_RDMA_PROVIDER)
+#define RDMA_PROVIDER_GET_CLASS(obj) \
+ OBJECT_GET_CLASS(RdmaProviderClass, (obj), \
+ INTERFACE_RDMA_PROVIDER)
+#define RDMA_PROVIDER(obj) \
+ INTERFACE_CHECK(RdmaProvider, (obj), \
+ INTERFACE_RDMA_PROVIDER)
+
+typedef struct RdmaProvider RdmaProvider;
+
+typedef struct RdmaProviderClass {
+ InterfaceClass parent;
+
+ void (*print_statistics)(Monitor *mon, RdmaProvider *obj);
+} RdmaProviderClass;
+
+#endif