chiark / gitweb /
unit: do wildcard expansion in ListenStream= and friends
[elogind.git] / src / sd-daemon.h
index dc18f42eaa3ac9c0085f8021a1891e4d3f6f0154..46dc7fd7e596a3f40c9d03d486e70ece67bab7b3 100644 (file)
@@ -1,4 +1,4 @@
-/*-*- Mode: C; c-basic-offset: 8 -*-*/
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
 
 #ifndef foosddaemonhfoo
 #define foosddaemonhfoo
 
 #ifndef foosddaemonhfoo
 #define foosddaemonhfoo
@@ -49,7 +49,7 @@ extern "C" {
   - Detection of systemd boots
 
   You may compile this with -DDISABLE_SYSTEMD to disable systemd
   - Detection of systemd boots
 
   You may compile this with -DDISABLE_SYSTEMD to disable systemd
-  support. This make all those calls NOPs that are directly related to
+  support. This makes all those calls NOPs that are directly related to
   systemd (i.e. only sd_is_xxx() will stay useful).
 
   Since this is drop-in code we don't want any of our symbols to be
   systemd (i.e. only sd_is_xxx() will stay useful).
 
   Since this is drop-in code we don't want any of our symbols to be
@@ -63,20 +63,22 @@ extern "C" {
 
   This should compile on non-Linux systems, too, but with the
   exception of the sd_is_xxx() calls all functions will become NOPs.
 
   This should compile on non-Linux systems, too, but with the
   exception of the sd_is_xxx() calls all functions will become NOPs.
+
+  See sd-daemon(7) for more information.
 */
 
 */
 
+#ifndef _sd_printf_attr_
 #if __GNUC__ >= 4
 #define _sd_printf_attr_(a,b) __attribute__ ((format (printf, a, b)))
 #if __GNUC__ >= 4
 #define _sd_printf_attr_(a,b) __attribute__ ((format (printf, a, b)))
-#define _sd_hidden_ __attribute__ ((visibility("hidden")))
 #else
 #define _sd_printf_attr_(a,b)
 #else
 #define _sd_printf_attr_(a,b)
-#define _sd_hidden_
+#endif
 #endif
 
 /*
   Log levels for usage on stderr:
 
 #endif
 
 /*
   Log levels for usage on stderr:
 
-          fprintf(stderr, SD_NOTICE "Hello World!");
+          fprintf(stderr, SD_NOTICE "Hello World!\n");
 
   This is similar to printk() usage in the kernel.
 */
 
   This is similar to printk() usage in the kernel.
 */
@@ -104,8 +106,10 @@ extern "C" {
   sure they are not passed on to child processes. If FD_CLOEXEC shall
   not be set, the caller needs to unset it after this call for all file
   descriptors that are used.
   sure they are not passed on to child processes. If FD_CLOEXEC shall
   not be set, the caller needs to unset it after this call for all file
   descriptors that are used.
+
+  See sd_listen_fds(3) for more information.
 */
 */
-int sd_listen_fds(int unset_environment) _sd_hidden_;
+int sd_listen_fds(int unset_environment);
 
 /*
   Helper call for identifying a passed file descriptor. Returns 1 if
 
 /*
   Helper call for identifying a passed file descriptor. Returns 1 if
@@ -114,8 +118,22 @@ int sd_listen_fds(int unset_environment) _sd_hidden_;
   not be done and the call only verifies if the file descriptor
   refers to a FIFO. Returns a negative errno style error code on
   failure.
   not be done and the call only verifies if the file descriptor
   refers to a FIFO. Returns a negative errno style error code on
   failure.
+
+  See sd_is_fifo(3) for more information.
+*/
+int sd_is_fifo(int fd, const char *path);
+
+/*
+  Helper call for identifying a passed file descriptor. Returns 1 if
+  the file descriptor is a special character device on the file
+  system stored under the specified path, 0 otherwise.
+  If path is NULL a path name check will not be done and the call
+  only verifies if the file descriptor refers to a special character.
+  Returns a negative errno style error code on failure.
+
+  See sd_is_special(3) for more information.
 */
 */
-int sd_is_fifo(int fd, const char *path) _sd_hidden_;
+int sd_is_special(int fd, const char *path);
 
 /*
   Helper call for identifying a passed file descriptor. Returns 1 if
 
 /*
   Helper call for identifying a passed file descriptor. Returns 1 if
@@ -128,8 +146,10 @@ int sd_is_fifo(int fd, const char *path) _sd_hidden_;
   been called) If listening is == 0 it is verified that the socket is
   not in listening mode. If listening is < 0 no listening mode check
   is done. Returns a negative errno style error code on failure.
   been called) If listening is == 0 it is verified that the socket is
   not in listening mode. If listening is < 0 no listening mode check
   is done. Returns a negative errno style error code on failure.
+
+  See sd_is_socket(3) for more information.
 */
 */
-int sd_is_socket(int fd, int family, int type, int listening) _sd_hidden_;
+int sd_is_socket(int fd, int family, int type, int listening);
 
 /*
   Helper call for identifying a passed file descriptor. Returns 1 if
 
 /*
   Helper call for identifying a passed file descriptor. Returns 1 if
@@ -140,8 +160,10 @@ int sd_is_socket(int fd, int family, int type, int listening) _sd_hidden_;
   done. If port is 0 a socket port check will not be done. The
   listening flag is used the same way as in sd_is_socket(). Returns a
   negative errno style error code on failure.
   done. If port is 0 a socket port check will not be done. The
   listening flag is used the same way as in sd_is_socket(). Returns a
   negative errno style error code on failure.
+
+  See sd_is_socket_inet(3) for more information.
 */
 */
-int sd_is_socket_inet(int fd, int family, int type, int listening, uint16_t port) _sd_hidden_;
+int sd_is_socket_inet(int fd, int family, int type, int listening, uint16_t port);
 
 /*
   Helper call for identifying a passed file descriptor. Returns 1 if
 
 /*
   Helper call for identifying a passed file descriptor. Returns 1 if
@@ -154,18 +176,28 @@ int sd_is_socket_inet(int fd, int family, int type, int listening, uint16_t port
   socket path in path (including the initial 0 byte). The listening
   flag is used the same way as in sd_is_socket(). Returns a negative
   errno style error code on failure.
   socket path in path (including the initial 0 byte). The listening
   flag is used the same way as in sd_is_socket(). Returns a negative
   errno style error code on failure.
+
+  See sd_is_socket_unix(3) for more information.
 */
 */
-int sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t length) _sd_hidden_;
+int sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t length);
 
 /*
 
 /*
-  Informs systemd about changed daemon state. This takes a numeber of
-  newline seperated environment-style variable assignments in a
-  string. The following strings are known:
+  Helper call for identifying a passed file descriptor. Returns 1 if
+  the file descriptor is a POSIX Message Queue of the specified name,
+  0 otherwise. If path is NULL a message queue name check is not
+  done. Returns a negative errno style error code on failure.
+*/
+int sd_is_mq(int fd, const char *path);
+
+/*
+  Informs systemd about changed daemon state. This takes a number of
+  newline separated environment-style variable assignments in a
+  string. The following variables are known:
 
      READY=1      Tells systemd that daemon startup is finished (only
                   relevant for services of Type=notify). The passed
                   argument is a boolean "1" or "0". Since there is
 
      READY=1      Tells systemd that daemon startup is finished (only
                   relevant for services of Type=notify). The passed
                   argument is a boolean "1" or "0". Since there is
-                  little value in signalling non-readiness the only
+                  little value in signaling non-readiness the only
                   value daemons should send is "READY=1".
 
      STATUS=...   Passes a single-line status string back to systemd
                   value daemons should send is "READY=1".
 
      STATUS=...   Passes a single-line status string back to systemd
@@ -185,7 +217,8 @@ 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"
 
      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.
+  Daemons can choose to send additional variables. However, it is
+  recommended to prefix variable names not listed above with X_.
 
   Returns a negative errno-style error code on failure. Returns > 0
   if systemd could be notified, 0 if it couldn't possibly because
 
   Returns a negative errno-style error code on failure. Returns > 0
   if systemd could be notified, 0 if it couldn't possibly because
@@ -197,8 +230,10 @@ int sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t
      sd_notify(0, "READY=1");
 
   See sd_notifyf() for more complete examples.
      sd_notify(0, "READY=1");
 
   See sd_notifyf() for more complete examples.
+
+  See sd_notify(3) for more information.
 */
 */
-int sd_notify(int unset_environment, const char *state) _sd_hidden_;
+int sd_notify(int unset_environment, const char *state);
 
 /*
   Similar to sd_notify() but takes a format string.
 
 /*
   Similar to sd_notify() but takes a format string.
@@ -217,8 +252,10 @@ int sd_notify(int unset_environment, const char *state) _sd_hidden_;
                    "ERRNO=%i",
                    strerror(errno),
                    errno);
                    "ERRNO=%i",
                    strerror(errno),
                    errno);
+
+  See sd_notifyf(3) for more information.
 */
 */
-int sd_notifyf(int unset_environment, const char *format, ...) _sd_printf_attr_(2,3) _sd_hidden_;
+int sd_notifyf(int unset_environment, const char *format, ...) _sd_printf_attr_(2,3);
 
 /*
   Returns > 0 if the system was booted with systemd. Returns < 0 on
 
 /*
   Returns > 0 if the system was booted with systemd. Returns < 0 on
@@ -227,9 +264,11 @@ int sd_notifyf(int unset_environment, const char *format, ...) _sd_printf_attr_(
   fine. You should NOT protect them with a call to this function. Also
   note that this function checks whether the system, not the user
   session is controlled by systemd. However the functions above work
   fine. You should NOT protect them with a call to this function. Also
   note that this function checks whether the system, not the user
   session is controlled by systemd. However the functions above work
-  for both session and system services.
+  for both user and system services.
+
+  See sd_booted(3) for more information.
 */
 */
-int sd_booted(void) _sd_hidden_;
+int sd_booted(void);
 
 #ifdef __cplusplus
 }
 
 #ifdef __cplusplus
 }