Lines Matching defs:lessee

39  * - A 'lessee' is a &struct drm_master which is leasing objects from some
40 * other &struct drm_master. Each lessee only leases resources from a single
44 * - A 'lease' is a contract between the lessor and lessee that identifies
45 * which resources may be controlled by the lessee. All of the resources
58 * Since each lessee may lease objects from a single lessor, display resource
69 #define drm_for_each_lessee(lessee, lessor) \
70 list_for_each_entry((lessee), &(lessor)->lessees, lessee_list)
96 /* Checks if the given object has been leased to some lessee of drm_master */
99 struct drm_master *lessee;
102 drm_for_each_lessee(lessee, master)
103 if (_drm_lease_held_master(lessee, id))
203 * ERR_PTR(-EBUSY) some other lessee holds title to this object
211 struct drm_master *lessee;
218 lessee = drm_master_create(lessor->dev);
219 if (!lessee) {
239 /* Insert the new lessee into the tree */
240 id = idr_alloc(&(drm_lease_owner(lessor)->lessee_idr), lessee, 1, 0, GFP_KERNEL);
246 lessee->lessee_id = id;
247 lessee->lessor = drm_master_get(lessor);
248 list_add_tail(&lessee->lessee_list, &lessor->lessees);
251 lessee->leases = *leases;
252 drm_dbg_lease(dev, "new lessee %d %p, lessor %d %p\n",
253 lessee->lessee_id, lessee, lessor->lessee_id, lessor);
256 return lessee;
261 drm_master_put(&lessee);
279 /* Remove this master from the lessee idr in the owner */
286 /* Remove this master from any lessee list it may be on */
292 /* Tell the master to check the lessee list */
484 struct drm_master *lessee = NULL;
541 /* lessee will take the ownership of leases */
542 lessee = drm_lease_create(lessor, &leases);
544 if (IS_ERR(lessee)) {
545 ret = PTR_ERR(lessee);
561 lessee_priv->master = lessee;
566 drm_dbg_lease(dev, "Returning fd %d id %d\n", fd, lessee->lessee_id);
568 cl->lessee_id = lessee->lessee_id;
578 drm_master_put(&lessee);
595 struct drm_master *lessor, *lessee;
612 drm_for_each_lessee(lessee, lessor) {
614 if (!idr_is_empty(&lessee->leases)) {
616 drm_dbg_lease(dev, "Add lessee %d\n",
617 lessee->lessee_id);
618 ret = put_user(lessee->lessee_id, lessee_ids + count);
636 /* Return the list of leased objects for the specified lessee */
643 struct drm_master *lessee;
657 lessee = drm_file_get_master(lessee_priv);
658 drm_dbg_lease(dev, "get lease for %d\n", lessee->lessee_id);
662 if (lessee->lessor == NULL)
664 object_idr = &lessee->dev->mode_config.object_idr;
666 /* lessee can only use allowed object */
667 object_idr = &lessee->leases;
685 drm_master_put(&lessee);
700 struct drm_master *lessee;
712 lessee = _drm_find_lessee(lessor, arg->lessee_id);
714 /* No such lessee */
715 if (!lessee) {
721 if (lessee->lessor != lessor) {
726 _drm_lease_revoke(lessee);