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); 46