On 5/7/25 17:20, John Levon wrote:
Add simple helpers to correctly report failures from read/write routines
using the return -errno style.

Signed-off-by: John Levon <john.le...@nutanix.com>
---
  include/hw/vfio/vfio-device.h | 14 ++++++++++++++
  1 file changed, 14 insertions(+)

diff --git a/include/hw/vfio/vfio-device.h b/include/hw/vfio/vfio-device.h
index a7eaaa31e7..4a32202943 100644
--- a/include/hw/vfio/vfio-device.h
+++ b/include/hw/vfio/vfio-device.h
@@ -115,6 +115,20 @@ struct VFIODeviceOps {
      int (*vfio_load_config)(VFIODevice *vdev, QEMUFile *f);
  };
+/*
+ * Given a return value of either a short number of bytes read or -errno,
+ * construct a meaningful error message.
+ */
+#define strreaderror(ret) \
+    (ret < 0 ? strerror(-ret) : "short read")
+
+/*
+ * Given a return value of either a short number of bytes written or -errno,
+ * construct a meaningful error message.
+ */
+#define strwriteerror(ret) \
+    (ret < 0 ? strerror(-ret) : "short write")
+
  void vfio_device_irq_disable(VFIODevice *vbasedev, int index);
  void vfio_device_irq_unmask(VFIODevice *vbasedev, int index);
  void vfio_device_irq_mask(VFIODevice *vbasedev, int index);

I am not thrilled about the naming nor the location  (why not use
hw/vfio/vfio-helpers.h instead ?) but this is minor and we can refine
later.


Reviewed-by: Cédric Le Goater <c...@redhat.com>

Thanks,

C.



Reply via email to