summaryrefslogtreecommitdiff
path: root/src/login/logind-session.h
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2013-07-02 01:46:30 +0200
committerLennart Poettering <lennart@poettering.net>2013-07-02 01:48:55 +0200
commitfb6becb4436ae4078337011b2017ce294e7361cf (patch)
tree5e80cea85b91f039563907c830cd1d38f19c375c /src/login/logind-session.h
parent358712f3de33789b2d1293825f1add2c6f4b8e66 (diff)
logind: port over to use scopes+slices for all cgroup stuff
In order to prepare things for the single-writer cgroup scheme, let's make logind use systemd's own primitives for cgroup management. Every login user now gets his own private slice unit, in which his sessions live in a scope unit each. Also, add user@$UID.service to the same slice, and implicitly start it on first login.
Diffstat (limited to 'src/login/logind-session.h')
-rw-r--r--src/login/logind-session.h16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/login/logind-session.h b/src/login/logind-session.h
index 60597c2362..e2a46d5907 100644
--- a/src/login/logind-session.h
+++ b/src/login/logind-session.h
@@ -31,9 +31,10 @@ typedef enum KillWho KillWho;
#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 processes still remain */
+ SESSION_CLOSING, /* Logged out, but scope is still there */
_SESSION_STATE_MAX,
_SESSION_STATE_INVALID = -1
} SessionState;
@@ -81,9 +82,10 @@ struct Session {
bool remote;
char *remote_user;
char *remote_host;
-
char *service;
- char *slice;
+
+ char *scope;
+ char *scope_job;
int vtnr;
Seat *seat;
@@ -94,16 +96,14 @@ struct Session {
int fifo_fd;
char *fifo_path;
- char *cgroup_path;
- char **controllers, **reset_controllers;
-
bool idle_hint;
dual_timestamp idle_hint_timestamp;
- bool kill_processes;
bool in_gc_queue:1;
bool started:1;
+ DBusMessage *create_message;
+
LIST_FIELDS(Session, sessions_by_user);
LIST_FIELDS(Session, sessions_by_seat);
@@ -138,6 +138,8 @@ int session_send_changed(Session *s, const char *properties);
int session_send_lock(Session *s, bool lock);
int session_send_lock_all(Manager *m, bool lock);
+int session_send_create_reply(Session *s, DBusError *error);
+
const char* session_state_to_string(SessionState t) _const_;
SessionState session_state_from_string(const char *s) _pure_;