diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2018-05-14 10:02:17 +0900 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2018-05-15 23:07:02 +0900 |
commit | c321885489ccb6ec6e6ededf622438f1b932575f (patch) | |
tree | 23010c90288d502e26d43b2fb1df1fe4648b34ab /src/shared/bus-util.h | |
parent | 5ed29cab4a632b3f73c1861c95979033ea1a0989 (diff) | |
download | systemd-c321885489ccb6ec6e6ededf622438f1b932575f.tar.gz |
bus-util: add more macros for defining functions of getting dbus properties
Diffstat (limited to 'src/shared/bus-util.h')
-rw-r--r-- | src/shared/bus-util.h | 31 |
1 files changed, 6 insertions, 25 deletions
diff --git a/src/shared/bus-util.h b/src/shared/bus-util.h index 74526c5e8b..a3af8d8fbc 100644 --- a/src/shared/bus-util.h +++ b/src/shared/bus-util.h @@ -157,34 +157,15 @@ int bus_log_create_error(int r); } #define ident(x) (x) -#define BUS_DEFINE_PROPERTY_GET(function, bus_type, data_type, get1) \ +#define BUS_DEFINE_PROPERTY_GET(function, bus_type, data_type, get1) \ BUS_DEFINE_PROPERTY_GET2(function, bus_type, data_type, get1, ident) +#define ref(x) (*(x)) +#define BUS_DEFINE_PROPERTY_GET_REF(function, bus_type, data_type, get) \ + BUS_DEFINE_PROPERTY_GET2(function, bus_type, data_type, ref, get) + #define BUS_DEFINE_PROPERTY_GET_ENUM(function, name, type) \ - int function(sd_bus *bus, \ - const char *path, \ - const char *interface, \ - const char *property, \ - sd_bus_message *reply, \ - void *userdata, \ - sd_bus_error *error) { \ - \ - const char *value; \ - type *field = userdata; \ - int r; \ - \ - assert(bus); \ - assert(reply); \ - assert(field); \ - \ - value = strempty(name##_to_string(*field)); \ - \ - r = sd_bus_message_append_basic(reply, 's', value); \ - if (r < 0) \ - return r; \ - \ - return 1; \ - } + BUS_DEFINE_PROPERTY_GET_REF(function, "s", type, name##_to_string) #define BUS_PROPERTY_DUAL_TIMESTAMP(name, offset, flags) \ SD_BUS_PROPERTY(name, "t", bus_property_get_usec, (offset) + offsetof(struct dual_timestamp, realtime), (flags)), \ |