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 {
67 MountParameters parameters_etc_fstab;
68 MountParameters parameters_proc_self_mountinfo;
69 MountParameters parameters_fragment;
71 bool from_etc_fstab:1;
72 bool from_proc_self_mountinfo:1;
75 /* Used while looking for mount points that vanished or got
76 * added from/to /proc/self/mountinfo */
82 bool reload_failure:1;
84 mode_t directory_mode;
88 ExecCommand exec_command[_MOUNT_EXEC_COMMAND_MAX];
89 ExecContext exec_context;
91 MountState state, deserialized_state;
93 ExecCommand* control_command;
94 MountExecCommand control_command_id;
100 extern const UnitVTable mount_vtable;
102 void mount_fd_event(Manager *m, int events);
104 const char* mount_state_to_string(MountState i);
105 MountState mount_state_from_string(const char *s);
107 const char* mount_exec_command_to_string(MountExecCommand i);
108 MountExecCommand mount_exec_command_from_string(const char *s);