chiark / gitweb /
sd-bus: also allow setting descriptions on bus slots
[elogind.git] / src / systemd / sd-bus.h
index c95b5e7ab0388cafdb7cc810274654ba71e2b145..40c3a4a0cdf216a58eb9556cc7f3fdd71b5f1b32 100644 (file)
@@ -73,7 +73,7 @@ enum {
         SD_BUS_CREDS_AUDIT_LOGIN_UID  = 1ULL << 21,
         SD_BUS_CREDS_UNIQUE_NAME      = 1ULL << 22,
         SD_BUS_CREDS_WELL_KNOWN_NAMES = 1ULL << 23,
-        SD_BUS_CREDS_CONNECTION_NAME  = 1ULL << 24,
+        SD_BUS_CREDS_DESCRIPTION      = 1ULL << 24,
         _SD_BUS_CREDS_ALL             = (1ULL << 25) -1,
 };
 
@@ -115,7 +115,7 @@ int sd_bus_set_bus_client(sd_bus *bus, int b);
 int sd_bus_set_server(sd_bus *bus, int b, sd_id128_t server_id);
 int sd_bus_set_anonymous(sd_bus *bus, int b);
 int sd_bus_set_trusted(sd_bus *bus, int b);
-int sd_bus_set_name(sd_bus *bus, const char *name);
+int sd_bus_set_description(sd_bus *bus, const char *description);
 int sd_bus_set_monitor(sd_bus *bus, int b);
 int sd_bus_negotiate_fds(sd_bus *bus, int b);
 int sd_bus_negotiate_timestamp(sd_bus *bus, int b);
@@ -132,7 +132,7 @@ int sd_bus_is_open(sd_bus *bus);
 int sd_bus_can_send(sd_bus *bus, char type);
 int sd_bus_get_server_id(sd_bus *bus, sd_id128_t *peer);
 int sd_bus_get_owner_creds(sd_bus *bus, uint64_t creds_mask, sd_bus_creds **ret);
-int sd_bus_get_name(sd_bus *bus, const char **name);
+int sd_bus_get_description(sd_bus *bus, const char **description);
 int sd_bus_get_tid(sd_bus *bus, pid_t *tid);
 
 int sd_bus_send(sd_bus *bus, sd_bus_message *m, uint64_t *cookie);
@@ -175,6 +175,9 @@ sd_bus* sd_bus_slot_get_bus(sd_bus_slot *slot);
 void *sd_bus_slot_get_userdata(sd_bus_slot *slot);
 void *sd_bus_slot_set_userdata(sd_bus_slot *slot, void *userdata);
 
+int sd_bus_slot_set_description(sd_bus_slot *slot, const char *description);
+int sd_bus_slot_get_description(sd_bus_slot *slot, char **description);
+
 sd_bus_message* sd_bus_slot_get_current_message(sd_bus_slot *slot);
 sd_bus_message_handler_t sd_bus_slot_get_current_handler(sd_bus_slot *bus);
 void *sd_bus_slot_get_current_userdata(sd_bus_slot *slot);
@@ -322,7 +325,7 @@ int sd_bus_creds_get_audit_session_id(sd_bus_creds *c, uint32_t *sessionid);
 int sd_bus_creds_get_audit_login_uid(sd_bus_creds *c, uid_t *loginuid);
 int sd_bus_creds_get_unique_name(sd_bus_creds *c, const char **name);
 int sd_bus_creds_get_well_known_names(sd_bus_creds *c, char ***names);
-int sd_bus_creds_get_connection_name(sd_bus_creds *c, const char **name);
+int sd_bus_creds_get_description(sd_bus_creds *c, const char **name);
 
 /* Error structures */
 
@@ -334,14 +337,24 @@ typedef struct sd_bus_name_error_mapping sd_bus_name_error_mapping;
 
 #define SD_BUS_ERROR_MAKE_CONST(name, message) ((const sd_bus_error) {(name), (message), 0})
 #define SD_BUS_ERROR_NULL SD_BUS_ERROR_MAKE_CONST(NULL, NULL)
+
 #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 \
-        __attribute((__section__("sd_bus_errnomap"))) __attribute((__used__)) \
-        static const sd_bus_name_error_mapping _SD_BUS_ERROR_CONCAT(_sd_bus_errno_mapping_, __COUNTER__)[]
+#  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
 
+
 void sd_bus_error_free(sd_bus_error *e);
 int sd_bus_error_set(sd_bus_error *e, const char *name, const char *message);
 int sd_bus_error_setf(sd_bus_error *e, const char *name, const char *format, ...)  _sd_printf_(3, 4);