diff options
author | Lennart Poettering <lennart@poettering.net> | 2010-04-10 17:53:17 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2010-04-10 18:00:34 +0200 |
commit | e537352b9bfffe6f6286483bff2c7601c78407e3 (patch) | |
tree | be1a46883f8a1bc6b666bd680adda2d309979c15 /mount.h | |
parent | 108736d0d34d7b74a61a6ac7b99d4d4fec81ce09 (diff) |
mount: implement mounting properly
This also includes code that writes utmp/wtmp records when applicable,
making use the mount infrastructure to detct when those files are
accessible.
Finally, this also introduces a --dump-configuration-items switch.
Diffstat (limited to 'mount.h')
-rw-r--r-- | mount.h | 57 |
1 files changed, 51 insertions, 6 deletions
@@ -28,31 +28,76 @@ typedef struct Mount Mount; typedef enum MountState { MOUNT_DEAD, - MOUNT_MOUNTING, + MOUNT_MOUNTING, /* /bin/mount is running, but the mount is not done yet. */ + MOUNT_MOUNTING_DONE, /* /bin/mount is running, and the mount is done. */ MOUNT_MOUNTED, + MOUNT_REMOUNTING, MOUNT_UNMOUNTING, + MOUNT_MOUNTING_SIGTERM, + MOUNT_MOUNTING_SIGKILL, + MOUNT_REMOUNTING_SIGTERM, + MOUNT_REMOUNTING_SIGKILL, + MOUNT_UNMOUNTING_SIGTERM, + MOUNT_UNMOUNTING_SIGKILL, MOUNT_MAINTAINANCE, - _MOUNT_STATE_MAX + _MOUNT_STATE_MAX, + _MOUNT_STATE_INVALID = -1 } MountState; +typedef enum MountExecCommand { + MOUNT_EXEC_MOUNT, + MOUNT_EXEC_UNMOUNT, + MOUNT_EXEC_REMOUNT, + _MOUNT_EXEC_COMMAND_MAX, + _MOUNT_EXEC_COMMAND_INVALID = -1 +} MountExecCommand; + +typedef struct MountParameters { + char *what; + char *options; + char *fstype; +} MountParameters; + struct Mount { Meta meta; - MountState state; + char *where; - char *what, *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; /* Used while looking for mount points that vanished or got * added from/to /proc/self/mountinfo */ - bool still_exists:1; - bool just_created:1; + bool is_mounted:1; + bool just_mounted:1; + bool just_changed:1; + + bool failure:1; + + usec_t timeout_usec; + + ExecCommand exec_command[_MOUNT_EXEC_COMMAND_MAX]; + ExecContext exec_context; + + MountState state; + + KillMode kill_mode; + + ExecCommand* control_command; + pid_t control_pid; + + Watch timer_watch; }; extern const UnitVTable mount_vtable; void mount_fd_event(Manager *m, int events); +int mount_path_is_mounted(Manager *m, const char* path); + #endif |