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
);