summaryrefslogtreecommitdiff
path: root/src/systemd
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2013-10-11 20:32:16 +0200
committerLennart Poettering <lennart@poettering.net>2013-10-11 20:32:16 +0200
commit77a874a3fb6f65d2308c20827f005c43bb075752 (patch)
tree077579630bf03b004f2ff998d13f9eab458737aa /src/systemd
parent992c052c34d180dd9fe6bd4f89fff3a481a729dc (diff)
bus: don't rely on gccisms/c11 in public header files.
One day sd-bus.h should become a public header file. We generally try to be conservative in language features we use in public headers (much unlike in private code), hence don't make use of anonymous unions in structs for the vtable definitions.
Diffstat (limited to 'src/systemd')
-rw-r--r--src/systemd/sd-bus-vtable.h36
-rw-r--r--src/systemd/sd-bus.h5
2 files changed, 20 insertions, 21 deletions
diff --git a/src/systemd/sd-bus-vtable.h b/src/systemd/sd-bus-vtable.h
index 5203bf1a9b..82e50d24c8 100644
--- a/src/systemd/sd-bus-vtable.h
+++ b/src/systemd/sd-bus-vtable.h
@@ -70,53 +70,53 @@ struct sd_bus_vtable {
sd_bus_property_set_t set;
size_t offset;
} property;
- };
+ } x;
};
#define SD_BUS_VTABLE_START(_flags) \
{ \
.type = _SD_BUS_VTABLE_START, \
.flags = _flags, \
- .start.element_size = sizeof(sd_bus_vtable), \
+ .x.start.element_size = sizeof(sd_bus_vtable), \
}
#define SD_BUS_METHOD(_member, _signature, _result, _handler, _flags) \
{ \
.type = _SD_BUS_VTABLE_METHOD, \
.flags = _flags, \
- .method.member = _member, \
- .method.signature = _signature, \
- .method.result = _result, \
- .method.handler = _handler, \
+ .x.method.member = _member, \
+ .x.method.signature = _signature, \
+ .x.method.result = _result, \
+ .x.method.handler = _handler, \
}
#define SD_BUS_SIGNAL(_member, _signature, _flags) \
{ \
.type = _SD_BUS_VTABLE_SIGNAL, \
.flags = _flags, \
- .signal.member = _member, \
- .signal.signature = _signature, \
+ .x.signal.member = _member, \
+ .x.signal.signature = _signature, \
}
-#define SD_BUS_PROPERTY(_member, _signature, _get, _offset, _flags) \
+#define SD_BUS_PROPERTY(_member, _signature, _get, _offset, _flags) \
{ \
.type = _SD_BUS_VTABLE_PROPERTY, \
.flags = _flags, \
- .property.member = _member, \
- .property.signature = _signature, \
- .property.get = _get, \
- .property.offset = _offset, \
+ .x.property.member = _member, \
+ .x.property.signature = _signature, \
+ .x.property.get = _get, \
+ .x.property.offset = _offset, \
}
#define SD_BUS_WRITABLE_PROPERTY(_member, _signature, _get, _set, _offset, _flags) \
{ \
.type = _SD_BUS_VTABLE_WRITABLE_PROPERTY, \
.flags = _flags, \
- .property.member = _member, \
- .property.signature = _signature, \
- .property.get = _get, \
- .property.set = _set, \
- .property.offset = _offset, \
+ .x.property.member = _member, \
+ .x.property.signature = _signature, \
+ .x.property.get = _get, \
+ .x.property.set = _set, \
+ .x.property.offset = _offset, \
}
#define SD_BUS_VTABLE_END \
diff --git a/src/systemd/sd-bus.h b/src/systemd/sd-bus.h
index 2c12cf0f7d..bbeec1302a 100644
--- a/src/systemd/sd-bus.h
+++ b/src/systemd/sd-bus.h
@@ -147,6 +147,7 @@ int sd_bus_message_get_type(sd_bus_message *m, uint8_t *type);
int sd_bus_message_get_serial(sd_bus_message *m, uint64_t *serial);
int sd_bus_message_get_reply_serial(sd_bus_message *m, uint64_t *serial);
int sd_bus_message_get_no_reply(sd_bus_message *m);
+int sd_bus_message_get_signature(sd_bus_message *m, int complete, const char **signature);
const char *sd_bus_message_get_path(sd_bus_message *m);
const char *sd_bus_message_get_interface(sd_bus_message *m);
@@ -201,8 +202,6 @@ int sd_bus_message_exit_container(sd_bus_message *m);
int sd_bus_message_peek_type(sd_bus_message *m, char *type, const char **contents);
int sd_bus_message_rewind(sd_bus_message *m, int complete);
-int sd_bus_message_get_signature(sd_bus_message *m, int complete, const char **signature);
-
/* Convenience calls */
int sd_bus_call_method(sd_bus *bus, const char *destination, const char *path, const char *interface, const char *member, sd_bus_error *error, sd_bus_message **reply, const char *types, ...);
@@ -235,8 +234,8 @@ int sd_bus_get_owner_machine_id(sd_bus *bus, const char *name, sd_id128_t *machi
/* Error structures */
-#define SD_BUS_ERROR_NULL ((sd_bus_error) {NULL, NULL, 0})
#define SD_BUS_ERROR_MAKE(name, message) ((sd_bus_error) {(name), (message), 0})
+#define SD_BUS_ERROR_NULL SD_BUS_ERROR_MAKE(NULL, NULL)
void sd_bus_error_free(sd_bus_error *e);
int sd_bus_error_setf(sd_bus_error *e, const char *name, const char *format, ...) _sd_printf_attr_(3, 0);