/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
-#ifndef foomounthfoo
-#define foomounthfoo
+#pragma once
/***
This file is part of systemd.
typedef struct Mount Mount;
#include "unit.h"
+#include "kill.h"
+#include "execute.h"
+#include "cgroup.h"
typedef enum MountState {
MOUNT_DEAD,
_MOUNT_EXEC_COMMAND_INVALID = -1
} MountExecCommand;
-typedef struct MountParameters {
- char *what;
- char *options;
- char *fstype;
- int passno;
-} MountParameters;
-
typedef enum MountResult {
MOUNT_SUCCESS,
MOUNT_FAILURE_RESOURCES,
_MOUNT_RESULT_INVALID = -1
} MountResult;
+typedef struct MountParameters {
+ char *what;
+ char *options;
+ char *fstype;
+} MountParameters;
+
struct Mount {
Unit meta;
char *where;
- MountParameters parameters_etc_fstab;
MountParameters parameters_proc_self_mountinfo;
MountParameters parameters_fragment;
- bool from_etc_fstab:1;
bool from_proc_self_mountinfo:1;
bool from_fragment:1;
bool just_mounted:1;
bool just_changed:1;
+ bool sloppy_options;
+
MountResult result;
MountResult reload_result;
usec_t timeout_usec;
ExecCommand exec_command[_MOUNT_EXEC_COMMAND_MAX];
+
ExecContext exec_context;
+ KillContext kill_context;
+ CGroupContext cgroup_context;
+
+ ExecRuntime *exec_runtime;
MountState state, deserialized_state;
MountExecCommand control_command_id;
pid_t control_pid;
- Watch timer_watch;
+ sd_event_source *timer_event_source;
+
+ unsigned n_retry_umount;
};
extern const UnitVTable mount_vtable;
void mount_fd_event(Manager *m, int events);
-const char* mount_state_to_string(MountState i);
-MountState mount_state_from_string(const char *s);
+const char* mount_state_to_string(MountState i) _const_;
+MountState mount_state_from_string(const char *s) _pure_;
-const char* mount_exec_command_to_string(MountExecCommand i);
-MountExecCommand mount_exec_command_from_string(const char *s);
+const char* mount_exec_command_to_string(MountExecCommand i) _const_;
+MountExecCommand mount_exec_command_from_string(const char *s) _pure_;
-const char* mount_result_to_string(MountResult i);
-MountResult mount_result_from_string(const char *s);
+const char* mount_result_to_string(MountResult i) _const_;
+MountResult mount_result_from_string(const char *s) _pure_;
-#endif
+void warn_if_dir_nonempty(const char *unit, const char* where);