Re: [PATCH libdrm] xf86drm: Make drmNodeIsDRM() public.
On 18 December 2018 5:03:22 am AEDT, Emil Velikov wrote: >Hi Christopher, > >On Tue, 20 Nov 2018 at 04:30, Christopher James Halse Rogers > wrote: >> >> I have wanted this code in Mir, so it's plausibly useful elsewhere, >> particularly if the DRM device major number is going to become >> dynamic. >> >Can you elaborate/link to the code that uses the major/minor? >Fiddling with those manually is rather error prone most often than not. We have an internal API that mirrors that of logind - taking a (major,minor) pair and returning a usable fd. For input devices, that just means opened O_NONBLOCK; for DRM devices it means calling SetMaster. Here's the relevant (non-logind) implementation: https://github.com/MirServer/mir/blob/master/src/server/console/linux_virtual_terminal.cpp#L634 Since we by necessity end up pulling out the devnode I guess we could match on a /dev/dri prefix instead. I just noticed this function while doing the drmIsMaster patch and thought it would be convenient for us! ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH libdrm] xf86drm: Make drmNodeIsDRM() public.
Emil Velikov writes: > Hi Christopher, > > On Tue, 20 Nov 2018 at 04:30, Christopher James Halse Rogers > wrote: >> >> I have wanted this code in Mir, so it's plausibly useful elsewhere, >> particularly if the DRM device major number is going to become >> dynamic. >> > Can you elaborate/link to the code that uses the major/minor? > Fiddling with those manually is rather error prone most often than not. Yeah, I think this shouldn't be part of the API. signature.asc Description: PGP signature ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH libdrm] xf86drm: Make drmNodeIsDRM() public.
Hi Christopher, On Tue, 20 Nov 2018 at 04:30, Christopher James Halse Rogers wrote: > > I have wanted this code in Mir, so it's plausibly useful elsewhere, > particularly if the DRM device major number is going to become > dynamic. > Can you elaborate/link to the code that uses the major/minor? Fiddling with those manually is rather error prone most often than not. Thanks Emil ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH libdrm] xf86drm: Make drmNodeIsDRM() public.
I have wanted this code in Mir, so it's plausibly useful elsewhere, particularly if the DRM device major number is going to become dynamic. Signed-off-by: Christopher James Halse Rogers --- xf86drm.c | 2 +- xf86drm.h | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/xf86drm.c b/xf86drm.c index 10df682b..f32cb1bb 100644 --- a/xf86drm.c +++ b/xf86drm.c @@ -2767,7 +2767,7 @@ drm_public char *drmGetDeviceNameFromFd(int fd) return strdup(name); } -static bool drmNodeIsDRM(int maj, int min) +drm_public bool drmNodeIsDRM(int maj, int min) { #ifdef __linux__ char path[64]; diff --git a/xf86drm.h b/xf86drm.h index 7773d71a..6dc92180 100644 --- a/xf86drm.h +++ b/xf86drm.h @@ -37,6 +37,7 @@ #include #include #include +#include #include #if defined(__cplusplus) @@ -783,6 +784,8 @@ extern int drmPrimeFDToHandle(int fd, int prime_fd, uint32_t *handle); extern char *drmGetPrimaryDeviceNameFromFd(int fd); extern char *drmGetRenderDeviceNameFromFd(int fd); +extern bool drmNodeIsDRM(int major, int minor); + #define DRM_BUS_PCI 0 #define DRM_BUS_USB 1 #define DRM_BUS_PLATFORM 2 -- 2.19.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel