Line data Source code
1 : /* SPDX-License-Identifier: LGPL-2.1+ */ 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_START_LIMIT_HIT, 12 : AUTOMOUNT_FAILURE_MOUNT_START_LIMIT_HIT, 13 : _AUTOMOUNT_RESULT_MAX, 14 : _AUTOMOUNT_RESULT_INVALID = -1 15 : } AutomountResult; 16 : 17 : struct Automount { 18 : Unit meta; 19 : 20 : AutomountState state, deserialized_state; 21 : 22 : char *where; 23 : usec_t timeout_idle_usec; 24 : 25 : int pipe_fd; 26 : sd_event_source *pipe_event_source; 27 : mode_t directory_mode; 28 : dev_t dev_id; 29 : 30 : Set *tokens; 31 : Set *expire_tokens; 32 : 33 : sd_event_source *expire_event_source; 34 : 35 : AutomountResult result; 36 : }; 37 : 38 : extern const UnitVTable automount_vtable; 39 : 40 : const char* automount_result_to_string(AutomountResult i) _const_; 41 : AutomountResult automount_result_from_string(const char *s) _pure_; 42 : 43 0 : DEFINE_CAST(AUTOMOUNT, Automount);