+#ifndef SD_BUS_ERROR_MAPPING
+# define _SD_BUS_ERROR_XCONCAT(x, y) x ## y
+# define _SD_BUS_ERROR_CONCAT(x, y) _SD_BUS_ERROR_XCONCAT(x, y)
+# define SD_BUS_ERROR_MAPPING(name) \
+ __attribute((__section__("sd_bus_errnomap"))) \
+ __attribute((__used__)) \
+ const sd_bus_name_error_mapping _SD_BUS_ERROR_CONCAT(_sd_bus_errno_mapping_, name)[]
+# define SD_BUS_ERROR_MAPPING_USE(name) \
+ extern \
+ const sd_bus_name_error_mapping _SD_BUS_ERROR_CONCAT(_sd_bus_errno_mapping_, name)[]; \
+ __attribute((__used__)) \
+ static const sd_bus_name_error_mapping* \
+ _SD_BUS_ERROR_CONCAT(sd_bus_name_error_mapping_ref, __COUNTER__) \
+ = _SD_BUS_ERROR_CONCAT(_sd_bus_errno_mapping_, name);
+#endif
+
+