]>
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
;
59 sd_bus_message
*create_message
;
64 LIST_HEAD(Operation
, operations
);
66 LIST_FIELDS(Machine
, gc_queue
);
69 Machine
* machine_new(Manager
*manager
, MachineClass
class, const char *name
);
70 Machine
* machine_free(Machine
*m
);
71 bool machine_may_gc(Machine
*m
, bool drop_not_started
);
72 void machine_add_to_gc_queue(Machine
*m
);
73 int machine_start(Machine
*m
, sd_bus_message
*properties
, sd_bus_error
*error
);
74 int machine_stop(Machine
*m
);
75 int machine_finalize(Machine
*m
);
76 int machine_save(Machine
*m
);
77 int machine_load(Machine
*m
);
78 int machine_kill(Machine
*m
, KillWho who
, int signo
);
80 void machine_release_unit(Machine
*m
);
82 MachineState
machine_get_state(Machine
*u
);
84 const char* machine_class_to_string(MachineClass t
) _const_
;
85 MachineClass
machine_class_from_string(const char *s
) _pure_
;
87 const char* machine_state_to_string(MachineState t
) _const_
;
88 MachineState
machine_state_from_string(const char *s
) _pure_
;
90 const char *kill_who_to_string(KillWho k
) _const_
;
91 KillWho
kill_who_from_string(const char *s
) _pure_
;
93 int machine_openpt(Machine
*m
, int flags
, char **ret_slave
);
94 int machine_open_terminal(Machine
*m
, const char *path
, int mode
);
96 int machine_get_uid_shift(Machine
*m
, uid_t
*ret
);
98 int machine_owns_uid(Machine
*m
, uid_t host_uid
, uid_t
*ret_internal_uid
);
99 int machine_owns_gid(Machine
*m
, gid_t host_gid
, gid_t
*ret_internal_gid
);
101 int machine_translate_uid(Machine
*m
, uid_t internal_uid
, uid_t
*ret_host_uid
);
102 int machine_translate_gid(Machine
*m
, gid_t internal_gid
, gid_t
*ret_host_gid
);