summaryrefslogtreecommitdiff
path: root/bsd-core/drm_os_netbsd.h
diff options
context:
space:
mode:
authorEric Anholt <anholt@freebsd.org>2003-10-22 22:08:53 +0000
committerEric Anholt <anholt@freebsd.org>2003-10-22 22:08:53 +0000
commit86e6325e5ab848c15c422f20133445fe6c1caa09 (patch)
tree8c4699b4ddac738ed005d5f4aedd9dae4c628bed /bsd-core/drm_os_netbsd.h
parent4e6ddcbb698c029b407d5dc43348c6e422a36705 (diff)
- Add DRM_GET_PRIV_WITH_RETURN macro. This can be used in shared code to
get the drm_file_t * based on the filp passed in ioctl handlers. - Use this macro on BSD for simplification and improve its error reporting. Make failure to find the drm_file_t * print as an error, not debug. This failure may be part of the problem with KDE. - Make debug and error print macros include the pid on BSD.
Diffstat (limited to 'bsd-core/drm_os_netbsd.h')
-rw-r--r--bsd-core/drm_os_netbsd.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/bsd-core/drm_os_netbsd.h b/bsd-core/drm_os_netbsd.h
index b03399d8..4c95c50f 100644
--- a/bsd-core/drm_os_netbsd.h
+++ b/bsd-core/drm_os_netbsd.h
@@ -140,6 +140,19 @@ extern const int DRM(M_DRM) = M_DEVBUF;
#define DRM_AGP_FIND_DEVICE() agp_find_device(0)
+#define DRM_GET_PRIV_WITH_RETURN(_priv, _filp) \
+do { \
+ if (_filp != (DRMFILE)DRM_CURRENTPID) { \
+ DRM_ERROR("filp doesn't match curproc\n"); \
+ return EINVAL; \
+ } \
+ _priv = DRM(find_file_by_proc)(dev, DRM_CURPROC); \
+ if (_priv == NULL) { \
+ DRM_ERROR("can't find authenticator\n"); \
+ return EINVAL; \
+ } \
+} while (0)
+
#define LOCK_TEST_WITH_RETURN(dev, filp) \
do { \
if (!_DRM_LOCK_IS_HELD(dev->lock.hw_lock->lock) || \