]> git.ipfire.org Git - thirdparty/systemd.git/blob - src/core/automount.h
Merge pull request #17823 from poettering/resolved-just-bypass
[thirdparty/systemd.git] / src / core / automount.h
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
2 #pragma once
3
4 typedef struct Automount Automount;
5
6 #include "unit.h"
7
8 typedef enum AutomountResult {
9 AUTOMOUNT_SUCCESS,
10 AUTOMOUNT_FAILURE_RESOURCES,
11 AUTOMOUNT_FAILURE_UNMOUNTED,
12 AUTOMOUNT_FAILURE_START_LIMIT_HIT,
13 AUTOMOUNT_FAILURE_MOUNT_START_LIMIT_HIT,
14 _AUTOMOUNT_RESULT_MAX,
15 _AUTOMOUNT_RESULT_INVALID = -EINVAL,
16 } AutomountResult;
17
18 struct Automount {
19 Unit meta;
20
21 AutomountState state, deserialized_state;
22
23 char *where;
24 usec_t timeout_idle_usec;
25
26 int pipe_fd;
27 sd_event_source *pipe_event_source;
28 mode_t directory_mode;
29 dev_t dev_id;
30
31 Set *tokens;
32 Set *expire_tokens;
33
34 sd_event_source *expire_event_source;
35
36 AutomountResult result;
37 };
38
39 extern const UnitVTable automount_vtable;
40
41 const char* automount_result_to_string(AutomountResult i) _const_;
42 AutomountResult automount_result_from_string(const char *s) _pure_;
43
44 DEFINE_CAST(AUTOMOUNT, Automount);