typedef enum AutomountState {
AUTOMOUNT_DEAD,
- AUTOMOUNT_START_PRE,
- AUTOMOUNT_START_POST,
AUTOMOUNT_WAITING,
AUTOMOUNT_RUNNING,
- AUTOMOUNT_STOP_PRE,
- AUTOMOUNT_STOP_POST,
AUTOMOUNT_MAINTAINANCE,
- _AUTOMOUNT_STATE_MAX
+ _AUTOMOUNT_STATE_MAX,
+ _AUTOMOUNT_STATE_INVALID = -1
} AutomountState;
-typedef enum AutomountExecCommand {
- AUTOMOUNT_EXEC_START_PRE,
- AUTOMOUNT_EXEC_START_POST,
- AUTOMOUNT_EXEC_STOP_PRE,
- AUTOMOUNT_EXEC_STOP_POST,
- _AUTOMOUNT_EXEC_MAX
-} AutomountExecCommand;
-
struct Automount {
Meta meta;
- AutomountState state;
- char *path;
-
- ExecCommand* exec_command[_AUTOMOUNT_EXEC_MAX];
- ExecContext exec_context;
+ AutomountState state, deserialized_state;
- pid_t contol_pid;
+ char *where;
Mount *mount;
+
+ int pipe_fd;
+ Watch pipe_watch;
+ dev_t dev_id;
+
+ Set *tokens;
+
+ bool failure:1;
};
extern const UnitVTable automount_vtable;
+int automount_send_ready(Automount *a, int status);
+
+int automount_add_one_mount_link(Automount *a, Mount *m);
+
+const char* automount_state_to_string(AutomountState i);
+AutomountState automount_state_from_string(const char *s);
+
#endif