]> git.ipfire.org Git - people/ms/systemd.git/blob - automount.h
e7d778c7bbd0018af6ad7c7d8776adec288af12f
[people/ms/systemd.git] / automount.h
1 /*-*- Mode: C; c-basic-offset: 8 -*-*/
2
3 #ifndef fooautomounthfoo
4 #define fooautomounthfoo
5
6 /***
7 This file is part of systemd.
8
9 Copyright 2010 Lennart Poettering
10
11 systemd is free software; you can redistribute it and/or modify it
12 under the terms of the GNU General Public License as published by
13 the Free Software Foundation; either version 2 of the License, or
14 (at your option) any later version.
15
16 systemd is distributed in the hope that it will be useful, but
17 WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 General Public License for more details.
20
21 You should have received a copy of the GNU General Public License
22 along with systemd; If not, see <http://www.gnu.org/licenses/>.
23 ***/
24
25 typedef struct Automount Automount;
26
27 #include "unit.h"
28
29 typedef enum AutomountState {
30 AUTOMOUNT_DEAD,
31 AUTOMOUNT_START_PRE,
32 AUTOMOUNT_START_POST,
33 AUTOMOUNT_WAITING,
34 AUTOMOUNT_RUNNING,
35 AUTOMOUNT_STOP_PRE,
36 AUTOMOUNT_STOP_POST,
37 AUTOMOUNT_MAINTAINANCE,
38 _AUTOMOUNT_STATE_MAX
39 } AutomountState;
40
41 typedef enum AutomountExecCommand {
42 AUTOMOUNT_EXEC_START_PRE,
43 AUTOMOUNT_EXEC_START_POST,
44 AUTOMOUNT_EXEC_STOP_PRE,
45 AUTOMOUNT_EXEC_STOP_POST,
46 _AUTOMOUNT_EXEC_MAX
47 } AutomountExecCommand;
48
49 struct Automount {
50 Meta meta;
51
52 AutomountState state;
53 char *path;
54
55 ExecCommand* exec_command[_AUTOMOUNT_EXEC_MAX];
56 ExecContext exec_context;
57
58 pid_t contol_pid;
59
60 Mount *mount;
61 };
62
63 extern const UnitVTable automount_vtable;
64
65 #endif