]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/machine/machine.h
1 /* SPDX-License-Identifier: LGPL-2.1+ */
4 typedef struct Machine Machine
;
5 typedef enum KillWho KillWho
;
10 #include "time-util.h"
12 typedef enum MachineState
{
13 MACHINE_OPENING
, /* Machine is being registered */
14 MACHINE_RUNNING
, /* Machine is running */
15 MACHINE_CLOSING
, /* Machine is terminating */
17 _MACHINE_STATE_INVALID
= -1
20 typedef enum MachineClass
{
25 _MACHINE_CLASS_INVALID
= -1
32 _KILL_WHO_INVALID
= -1
52 dual_timestamp timestamp
;
58 sd_bus_message
*create_message
;
63 LIST_HEAD(Operation
, operations
);
65 LIST_FIELDS(Machine
, gc_queue
);
68 Machine
* machine_new(Manager
*manager
, MachineClass
class, const char *name
);
69 Machine
* machine_free(Machine
*m
);
70 bool machine_may_gc(Machine
*m
, bool drop_not_started
);
71 void machine_add_to_gc_queue(Machine
*m
);
72 int machine_start(Machine
*m
, sd_bus_message
*properties
, sd_bus_error
*error
);
73 int machine_stop(Machine
*m
);
74 int machine_finalize(Machine
*m
);
75 int machine_save(Machine
*m
);
76 int machine_load(Machine
*m
);
77 int machine_kill(Machine
*m
, KillWho who
, int signo
);
79 void machine_release_unit(Machine
*m
);
81 MachineState
machine_get_state(Machine
*u
);
83 const char* machine_class_to_string(MachineClass t
) _const_
;
84 MachineClass
machine_class_from_string(const char *s
) _pure_
;
86 const char* machine_state_to_string(MachineState t
) _const_
;
87 MachineState
machine_state_from_string(const char *s
) _pure_
;
89 const char *kill_who_to_string(KillWho k
) _const_
;
90 KillWho
kill_who_from_string(const char *s
) _pure_
;
92 int machine_openpt(Machine
*m
, int flags
);
93 int machine_open_terminal(Machine
*m
, const char *path
, int mode
);
95 int machine_get_uid_shift(Machine
*m
, uid_t
*ret
);