From 264e66b5e9357f7a058953a0a22986caa0275e34 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Wed, 1 Sep 2021 21:26:38 +0200 Subject: [PATCH] xf86drm: add GEM_CLOSE ioctl wrapper We have wrappers for PRIME_HANDLE_TO_FD and PRIME_FD_TO_HANDLE, but not for GEM_CLOSE. Add it so that callers don't need to manually call drmIoctl. Signed-off-by: Simon Ser Reviewed-by: Emil Velikov Acked-by: Daniel Stone --- core-symbols.txt | 1 + xf86drm.c | 9 +++++++++ xf86drm.h | 2 ++ 3 files changed, 12 insertions(+) diff --git a/core-symbols.txt b/core-symbols.txt index a79e6260..ed0d8035 100644 --- a/core-symbols.txt +++ b/core-symbols.txt @@ -22,6 +22,7 @@ drmAuthMagic drmAvailable drmCheckModesettingSupported drmClose +drmCloseBufferHandle drmCloseOnce drmCommandNone drmCommandRead diff --git a/xf86drm.c b/xf86drm.c index 8e9989d0..7561039f 100644 --- a/xf86drm.c +++ b/xf86drm.c @@ -3271,6 +3271,15 @@ drm_public int drmPrimeFDToHandle(int fd, int prime_fd, uint32_t *handle) return 0; } +drm_public int drmCloseBufferHandle(int fd, uint32_t handle) +{ + struct drm_gem_close args; + + memclear(args); + args.handle = handle; + return drmIoctl(fd, DRM_IOCTL_GEM_CLOSE, &args); +} + static char *drmGetMinorNameForFD(int fd, int type) { #ifdef __linux__ diff --git a/xf86drm.h b/xf86drm.h index 930d2f40..31c1e97a 100644 --- a/xf86drm.h +++ b/xf86drm.h @@ -834,6 +834,8 @@ extern int drmGetNodeTypeFromFd(int fd); extern int drmPrimeHandleToFD(int fd, uint32_t handle, uint32_t flags, int *prime_fd); extern int drmPrimeFDToHandle(int fd, int prime_fd, uint32_t *handle); +extern int drmCloseBufferHandle(int fd, uint32_t handle); + extern char *drmGetPrimaryDeviceNameFromFd(int fd); extern char *drmGetRenderDeviceNameFromFd(int fd);