summaryrefslogtreecommitdiff
path: root/linux-core/drmP.h
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2008-08-04 14:54:32 +1000
committerDave Airlie <airlied@redhat.com>2008-08-04 14:54:32 +1000
commit717dd804d0d1d9984345a998b28ee47079c70639 (patch)
treed1c0f9c6f267ef42215ed42c23d8c0afc0948e17 /linux-core/drmP.h
parentaf6efc3d778b96164849f822331938c4cdf8f4b2 (diff)
drm: fixup master code to use krefs
Diffstat (limited to 'linux-core/drmP.h')
-rw-r--r--linux-core/drmP.h13
1 files changed, 8 insertions, 5 deletions
diff --git a/linux-core/drmP.h b/linux-core/drmP.h
index 59d44ac2..848fa885 100644
--- a/linux-core/drmP.h
+++ b/linux-core/drmP.h
@@ -670,7 +670,9 @@ struct drm_gem_object {
/* per-master structure */
struct drm_master {
-
+
+ struct kref refcount; /* refcount for this master */
+
struct list_head head; /**< each minor contains a list of masters */
struct drm_minor *minor; /**< link back to minor we are a master for */
@@ -1345,12 +1347,13 @@ extern int drm_setmaster_ioctl(struct drm_device *dev, void *data,
struct drm_file *file_priv);
extern int drm_dropmaster_ioctl(struct drm_device *dev, void *data,
struct drm_file *file_priv);
-extern struct drm_master *drm_get_master(struct drm_minor *minor);
-extern void drm_put_master(struct drm_master *master);
+struct drm_master *drm_master_create(struct drm_minor *minor);
+extern struct drm_master *drm_master_get(struct drm_master *master);
+extern void drm_master_put(struct drm_master **master);
extern int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent,
- struct drm_driver *driver);
+ struct drm_driver *driver);
extern int drm_put_dev(struct drm_device *dev);
-extern int drm_put_minor(struct drm_device *dev, struct drm_minor **p);
+extern int drm_put_minor(struct drm_minor **minor_p);
extern unsigned int drm_debug; /* 1 to enable debug output */
extern struct class *drm_class;