LCOV - code coverage report
Current view: top level - core - mount.h (source / functions) Hit Total Coverage
Test: main_coverage.info Lines: 1 1 100.0 %
Date: 2019-08-22 15:41:25 Functions: 1 1 100.0 %

          Line data    Source code
       1             : /* SPDX-License-Identifier: LGPL-2.1+ */
       2             : #pragma once
       3             : 
       4             : typedef struct Mount Mount;
       5             : 
       6             : #include "kill.h"
       7             : #include "dynamic-user.h"
       8             : #include "unit.h"
       9             : 
      10             : typedef enum MountExecCommand {
      11             :         MOUNT_EXEC_MOUNT,
      12             :         MOUNT_EXEC_UNMOUNT,
      13             :         MOUNT_EXEC_REMOUNT,
      14             :         _MOUNT_EXEC_COMMAND_MAX,
      15             :         _MOUNT_EXEC_COMMAND_INVALID = -1
      16             : } MountExecCommand;
      17             : 
      18             : typedef enum MountResult {
      19             :         MOUNT_SUCCESS,
      20             :         MOUNT_FAILURE_RESOURCES, /* a bit of a misnomer, just our catch-all error for errnos we didn't expect */
      21             :         MOUNT_FAILURE_TIMEOUT,
      22             :         MOUNT_FAILURE_EXIT_CODE,
      23             :         MOUNT_FAILURE_SIGNAL,
      24             :         MOUNT_FAILURE_CORE_DUMP,
      25             :         MOUNT_FAILURE_START_LIMIT_HIT,
      26             :         MOUNT_FAILURE_PROTOCOL,
      27             :         _MOUNT_RESULT_MAX,
      28             :         _MOUNT_RESULT_INVALID = -1
      29             : } MountResult;
      30             : 
      31             : typedef struct MountParameters {
      32             :         char *what;
      33             :         char *options;
      34             :         char *fstype;
      35             : } MountParameters;
      36             : 
      37             : /* Used while looking for mount points that vanished or got added from/to /proc/self/mountinfo */
      38             : typedef enum MountProcFlags {
      39             :         MOUNT_PROC_IS_MOUNTED   = 1 << 0,
      40             :         MOUNT_PROC_JUST_MOUNTED = 1 << 1,
      41             :         MOUNT_PROC_JUST_CHANGED = 1 << 2,
      42             : } MountProcFlags;
      43             : 
      44             : struct Mount {
      45             :         Unit meta;
      46             : 
      47             :         char *where;
      48             : 
      49             :         MountParameters parameters_proc_self_mountinfo;
      50             :         MountParameters parameters_fragment;
      51             : 
      52             :         bool from_proc_self_mountinfo:1;
      53             :         bool from_fragment:1;
      54             : 
      55             :         MountProcFlags proc_flags;
      56             : 
      57             :         bool sloppy_options;
      58             : 
      59             :         bool lazy_unmount;
      60             :         bool force_unmount;
      61             : 
      62             :         MountResult result;
      63             :         MountResult reload_result;
      64             : 
      65             :         mode_t directory_mode;
      66             : 
      67             :         usec_t timeout_usec;
      68             : 
      69             :         ExecCommand exec_command[_MOUNT_EXEC_COMMAND_MAX];
      70             : 
      71             :         ExecContext exec_context;
      72             :         KillContext kill_context;
      73             :         CGroupContext cgroup_context;
      74             : 
      75             :         ExecRuntime *exec_runtime;
      76             :         DynamicCreds dynamic_creds;
      77             : 
      78             :         MountState state, deserialized_state;
      79             : 
      80             :         ExecCommand* control_command;
      81             :         MountExecCommand control_command_id;
      82             :         pid_t control_pid;
      83             : 
      84             :         sd_event_source *timer_event_source;
      85             : 
      86             :         unsigned n_retry_umount;
      87             : };
      88             : 
      89             : extern const UnitVTable mount_vtable;
      90             : 
      91             : void mount_fd_event(Manager *m, int events);
      92             : 
      93             : const char* mount_exec_command_to_string(MountExecCommand i) _const_;
      94             : MountExecCommand mount_exec_command_from_string(const char *s) _pure_;
      95             : 
      96             : const char* mount_result_to_string(MountResult i) _const_;
      97             : MountResult mount_result_from_string(const char *s) _pure_;
      98             : 
      99        5505 : DEFINE_CAST(MOUNT, Mount);

Generated by: LCOV version 1.14