From 79038751ffe47ed1ce82766e027d98fd2f0e2c6a Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Wed, 8 Nov 2006 15:08:09 +1100 Subject: libdrm: add support for server side functionality in libdrm This adds APIs to allow the X server to use libdrm from the system rather than its own in-built copy. --- libdrm/xf86drm.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'libdrm/xf86drm.h') diff --git a/libdrm/xf86drm.h b/libdrm/xf86drm.h index 86ee7d30..4d9580c4 100644 --- a/libdrm/xf86drm.h +++ b/libdrm/xf86drm.h @@ -36,6 +36,8 @@ #ifndef _XF86DRM_H_ #define _XF86DRM_H_ +#include +#include #include /* Defaults, if nothing set in xf86config */ @@ -61,6 +63,21 @@ typedef unsigned int drmSize, *drmSizePtr; /**< For mapped regions */ typedef void *drmAddress, **drmAddressPtr; /**< For mapped regions */ +typedef struct _drmServerInfo { + int (*debug_print)(const char *format, va_list ap); + int (*load_module)(const char *name); + void (*get_perms)(gid_t *, mode_t *); +} drmServerInfo, *drmServerInfoPtr; + +typedef struct drmHashEntry { + int fd; + void (*f)(int, void *, void *); + void *tagTable; +} drmHashEntry; + +extern void *drmGetHashTable(void); +extern drmHashEntry *drmGetEntry(int fd); + /** * Driver version information. * @@ -604,6 +621,7 @@ extern int drmScatterGatherFree(int fd, drm_handle_t handle); extern int drmWaitVBlank(int fd, drmVBlankPtr vbl); /* Support routines */ +extern void drmSetServerInfo(drmServerInfoPtr info); extern int drmError(int err, const char *label); extern void *drmMalloc(int size); extern void drmFree(void *pt); -- cgit v1.2.3 From d51e1bb56ca2f7858cdeac6f61a7b747c1e15b1e Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Thu, 9 Nov 2006 08:55:58 +1100 Subject: libdrm: add drmOpenOnce + drmCloseOnce to libdrm --- libdrm/xf86drm.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'libdrm/xf86drm.h') diff --git a/libdrm/xf86drm.h b/libdrm/xf86drm.h index 4d9580c4..34c9ec0e 100644 --- a/libdrm/xf86drm.h +++ b/libdrm/xf86drm.h @@ -655,6 +655,9 @@ extern int drmSLLookupNeighbors(void *l, unsigned long key, unsigned long *prev_key, void **prev_value, unsigned long *next_key, void **next_value); +extern int drmOpenOnce(void *unused, const char *BusID, int *newlyopened); +extern void drmCloseOnce(int fd); + #include "xf86mm.h" #endif -- cgit v1.2.3