X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fservice.h;h=dfeee6a68c6d96a15b42c9a9223c0a64e72e2dfb;hb=7663df377016cf7b95001aec893006647175ae4a;hp=0db0c4d64cb12a61bd76f255735dbc8f574d11a7;hpb=16115b0a7b7cdf08fb38084d857d572d8a9088dc;p=elogind.git diff --git a/src/core/service.h b/src/core/service.h index 0db0c4d64..dfeee6a68 100644 --- a/src/core/service.h +++ b/src/core/service.h @@ -22,6 +22,7 @@ ***/ typedef struct Service Service; +typedef struct ServiceFDStore ServiceFDStore; #include "unit.h" #include "path.h" @@ -39,6 +40,7 @@ typedef enum ServiceState { SERVICE_EXITED, /* Nothing is running anymore, but RemainAfterExit is true hence this is OK */ SERVICE_RELOAD, SERVICE_STOP, /* No STOP_PRE state, instead just register multiple STOP executables */ + SERVICE_STOP_SIGABRT, /* Watchdog timeout */ SERVICE_STOP_SIGTERM, SERVICE_STOP_SIGKILL, SERVICE_STOP_POST, @@ -114,6 +116,15 @@ typedef enum ServiceResult { _SERVICE_RESULT_INVALID = -1 } ServiceResult; +struct ServiceFDStore { + Service *service; + + int fd; + sd_event_source *event_source; + + LIST_FIELDS(ServiceFDStore, fd_store); +}; + struct Service { Unit meta; @@ -179,9 +190,6 @@ struct Service { bool bus_name_good:1; bool forbid_restart:1; bool start_timeout_defined:1; -#ifdef HAVE_SYSV_COMPAT - int sysv_start_priority; -#endif char *bus_name; @@ -200,6 +208,10 @@ struct Service { NotifyAccess notify_access; NotifyState notify_state; + + ServiceFDStore *fd_store; + unsigned n_fd_store; + unsigned n_fd_store_max; }; extern const UnitVTable service_vtable;