Re: [PATCH libdrm] xf86drm: Make drmNodeIsDRM() public.

2018-12-17 Thread Christopher James Halse Rogers
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.

2018-12-17 Thread Eric Anholt
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.

2018-12-17 Thread Emil Velikov
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.

2018-11-19 Thread Christopher James Halse Rogers
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