+/* SPDX-License-Identifier: LGPL-2.1+ */
#ifndef foosdcommonhfoo
#define foosdcommonhfoo
/***
- This file is part of systemd.
-
- Copyright 2013 Lennart Poettering
-
systemd is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
/* This is a private header; never even think of including this directly! */
-#if __INCLUDE_LEVEL__ <= 1
-#error "Do not include _sd-common.h directly; it is a private header."
+#if defined(__INCLUDE_LEVEL__) && __INCLUDE_LEVEL__ <= 1
+# error "Do not include _sd-common.h directly; it is a private header."
#endif
+typedef void (*_sd_destroy_t)(void *userdata);
+
#ifndef _sd_printf_
# if __GNUC__ >= 4
-# define _sd_printf_(a,b) __attribute__ ((format (printf, a, b)))
+# define _sd_printf_(a,b) __attribute__((__format__(printf, a, b)))
# else
# define _sd_printf_(a,b)
# endif
#endif
#ifndef _sd_sentinel_
-# define _sd_sentinel_ __attribute__((sentinel))
+# define _sd_sentinel_ __attribute__((__sentinel__))
#endif
#ifndef _sd_packed_
-# define _sd_packed_ __attribute__((packed))
+# define _sd_packed_ __attribute__((__packed__))
#endif
#ifndef _sd_pure_
-# define _sd_pure_ __attribute__((pure))
+# define _sd_pure_ __attribute__((__pure__))
#endif
#ifndef _SD_STRINGIFY
# endif
#endif
+#ifndef _SD_ARRAY_STATIC
+# if __STDC_VERSION__ >= 199901L
+# define _SD_ARRAY_STATIC static
+# else
+# define _SD_ARRAY_STATIC
+# endif
+#endif
+
#define _SD_DEFINE_POINTER_CLEANUP_FUNC(type, func) \
static __inline__ void func##p(type **p) { \
if (*p) \