diff options
Diffstat (limited to 'src/login/logind-session.h')
-rw-r--r-- | src/login/logind-session.h | 185 |
1 files changed, 0 insertions, 185 deletions
diff --git a/src/login/logind-session.h b/src/login/logind-session.h deleted file mode 100644 index ffb7cd2d41..0000000000 --- a/src/login/logind-session.h +++ /dev/null @@ -1,185 +0,0 @@ -#pragma once - -/*** - This file is part of systemd. - - Copyright 2011 Lennart Poettering - - systemd is free software; you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2.1 of the License, or - (at your option) any later version. - - systemd is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with systemd; If not, see <http://www.gnu.org/licenses/>. -***/ - -typedef struct Session Session; -typedef enum KillWho KillWho; - -#include "list.h" -#include "login-util.h" -#include "logind-user.h" - -typedef enum SessionState { - SESSION_OPENING, /* Session scope is being created */ - SESSION_ONLINE, /* Logged in */ - SESSION_ACTIVE, /* Logged in and in the fg */ - SESSION_CLOSING, /* Logged out, but scope is still there */ - _SESSION_STATE_MAX, - _SESSION_STATE_INVALID = -1 -} SessionState; - -typedef enum SessionClass { - SESSION_USER, - SESSION_GREETER, - SESSION_LOCK_SCREEN, - SESSION_BACKGROUND, - _SESSION_CLASS_MAX, - _SESSION_CLASS_INVALID = -1 -} SessionClass; - -typedef enum SessionType { - SESSION_UNSPECIFIED, - SESSION_TTY, - SESSION_X11, - SESSION_WAYLAND, - SESSION_MIR, - SESSION_WEB, - _SESSION_TYPE_MAX, - _SESSION_TYPE_INVALID = -1 -} SessionType; - -#define SESSION_TYPE_IS_GRAPHICAL(type) IN_SET(type, SESSION_X11, SESSION_WAYLAND, SESSION_MIR) - -enum KillWho { - KILL_LEADER, - KILL_ALL, - _KILL_WHO_MAX, - _KILL_WHO_INVALID = -1 -}; - -struct Session { - Manager *manager; - - const char *id; - unsigned int position; - SessionType type; - SessionClass class; - - char *state_file; - - User *user; - - dual_timestamp timestamp; - - char *tty; - char *display; - - bool remote; - char *remote_user; - char *remote_host; - char *service; - char *desktop; - - char *scope; - char *scope_job; - - Seat *seat; - unsigned int vtnr; - int vtfd; - - pid_t leader; - uint32_t audit_id; - - int fifo_fd; - char *fifo_path; - - sd_event_source *fifo_event_source; - - bool idle_hint; - dual_timestamp idle_hint_timestamp; - - bool locked_hint; - - bool in_gc_queue:1; - bool started:1; - bool stopping:1; - - sd_bus_message *create_message; - - sd_event_source *timer_event_source; - - char *controller; - Hashmap *devices; - sd_bus_track *track; - - LIST_FIELDS(Session, sessions_by_user); - LIST_FIELDS(Session, sessions_by_seat); - - LIST_FIELDS(Session, gc_queue); -}; - -Session *session_new(Manager *m, const char *id); -void session_free(Session *s); -void session_set_user(Session *s, User *u); -bool session_check_gc(Session *s, bool drop_not_started); -void session_add_to_gc_queue(Session *s); -int session_activate(Session *s); -bool session_is_active(Session *s); -int session_get_idle_hint(Session *s, dual_timestamp *t); -void session_set_idle_hint(Session *s, bool b); -int session_get_locked_hint(Session *s); -void session_set_locked_hint(Session *s, bool b); -int session_create_fifo(Session *s); -int session_start(Session *s); -int session_stop(Session *s, bool force); -int session_finalize(Session *s); -int session_release(Session *s); -int session_save(Session *s); -int session_load(Session *s); -int session_kill(Session *s, KillWho who, int signo); - -SessionState session_get_state(Session *u); - -extern const sd_bus_vtable session_vtable[]; -int session_node_enumerator(sd_bus *bus, const char *path,void *userdata, char ***nodes, sd_bus_error *error); -int session_object_find(sd_bus *bus, const char *path, const char *interface, void *userdata, void **found, sd_bus_error *error); -char *session_bus_path(Session *s); - -int session_send_signal(Session *s, bool new_session); -int session_send_changed(Session *s, const char *properties, ...) _sentinel_; -int session_send_lock(Session *s, bool lock); -int session_send_lock_all(Manager *m, bool lock); - -int session_send_create_reply(Session *s, sd_bus_error *error); - -const char* session_state_to_string(SessionState t) _const_; -SessionState session_state_from_string(const char *s) _pure_; - -const char* session_type_to_string(SessionType t) _const_; -SessionType session_type_from_string(const char *s) _pure_; - -const char* session_class_to_string(SessionClass t) _const_; -SessionClass session_class_from_string(const char *s) _pure_; - -const char *kill_who_to_string(KillWho k) _const_; -KillWho kill_who_from_string(const char *s) _pure_; - -int session_prepare_vt(Session *s); -void session_restore_vt(Session *s); -void session_leave_vt(Session *s); - -bool session_is_controller(Session *s, const char *sender); -int session_set_controller(Session *s, const char *sender, bool force); -void session_drop_controller(Session *s); - -int bus_session_method_activate(sd_bus_message *message, void *userdata, sd_bus_error *error); -int bus_session_method_lock(sd_bus_message *message, void *userdata, sd_bus_error *error); -int bus_session_method_terminate(sd_bus_message *message, void *userdata, sd_bus_error *error); -int bus_session_method_kill(sd_bus_message *message, void *userdata, sd_bus_error *error); |