1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * Copyright © 2017 Keith Packard <keithp@keithp.com>
4  */
5 
6 #ifndef _DRM_LEASE_H_
7 #define _DRM_LEASE_H_
8 
9 #include <linux/types.h>
10 
11 struct drm_file;
12 struct drm_device;
13 struct drm_master;
14 
15 struct drm_master *drm_lease_owner(struct drm_master *master);
16 
17 void drm_lease_destroy(struct drm_master *lessee);
18 
19 bool drm_lease_held(struct drm_file *file_priv, int id);
20 
21 bool _drm_lease_held(struct drm_file *file_priv, int id);
22 
23 void drm_lease_revoke(struct drm_master *master);
24 
25 uint32_t drm_lease_filter_crtcs(struct drm_file *file_priv, uint32_t crtcs);
26 
27 int drm_mode_create_lease_ioctl(struct drm_device *dev,
28 				void *data, struct drm_file *file_priv);
29 
30 int drm_mode_list_lessees_ioctl(struct drm_device *dev,
31 				void *data, struct drm_file *file_priv);
32 
33 int drm_mode_get_lease_ioctl(struct drm_device *dev,
34 			     void *data, struct drm_file *file_priv);
35 
36 int drm_mode_revoke_lease_ioctl(struct drm_device *dev,
37 				void *data, struct drm_file *file_priv);
38 
39 #endif /* _DRM_LEASE_H_ */
40