X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fsd-daemon.h;h=20c260c40dd764c19a8f36fed05d079520930a8c;hp=0277b0fb5cbf32eabf2a0a59a7277d3d589f99aa;hb=399ab2b1ac07be5afa9708b3280d4e1a4cceb5b8;hpb=8c47c7325fa1ab72febf807f8831ff24c75fbf45 diff --git a/src/sd-daemon.h b/src/sd-daemon.h index 0277b0fb5..20c260c40 100644 --- a/src/sd-daemon.h +++ b/src/sd-daemon.h @@ -41,6 +41,12 @@ extern "C" { * algorithms described here, if they do not want to include these two * source files. */ +#ifdef __GNUC__ +#define _sd_printf_attr_(a,b) __attribute__ ((format (printf, a, b))) +#else +#define _sd_printf_attr_(a,b) +#endif + /* Log levels for usage on stderr: @@ -126,9 +132,9 @@ int sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t * little value in signalling non-readiness the only * value daemons should send is "READY=1". * - * STATUS=... Passes a status string back to systemd that - * describes the daemon state. This is free-from and - * can be used for various purposes: general state + * STATUS=... Passes a single-line status string back to systemd + * that describes the daemon state. This is free-from + * and can be used for various purposes: general state * feedback, fsck-like programs could pass completion * percentages and failing programs could pass a human * readable error message. Example: "STATUS=Completed @@ -143,6 +149,12 @@ int sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t * MAINPID=... The main pid of a daemon, in case systemd did not * fork off the process itself. Example: "MAINPID=4711" * + * Daemons can choose to send additional variables. + * + * Returns a negative errno-style error code on failure. Returns > 0 + * if systemd could be notified, 0 if it couldn't possibly because + * systemd is not running. + * * See sd_notifyf() for more complete examples. */ int sd_notify(int unset_environment, const char *state); @@ -164,7 +176,7 @@ int sd_notify(int unset_environment, const char *state); * strerror(errno), * errno); */ -int sd_notifyf(int unset_environment, const char *format, ...); +int sd_notifyf(int unset_environment, const char *format, ...) _sd_printf_attr_(2,3); #ifdef __cplusplus }