X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=automount.h;h=5b623691d4c9a5c09e9d4ba6d708e9a3fdab392a;hp=b6dfd5bb0609ecafda0842ad380b7a7da0328309;hb=25e870b5f79f158ba6ac0b715248b0c3d3549325;hpb=5cb5a6ffc33667c93e9bc3572534dcaa684046e3 diff --git a/automount.h b/automount.h index b6dfd5bb0..5b623691d 100644 --- a/automount.h +++ b/automount.h @@ -3,44 +3,61 @@ #ifndef fooautomounthfoo #define fooautomounthfoo +/*** + This file is part of systemd. + + Copyright 2010 Lennart Poettering + + systemd is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + systemd is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with systemd; If not, see . +***/ + typedef struct Automount Automount; -#include "name.h" +#include "unit.h" typedef enum AutomountState { AUTOMOUNT_DEAD, - AUTOMOUNT_START_PRE, - AUTOMOUNT_START_POST, AUTOMOUNT_WAITING, AUTOMOUNT_RUNNING, - AUTOMOUNT_STOP_PRE, - AUTOMOUNT_STOP_POST, AUTOMOUNT_MAINTAINANCE, - _AUTOMOUNT_STATE_MAX + _AUTOMOUNT_STATE_MAX, + _AUTOMOUNT_STATE_INVALID = -1 } AutomountState; -typedef enum AutomountExecCommand { - AUTOMOUNT_EXEC_START_PRE, - AUTOMOUNT_EXEC_START_POST, - AUTOMOUNT_EXEC_STOP_PRE, - AUTOMOUNT_EXEC_STOP_POST, - _AUTOMOUNT_EXEC_MAX -} AutomountExecCommand; - struct Automount { Meta meta; - AutomountState state; - char *path; + AutomountState state, deserialized_state; - ExecCommand* exec_command[_AUTOMOUNT_EXEC_MAX]; - ExecContext exec_context; - - pid_t contol_pid; + char *where; Mount *mount; + + int pipe_fd; + Watch pipe_watch; + dev_t dev_id; + + Set *tokens; + + bool failure:1; }; -extern const NameVTable automount_vtable; +extern const UnitVTable automount_vtable; + +int automount_send_ready(Automount *a, int status); + +const char* automount_state_to_string(AutomountState i); +AutomountState automount_state_from_string(const char *s); #endif