diff options
Diffstat (limited to 'src/libsystemd-terminal/sysview.h')
-rw-r--r-- | src/libsystemd-terminal/sysview.h | 162 |
1 files changed, 0 insertions, 162 deletions
diff --git a/src/libsystemd-terminal/sysview.h b/src/libsystemd-terminal/sysview.h deleted file mode 100644 index a5e7a38df3..0000000000 --- a/src/libsystemd-terminal/sysview.h +++ /dev/null @@ -1,162 +0,0 @@ -/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ - -/*** - This file is part of systemd. - - Copyright (C) 2014 David Herrmann <dh.herrmann@gmail.com> - - 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/>. -***/ - -/* - * System View - * The sysview interface scans and monitors the system for seats, sessions and - * devices. It basically mirrors the state of logind on the application side. - * It's meant as base for session services that require managed device access. - * The logind controller API is employed to allow unprivileged access to all - * devices of a user. - * Furthermore, the sysview interface can be used for system services that run - * in situations where logind is not available, but session-like services are - * needed. For instance, the initrd does not run logind but might require - * graphics access. It cannot run session services, though. The sysview - * interface pretends that a session is available and provides the same - * interface as to normal session services. - */ - -#pragma once - -#include <stdbool.h> -#include "sd-bus.h" -#include "sd-event.h" - -typedef struct sysview_event sysview_event; -typedef struct sysview_device sysview_device; -typedef struct sysview_session sysview_session; -typedef struct sysview_seat sysview_seat; -typedef struct sysview_context sysview_context; - -/* - * Events - */ - -enum { - SYSVIEW_EVENT_SETTLE, - - SYSVIEW_EVENT_SEAT_ADD, - SYSVIEW_EVENT_SEAT_REMOVE, - - SYSVIEW_EVENT_SESSION_FILTER, - SYSVIEW_EVENT_SESSION_ADD, - SYSVIEW_EVENT_SESSION_REMOVE, - SYSVIEW_EVENT_SESSION_ATTACH, - SYSVIEW_EVENT_SESSION_DETACH, - SYSVIEW_EVENT_SESSION_REFRESH, - SYSVIEW_EVENT_SESSION_CONTROL, -}; - -struct sysview_event { - unsigned int type; - - union { - struct { - sysview_seat *seat; - } seat_add, seat_remove; - - struct { - const char *id; - const char *seatid; - const char *username; - unsigned int uid; - } session_filter; - - struct { - sysview_session *session; - } session_add, session_remove; - - struct { - sysview_session *session; - sysview_device *device; - } session_attach, session_detach; - - struct { - sysview_session *session; - sysview_device *device; - struct udev_device *ud; - } session_refresh; - - struct { - sysview_session *session; - int error; - } session_control; - }; -}; - -typedef int (*sysview_event_fn) (sysview_context *c, void *userdata, sysview_event *e); - -/* - * Devices - */ - -enum { - SYSVIEW_DEVICE_EVDEV, - SYSVIEW_DEVICE_DRM, - SYSVIEW_DEVICE_CNT -}; - -const char *sysview_device_get_name(sysview_device *device); -unsigned int sysview_device_get_type(sysview_device *device); -struct udev_device *sysview_device_get_ud(sysview_device *device); - -/* - * Sessions - */ - -void sysview_session_set_userdata(sysview_session *session, void *userdata); -void *sysview_session_get_userdata(sysview_session *session); - -const char *sysview_session_get_name(sysview_session *session); -sysview_seat *sysview_session_get_seat(sysview_session *session); - -int sysview_session_take_control(sysview_session *session); -void sysview_session_release_control(sysview_session *session); - -/* - * Seats - */ - -const char *sysview_seat_get_name(sysview_seat *seat); -int sysview_seat_switch_to(sysview_seat *seat, uint32_t nr); - -/* - * Contexts - */ - -enum { - SYSVIEW_CONTEXT_SCAN_LOGIND = (1 << 0), - SYSVIEW_CONTEXT_SCAN_EVDEV = (1 << 1), - SYSVIEW_CONTEXT_SCAN_DRM = (1 << 2), -}; - -int sysview_context_new(sysview_context **out, - unsigned int flags, - sd_event *event, - sd_bus *sysbus, - struct udev *ud); -sysview_context *sysview_context_free(sysview_context *c); - -DEFINE_TRIVIAL_CLEANUP_FUNC(sysview_context*, sysview_context_free); - -bool sysview_context_is_running(sysview_context *c); -int sysview_context_start(sysview_context *c, sysview_event_fn event_fn, void *userdata); -void sysview_context_stop(sysview_context *c); |