In preparation for testing DRM_IOCTL_I915_PERF_OPEN which returns a file descriptor this allows us to get the return value of ioctl called by the do_ioctl() utility. Signed-off-by: Robert Bragg <robert@xxxxxxxxxxxxx> --- lib/drmtest.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/drmtest.h b/lib/drmtest.h index c391464..6aee1e8 100644 --- a/lib/drmtest.h +++ b/lib/drmtest.h @@ -104,11 +104,16 @@ bool is_i915_device(int fd); * * This macro wraps drmIoctl() and uses igt_assert to check that it has been * successfully executed. + * + * It's implemented using a gcc statement expression to still be able to + * assign the ioctl's return value after the assertion too. */ -#define do_ioctl(fd, ioc, ioc_data) do { \ - igt_assert_eq(igt_ioctl((fd), (ioc), (ioc_data)), 0); \ +#define do_ioctl(fd, ioc, ioc_data) ({ \ + int _ret = drmIoctl((fd), (ioc), (ioc_data)); \ + igt_assert(_ret >= 0); \ errno = 0; \ -} while (0) + _ret; \ +}) /** * do_ioctl_err: -- 2.7.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx