]> git.ipfire.org Git - thirdparty/systemd.git/blob - src/core/automount.h
Merge pull request #21808 from DaanDeMeyer/path-trigger-limit
[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 char *extra_options;
25 usec_t timeout_idle_usec;
26
27 int pipe_fd;
28 sd_event_source *pipe_event_source;
29 mode_t directory_mode;
30 dev_t dev_id;
31
32 Set *tokens;
33 Set *expire_tokens;
34
35 sd_event_source *expire_event_source;
36
37 AutomountResult result;
38 };
39
40 extern const UnitVTable automount_vtable;
41
42 const char* automount_result_to_string(AutomountResult i) _const_;
43 AutomountResult automount_result_from_string(const char *s) _pure_;
44
45 DEFINE_CAST(AUTOMOUNT, Automount);