X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fsystemd%2Fsd-bus.h;h=e6c95590f6f5819219abef8faa6f1f6bc169cde8;hp=18acfc2ad7ededbb04521c0b5a384c948164601c;hb=455971c1493fc6dc3125d235cf4ea6102cac626d;hpb=056f95d0a70413e10e4a4ea9966baabb5a1450ed diff --git a/src/systemd/sd-bus.h b/src/systemd/sd-bus.h index 18acfc2ad..e6c95590f 100644 --- a/src/systemd/sd-bus.h +++ b/src/systemd/sd-bus.h @@ -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); @@ -322,13 +322,36 @@ 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 */ +struct sd_bus_name_error_mapping { + const char* name; + int code; +}; +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(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);