]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/mount.h
dbus: don't hit assert when dumping properties
[thirdparty/systemd.git] / src / mount.h
CommitLineData
03467c88 1/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
5cb5a6ff
LP
2
3#ifndef foomounthfoo
4#define foomounthfoo
5
a7334b09
LP
6/***
7 This file is part of systemd.
8
9 Copyright 2010 Lennart Poettering
10
11 systemd is free software; you can redistribute it and/or modify it
12 under the terms of the GNU General Public License as published by
13 the Free Software Foundation; either version 2 of the License, or
14 (at your option) any later version.
15
16 systemd is distributed in the hope that it will be useful, but
17 WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 General Public License for more details.
20
21 You should have received a copy of the GNU General Public License
22 along with systemd; If not, see <http://www.gnu.org/licenses/>.
23***/
24
5cb5a6ff
LP
25typedef struct Mount Mount;
26
87f0e418 27#include "unit.h"
5cb5a6ff
LP
28
29typedef enum MountState {
30 MOUNT_DEAD,
e537352b
LP
31 MOUNT_MOUNTING, /* /bin/mount is running, but the mount is not done yet. */
32 MOUNT_MOUNTING_DONE, /* /bin/mount is running, and the mount is done. */
5cb5a6ff 33 MOUNT_MOUNTED,
e537352b 34 MOUNT_REMOUNTING,
5cb5a6ff 35 MOUNT_UNMOUNTING,
e537352b
LP
36 MOUNT_MOUNTING_SIGTERM,
37 MOUNT_MOUNTING_SIGKILL,
38 MOUNT_REMOUNTING_SIGTERM,
39 MOUNT_REMOUNTING_SIGKILL,
40 MOUNT_UNMOUNTING_SIGTERM,
41 MOUNT_UNMOUNTING_SIGKILL,
fdf20a31 42 MOUNT_FAILED,
e537352b
LP
43 _MOUNT_STATE_MAX,
44 _MOUNT_STATE_INVALID = -1
5cb5a6ff
LP
45} MountState;
46
e537352b
LP
47typedef enum MountExecCommand {
48 MOUNT_EXEC_MOUNT,
49 MOUNT_EXEC_UNMOUNT,
50 MOUNT_EXEC_REMOUNT,
51 _MOUNT_EXEC_COMMAND_MAX,
52 _MOUNT_EXEC_COMMAND_INVALID = -1
53} MountExecCommand;
54
55typedef struct MountParameters {
56 char *what;
57 char *options;
58 char *fstype;
9fff8a1f 59 int passno;
e537352b
LP
60} MountParameters;
61
5cb5a6ff
LP
62struct Mount {
63 Meta meta;
64
e537352b 65 char *where;
b08d03ff 66
e537352b
LP
67 MountParameters parameters_etc_fstab;
68 MountParameters parameters_proc_self_mountinfo;
69 MountParameters parameters_fragment;
f50e0a01
LP
70
71 bool from_etc_fstab:1;
72 bool from_proc_self_mountinfo:1;
e537352b 73 bool from_fragment:1;
ef734fd6
LP
74
75 /* Used while looking for mount points that vanished or got
76 * added from/to /proc/self/mountinfo */
e537352b
LP
77 bool is_mounted:1;
78 bool just_mounted:1;
79 bool just_changed:1;
80
81 bool failure:1;
e2f3b44c 82 bool reload_failure:1;
e537352b 83
3e5235b0
LP
84 mode_t directory_mode;
85
7fab9d01
LP
86 usec_t timeout_usec;
87
e537352b
LP
88 ExecCommand exec_command[_MOUNT_EXEC_COMMAND_MAX];
89 ExecContext exec_context;
90
a16e1123 91 MountState state, deserialized_state;
e537352b 92
e537352b 93 ExecCommand* control_command;
a16e1123 94 MountExecCommand control_command_id;
e537352b
LP
95 pid_t control_pid;
96
97 Watch timer_watch;
5cb5a6ff
LP
98};
99
87f0e418 100extern const UnitVTable mount_vtable;
5cb5a6ff 101
ef734fd6
LP
102void mount_fd_event(Manager *m, int events);
103
a16e1123
LP
104const char* mount_state_to_string(MountState i);
105MountState mount_state_from_string(const char *s);
106
107const char* mount_exec_command_to_string(MountExecCommand i);
108MountExecCommand mount_exec_command_from_string(const char *s);
109
5cb5a6ff 110#endif