chiark / gitweb /
tree-wide: drop copyright headers from frequent contributors
[elogind.git] / src / login / logind-session-device.h
1 /* SPDX-License-Identifier: LGPL-2.1+ */
2 #pragma once
3
4
5 typedef enum DeviceType DeviceType;
6 typedef struct SessionDevice SessionDevice;
7
8 #include "list.h"
9 #include "logind.h"
10
11 enum DeviceType {
12         DEVICE_TYPE_UNKNOWN,
13         DEVICE_TYPE_DRM,
14         DEVICE_TYPE_EVDEV,
15 };
16
17 struct SessionDevice {
18         Session *session;
19         Device *device;
20
21         dev_t dev;
22         char *node;
23         int fd;
24         DeviceType type:3;
25         bool active:1;
26         bool pushed_fd:1;
27
28         LIST_FIELDS(struct SessionDevice, sd_by_device);
29 };
30
31 int session_device_new(Session *s, dev_t dev, bool open_device, SessionDevice **out);
32 void session_device_free(SessionDevice *sd);
33 void session_device_complete_pause(SessionDevice *sd);
34
35 void session_device_resume_all(Session *s);
36 void session_device_pause_all(Session *s);
37 unsigned int session_device_try_pause_all(Session *s);
38
39 int session_device_save(SessionDevice *sd);
40 void session_device_attach_fd(SessionDevice *sd, int fd, bool active);