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);