aboutsummaryrefslogtreecommitdiff
path: root/hw/virtio
diff options
context:
space:
mode:
authorDavid Hildenbrand <david@redhat.com>2023-09-26 20:57:31 +0200
committerDavid Hildenbrand <david@redhat.com>2023-10-12 14:15:22 +0200
commitcd89c065b06d49691ecb1f3707849472acdf3ea5 (patch)
tree364d237415b5d6f93c034089ede4e0766161430d /hw/virtio
parent16ab2eda57233787c2145bc5eaeabcc2852bc4c3 (diff)
vhost: Add vhost_get_max_memslots()
Let's add vhost_get_max_memslots(). Message-ID: <20230926185738.277351-12-david@redhat.com> Reviewed-by: Maciej S. Szmigiero <maciej.szmigiero@oracle.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: David Hildenbrand <david@redhat.com>
Diffstat (limited to 'hw/virtio')
-rw-r--r--hw/virtio/vhost-stub.c5
-rw-r--r--hw/virtio/vhost.c11
2 files changed, 16 insertions, 0 deletions
diff --git a/hw/virtio/vhost-stub.c b/hw/virtio/vhost-stub.c
index d53dd9d288..52d42adab2 100644
--- a/hw/virtio/vhost-stub.c
+++ b/hw/virtio/vhost-stub.c
@@ -2,6 +2,11 @@
#include "hw/virtio/vhost.h"
#include "hw/virtio/vhost-user.h"
+unsigned int vhost_get_max_memslots(void)
+{
+ return UINT_MAX;
+}
+
unsigned int vhost_get_free_memslots(void)
{
return UINT_MAX;
diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
index 041a05d5f1..2bdb4fb231 100644
--- a/hw/virtio/vhost.c
+++ b/hw/virtio/vhost.c
@@ -55,6 +55,17 @@ static unsigned int used_shared_memslots;
static QLIST_HEAD(, vhost_dev) vhost_devices =
QLIST_HEAD_INITIALIZER(vhost_devices);
+unsigned int vhost_get_max_memslots(void)
+{
+ unsigned int max = UINT_MAX;
+ struct vhost_dev *hdev;
+
+ QLIST_FOREACH(hdev, &vhost_devices, entry) {
+ max = MIN(max, hdev->vhost_ops->vhost_backend_memslots_limit(hdev));
+ }
+ return max;
+}
+
unsigned int vhost_get_free_memslots(void)
{
unsigned int free = UINT_MAX;