mirror of
				https://gitlab.freedesktop.org/wlroots/wlroots.git
				synced 2025-10-29 05:40:12 -04:00 
			
		
		
		
	backend/session: add docs
This commit is contained in:
		
							parent
							
								
									5b08f91004
								
							
						
					
					
						commit
						967e788bc8
					
				
					 2 changed files with 30 additions and 5 deletions
				
			
		|  | @ -445,9 +445,6 @@ static void find_gpus_handle_add(struct wl_listener *listener, void *data) { | ||||||
| 	handler->added = true; | 	handler->added = true; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /* Tries to find the primary GPU by checking for the "boot_vga" attribute.
 |  | ||||||
|  * If it's not found, it returns the first valid GPU it finds. |  | ||||||
|  */ |  | ||||||
| ssize_t wlr_session_find_gpus(struct wlr_session *session, | ssize_t wlr_session_find_gpus(struct wlr_session *session, | ||||||
| 		size_t ret_len, struct wlr_device **ret) { | 		size_t ret_len, struct wlr_device **ret) { | ||||||
| 	const char *explicit = getenv("WLR_DRM_DEVICES"); | 	const char *explicit = getenv("WLR_DRM_DEVICES"); | ||||||
|  |  | ||||||
|  | @ -7,11 +7,14 @@ | ||||||
| 
 | 
 | ||||||
| struct libseat; | struct libseat; | ||||||
| 
 | 
 | ||||||
|  | /**
 | ||||||
|  |  * An opened physical device. | ||||||
|  |  */ | ||||||
| struct wlr_device { | struct wlr_device { | ||||||
| 	int fd; | 	int fd; | ||||||
| 	int device_id; | 	int device_id; | ||||||
| 	dev_t dev; | 	dev_t dev; | ||||||
| 	struct wl_list link; | 	struct wl_list link; // wlr_session.devices
 | ||||||
| 
 | 
 | ||||||
| 	struct { | 	struct { | ||||||
| 		struct wl_signal change; // struct wlr_device_change_event
 | 		struct wl_signal change; // struct wlr_device_change_event
 | ||||||
|  | @ -19,6 +22,20 @@ struct wlr_device { | ||||||
| 	} events; | 	} events; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  | /**
 | ||||||
|  |  * A session manages access to physical devices (such as GPUs and input | ||||||
|  |  * devices). | ||||||
|  |  * | ||||||
|  |  * A session is only required when running on bare metal (e.g. with the KMS or | ||||||
|  |  * libinput backends). | ||||||
|  |  * | ||||||
|  |  * The session listens for device hotplug events, and relays that information | ||||||
|  |  * via the add_drm_card event and the change/remove events on struct wlr_device. | ||||||
|  |  * The session provides functions to gain access to physical device (which is a | ||||||
|  |  * privileged operation), see wlr_session_open_file(). The session also keeps | ||||||
|  |  * track of the virtual terminal state (allowing users to switch between | ||||||
|  |  * compositors or TTYs), see wlr_session_change_vt() and the active event. | ||||||
|  |  */ | ||||||
| struct wlr_session { | struct wlr_session { | ||||||
| 	/*
 | 	/*
 | ||||||
| 	 * Signal for when the session becomes active/inactive. | 	 * Signal for when the session becomes active/inactive. | ||||||
|  | @ -40,7 +57,7 @@ struct wlr_session { | ||||||
| 	struct libseat *seat_handle; | 	struct libseat *seat_handle; | ||||||
| 	struct wl_event_source *libseat_event; | 	struct wl_event_source *libseat_event; | ||||||
| 
 | 
 | ||||||
| 	struct wl_list devices; | 	struct wl_list devices; // wlr_device.link
 | ||||||
| 
 | 
 | ||||||
| 	struct wl_event_loop *event_loop; | 	struct wl_event_loop *event_loop; | ||||||
| 	struct wl_listener event_loop_destroy; | 	struct wl_listener event_loop_destroy; | ||||||
|  | @ -114,6 +131,17 @@ void wlr_session_close_file(struct wlr_session *session, | ||||||
|  */ |  */ | ||||||
| bool wlr_session_change_vt(struct wlr_session *session, unsigned vt); | bool wlr_session_change_vt(struct wlr_session *session, unsigned vt); | ||||||
| 
 | 
 | ||||||
|  | /**
 | ||||||
|  |  * Enumerate and open KMS devices. | ||||||
|  |  * | ||||||
|  |  * ret is filled with up to ret_len devices. The number of devices ret has been | ||||||
|  |  * filled with is returned on success. If more devices than ret_len are probed, | ||||||
|  |  * the extraneous ones are ignored. If there is no KMS device, the function | ||||||
|  |  * will block until such device is detected up to a timeout. The first device | ||||||
|  |  * returned is the default device (marked as "boot_vga" by the kernel). | ||||||
|  |  * | ||||||
|  |  * On error, or if no device was found, -1 is returned. | ||||||
|  |  */ | ||||||
| ssize_t wlr_session_find_gpus(struct wlr_session *session, | ssize_t wlr_session_find_gpus(struct wlr_session *session, | ||||||
| 	size_t ret_len, struct wlr_device **ret); | 	size_t ret_len, struct wlr_device **ret); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Simon Ser
						Simon Ser