]> git.ipfire.org Git - thirdparty/systemd.git/blob - src/core/kill.h
e9655901550a29400490eafe06e8ecee124dc279
[thirdparty/systemd.git] / src / core / kill.h
1 /* SPDX-License-Identifier: LGPL-2.1+ */
2 #pragma once
3
4 /***
5 Copyright 2012 Lennart Poettering
6 ***/
7
8 typedef struct KillContext KillContext;
9
10 #include <stdbool.h>
11 #include <stdio.h>
12
13 #include "macro.h"
14
15 typedef enum KillMode {
16 /* The kill mode is a property of a unit. */
17 KILL_CONTROL_GROUP = 0,
18 KILL_PROCESS,
19 KILL_MIXED,
20 KILL_NONE,
21 _KILL_MODE_MAX,
22 _KILL_MODE_INVALID = -1
23 } KillMode;
24
25 struct KillContext {
26 KillMode kill_mode;
27 int kill_signal;
28 bool send_sigkill;
29 bool send_sighup;
30 };
31
32 typedef enum KillWho {
33 /* Kill who is a property of an operation */
34 KILL_MAIN,
35 KILL_CONTROL,
36 KILL_ALL,
37 KILL_MAIN_FAIL,
38 KILL_CONTROL_FAIL,
39 KILL_ALL_FAIL,
40 _KILL_WHO_MAX,
41 _KILL_WHO_INVALID = -1
42 } KillWho;
43
44 void kill_context_init(KillContext *c);
45 void kill_context_dump(KillContext *c, FILE *f, const char *prefix);
46
47 const char *kill_mode_to_string(KillMode k) _const_;
48 KillMode kill_mode_from_string(const char *s) _pure_;
49
50 const char *kill_who_to_string(KillWho k) _const_;
51 KillWho kill_who_from_string(const char *s) _pure_;