1 /* SPDX-License-Identifier: LGPL-2.1+ */
5 Copyright 2012 Lennart Poettering
8 typedef struct Inhibitor Inhibitor;
10 typedef enum InhibitWhat {
14 INHIBIT_HANDLE_POWER_KEY = 8,
15 INHIBIT_HANDLE_SUSPEND_KEY = 16,
16 INHIBIT_HANDLE_HIBERNATE_KEY = 32,
17 INHIBIT_HANDLE_LID_SWITCH = 64,
18 _INHIBIT_WHAT_MAX = 128,
19 _INHIBIT_WHAT_INVALID = -1
22 typedef enum InhibitMode {
26 _INHIBIT_MODE_INVALID = -1
34 sd_event_source *event_source;
55 Inhibitor* inhibitor_new(Manager *m, const char *id);
56 void inhibitor_free(Inhibitor *i);
58 int inhibitor_save(Inhibitor *i);
59 int inhibitor_load(Inhibitor *i);
61 int inhibitor_start(Inhibitor *i);
62 int inhibitor_stop(Inhibitor *i);
64 int inhibitor_create_fifo(Inhibitor *i);
65 void inhibitor_remove_fifo(Inhibitor *i);
67 InhibitWhat manager_inhibit_what(Manager *m, InhibitMode mm);
68 bool manager_is_inhibited(Manager *m, InhibitWhat w, InhibitMode mm, dual_timestamp *since, bool ignore_inactive, bool ignore_uid, uid_t uid, Inhibitor **offending);
70 const char *inhibit_what_to_string(InhibitWhat k);
71 InhibitWhat inhibit_what_from_string(const char *s);
73 const char *inhibit_mode_to_string(InhibitMode k);
74 InhibitMode inhibit_mode_from_string(const char *s);