]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/login/logind-seat.h
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
4 typedef struct Seat Seat
;
7 #include "logind-session.h"
15 LIST_HEAD(Device
, devices
);
18 Session
*pending_switch
;
19 LIST_HEAD(Session
, sessions
);
26 LIST_FIELDS(Seat
, gc_queue
);
29 int seat_new(Seat
**ret
, Manager
*m
, const char *id
);
30 Seat
* seat_free(Seat
*s
);
32 DEFINE_TRIVIAL_CLEANUP_FUNC(Seat
*, seat_free
);
34 int seat_save(Seat
*s
);
35 int seat_load(Seat
*s
);
37 int seat_apply_acls(Seat
*s
, Session
*old_active
);
38 int seat_set_active(Seat
*s
, Session
*session
);
39 int seat_switch_to(Seat
*s
, unsigned num
);
40 int seat_switch_to_next(Seat
*s
);
41 int seat_switch_to_previous(Seat
*s
);
42 int seat_active_vt_changed(Seat
*s
, unsigned vtnr
);
43 int seat_read_active_vt(Seat
*s
);
44 int seat_preallocate_vts(Seat
*s
);
46 int seat_attach_session(Seat
*s
, Session
*session
);
47 void seat_complete_switch(Seat
*s
);
48 void seat_evict_position(Seat
*s
, Session
*session
);
49 void seat_claim_position(Seat
*s
, Session
*session
, unsigned pos
);
51 bool seat_has_vts(Seat
*s
);
52 bool seat_is_seat0(Seat
*s
);
53 bool seat_can_tty(Seat
*s
);
54 bool seat_has_master_device(Seat
*s
);
55 bool seat_can_graphical(Seat
*s
);
57 int seat_get_idle_hint(Seat
*s
, dual_timestamp
*t
);
59 int seat_start(Seat
*s
);
60 int seat_stop(Seat
*s
, bool force
);
61 int seat_stop_sessions(Seat
*s
, bool force
);
63 bool seat_may_gc(Seat
*s
, bool drop_not_started
);
64 void seat_add_to_gc_queue(Seat
*s
);
66 bool seat_name_is_valid(const char *name
);
68 static inline bool SEAT_IS_SELF(const char *name
) {
69 return isempty(name
) || streq(name
, "self");
72 static inline bool SEAT_IS_AUTO(const char *name
) {
73 return streq_ptr(name
, "auto");