1 /*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
7 This file is part of systemd.
9 Copyright 2010 Lennart Poettering
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.
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.
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/>.
25 typedef struct Mount Mount;
29 typedef enum MountState {
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. */
36 MOUNT_MOUNTING_SIGTERM,
37 MOUNT_MOUNTING_SIGKILL,
38 MOUNT_REMOUNTING_SIGTERM,
39 MOUNT_REMOUNTING_SIGKILL,
40 MOUNT_UNMOUNTING_SIGTERM,
41 MOUNT_UNMOUNTING_SIGKILL,
44 _MOUNT_STATE_INVALID = -1
47 typedef enum MountExecCommand {
51 _MOUNT_EXEC_COMMAND_MAX,
52 _MOUNT_EXEC_COMMAND_INVALID = -1
55 typedef struct MountParameters {
62 typedef enum MountResult {
64 MOUNT_FAILURE_RESOURCES,
65 MOUNT_FAILURE_TIMEOUT,
66 MOUNT_FAILURE_EXIT_CODE,
68 MOUNT_FAILURE_CORE_DUMP,
70 _MOUNT_RESULT_INVALID = -1
78 MountParameters parameters_etc_fstab;
79 MountParameters parameters_proc_self_mountinfo;
80 MountParameters parameters_fragment;
82 bool from_etc_fstab:1;
83 bool from_proc_self_mountinfo:1;
86 /* Used while looking for mount points that vanished or got
87 * added from/to /proc/self/mountinfo */
93 MountResult reload_result;
95 mode_t directory_mode;
99 ExecCommand exec_command[_MOUNT_EXEC_COMMAND_MAX];
100 ExecContext exec_context;
102 MountState state, deserialized_state;
104 ExecCommand* control_command;
105 MountExecCommand control_command_id;
111 extern const UnitVTable mount_vtable;
113 void mount_fd_event(Manager *m, int events);
115 const char* mount_state_to_string(MountState i);
116 MountState mount_state_from_string(const char *s);
118 const char* mount_exec_command_to_string(MountExecCommand i);
119 MountExecCommand mount_exec_command_from_string(const char *s);
121 const char* mount_result_to_string(MountResult i);
122 MountResult mount_result_from_string(const char *s);