]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/login/logind-inhibit.h
man: add sd_bus_message_new_signal(3)
[thirdparty/systemd.git] / src / login / logind-inhibit.h
CommitLineData
53e1b683 1/* SPDX-License-Identifier: LGPL-2.1+ */
05d3a176 2#pragma once
f8e2fb7b 3
f8e2fb7b
LP
4typedef struct Inhibitor Inhibitor;
5
f8e2fb7b
LP
6typedef enum InhibitWhat {
7 INHIBIT_SHUTDOWN = 1,
4943c1c9 8 INHIBIT_SLEEP = 2,
f8e2fb7b 9 INHIBIT_IDLE = 4,
beaafb2e 10 INHIBIT_HANDLE_POWER_KEY = 8,
8e7fd6ad
LP
11 INHIBIT_HANDLE_SUSPEND_KEY = 16,
12 INHIBIT_HANDLE_HIBERNATE_KEY = 32,
13 INHIBIT_HANDLE_LID_SWITCH = 64,
14 _INHIBIT_WHAT_MAX = 128,
f8e2fb7b
LP
15 _INHIBIT_WHAT_INVALID = -1
16} InhibitWhat;
17
eecd1362
LP
18typedef enum InhibitMode {
19 INHIBIT_BLOCK,
20 INHIBIT_DELAY,
21 _INHIBIT_MODE_MAX,
22 _INHIBIT_MODE_INVALID = -1
23} InhibitMode;
24
d889a206 25#include "logind.h"
d889a206 26
f8e2fb7b
LP
27struct Inhibitor {
28 Manager *manager;
29
cc377381
LP
30 sd_event_source *event_source;
31
f8e2fb7b
LP
32 char *id;
33 char *state_file;
34
35 bool started;
36
37 InhibitWhat what;
38 char *who;
39 char *why;
eecd1362 40 InhibitMode mode;
f8e2fb7b
LP
41
42 pid_t pid;
43 uid_t uid;
44
c7b5eb98
LP
45 dual_timestamp since;
46
f8e2fb7b
LP
47 char *fifo_path;
48 int fifo_fd;
49};
50
51Inhibitor* inhibitor_new(Manager *m, const char *id);
52void inhibitor_free(Inhibitor *i);
53
54int inhibitor_save(Inhibitor *i);
55int inhibitor_load(Inhibitor *i);
56
57int inhibitor_start(Inhibitor *i);
58int inhibitor_stop(Inhibitor *i);
59
60int inhibitor_create_fifo(Inhibitor *i);
61void inhibitor_remove_fifo(Inhibitor *i);
62
eecd1362 63InhibitWhat manager_inhibit_what(Manager *m, InhibitMode mm);
85a428c6 64bool manager_is_inhibited(Manager *m, InhibitWhat w, InhibitMode mm, dual_timestamp *since, bool ignore_inactive, bool ignore_uid, uid_t uid, Inhibitor **offending);
f8e2fb7b
LP
65
66const char *inhibit_what_to_string(InhibitWhat k);
67InhibitWhat inhibit_what_from_string(const char *s);
68
eecd1362
LP
69const char *inhibit_mode_to_string(InhibitMode k);
70InhibitMode inhibit_mode_from_string(const char *s);