From 90821c935e5f4258dc21fc515cf721beb0914a85 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 24 May 2011 00:19:22 +0200 Subject: logind: split up logind.h --- src/logind-session.h | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 src/logind-session.h (limited to 'src/logind-session.h') diff --git a/src/logind-session.h b/src/logind-session.h new file mode 100644 index 0000000000..b3f0b5fa7a --- /dev/null +++ b/src/logind-session.h @@ -0,0 +1,88 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + +#ifndef foologindsessionhfoo +#define foologindsessionhfoo + +/*** + 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 General Public License as published by + the Free Software Foundation; either version 2 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 + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with systemd; If not, see . +***/ + +typedef struct Session Session; + +#include "list.h" +#include "util.h" +#include "logind.h" +#include "logind-seat.h" +#include "logind-user.h" + +typedef enum SessionType { + SESSION_TERMINAL, + SESSION_X11, + _SESSION_TYPE_MAX, + _SESSION_TYPE_INVALID = -1 +} SessionType; + +struct Session { + Manager *manager; + + char *id; + SessionType type; + + char *state_file; + + User *user; + + dual_timestamp timestamp; + + char *tty; + char *display; + + bool remote; + char *remote_host; + + int vtnr; + Seat *seat; + + pid_t leader; + uint64_t audit_id; + + int pipe_fd; + + char *cgroup_path; + char **controllers, **reset_controllers; + + bool kill_processes; + + LIST_FIELDS(Session, sessions_by_user); + LIST_FIELDS(Session, sessions_by_seat); +}; + +Session *session_new(Manager *m, User *u, const char *id); +void session_free(Session *s); +int session_activate(Session *s); +bool session_is_active(Session *s); +int session_check_gc(Session *s); +int session_start(Session *s); +int session_stop(Session *s); +int session_save(Session *s); +int session_load(Session *s); + +const char* session_type_to_string(SessionType t); +SessionType session_type_from_string(const char *s); + +#endif -- cgit v1.2.3-54-g00ecf