]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/shared/bus-locator.c
hwdb: Add mapping for Xiaomi Mipad 2 bottom bezel capacitive buttons
[thirdparty/systemd.git] / src / shared / bus-locator.c
CommitLineData
db9ecf05 1/* SPDX-License-Identifier: LGPL-2.1-or-later */
54e27bb5
VC
2
3#include "bus-locator.h"
9b71e4ab 4#include "macro.h"
54e27bb5
VC
5
6const BusLocator* const bus_home_mgr = &(BusLocator){
7 .destination = "org.freedesktop.home1",
8 .path = "/org/freedesktop/home1",
9 .interface = "org.freedesktop.home1.Manager",
10};
11
12const BusLocator* const bus_import_mgr = &(BusLocator){
13 .destination ="org.freedesktop.import1",
14 .path = "/org/freedesktop/import1",
15 .interface = "org.freedesktop.import1.Manager"
16};
17
18const BusLocator* const bus_locale = &(BusLocator){
19 .destination = "org.freedesktop.locale1",
20 .path = "/org/freedesktop/locale1",
21 .interface = "org.freedesktop.locale1"
22};
23
24const BusLocator* const bus_login_mgr = &(BusLocator){
25 .destination = "org.freedesktop.login1",
26 .path = "/org/freedesktop/login1",
27 .interface = "org.freedesktop.login1.Manager"
28};
29
30const BusLocator* const bus_machine_mgr = &(BusLocator){
31 .destination ="org.freedesktop.machine1",
32 .path = "/org/freedesktop/machine1",
33 .interface = "org.freedesktop.machine1.Manager"
34};
35
36const BusLocator* const bus_network_mgr = &(BusLocator){
37 .destination = "org.freedesktop.network1",
38 .path = "/org/freedesktop/network1",
39 .interface = "org.freedesktop.network1.Manager"
40};
41
19250117
DT
42const BusLocator* const bus_oom_mgr = &(BusLocator){
43 .destination = "org.freedesktop.oom1",
44 .path = "/org/freedesktop/oom1",
45 .interface = "org.freedesktop.oom1.Manager"
46};
47
54e27bb5
VC
48const BusLocator* const bus_portable_mgr = &(BusLocator){
49 .destination = "org.freedesktop.portable1",
50 .path = "/org/freedesktop/portable1",
51 .interface = "org.freedesktop.portable1.Manager"
52};
53
54const BusLocator* const bus_resolve_mgr = &(BusLocator){
55 .destination = "org.freedesktop.resolve1",
56 .path = "/org/freedesktop/resolve1",
57 .interface = "org.freedesktop.resolve1.Manager"
58};
59
60const BusLocator* const bus_systemd_mgr = &(BusLocator){
61 .destination = "org.freedesktop.systemd1",
62 .path = "/org/freedesktop/systemd1",
63 .interface = "org.freedesktop.systemd1.Manager"
64};
65
66const BusLocator* const bus_timedate = &(BusLocator){
67 .destination = "org.freedesktop.timedate1",
68 .path = "/org/freedesktop/timedate1",
69 .interface = "org.freedesktop.timedate1"
70};
9b71e4ab 71
19250117
DT
72const BusLocator* const bus_timesync_mgr = &(BusLocator){
73 .destination = "org.freedesktop.timesync1",
74 .path = "/org/freedesktop/timesync1",
75 .interface = "org.freedesktop.timesync1.Manager"
76};
77
d2775306 78const BusLocator* const bus_hostname = &(BusLocator){
79 .destination = "org.freedesktop.hostname1",
80 .path = "/org/freedesktop/hostname1",
81 .interface = "org.freedesktop.hostname1"
82};
83
9b71e4ab
LP
84/* Shorthand flavors of the sd-bus convenience helpers with destination,path,interface strings encapsulated
85 * within a single struct. */
86int bus_call_method_async(
87 sd_bus *bus,
88 sd_bus_slot **slot,
89 const BusLocator *locator,
90 const char *member,
91 sd_bus_message_handler_t callback,
92 void *userdata,
93 const char *types, ...) {
94
95 va_list ap;
96 int r;
97
98 assert(locator);
99
100 va_start(ap, types);
101 r = sd_bus_call_method_asyncv(bus, slot, locator->destination, locator->path, locator->interface, member, callback, userdata, types, ap);
102 va_end(ap);
103
104 return r;
105}
106
107int bus_call_method(
108 sd_bus *bus,
109 const BusLocator *locator,
110 const char *member,
111 sd_bus_error *error,
112 sd_bus_message **reply,
113 const char *types, ...) {
114
115 va_list ap;
116 int r;
117
118 assert(locator);
119
120 va_start(ap, types);
121 r = sd_bus_call_methodv(bus, locator->destination, locator->path, locator->interface, member, error, reply, types, ap);
122 va_end(ap);
123
124 return r;
125}
126
127int bus_get_property(
128 sd_bus *bus,
129 const BusLocator *locator,
130 const char *member,
131 sd_bus_error *error,
132 sd_bus_message **reply,
133 const char *type) {
134
135 assert(locator);
136
137 return sd_bus_get_property(bus, locator->destination, locator->path, locator->interface, member, error, reply, type);
138}
139
140int bus_get_property_trivial(
141 sd_bus *bus,
142 const BusLocator *locator,
143 const char *member,
144 sd_bus_error *error,
145 char type, void *ptr) {
146
147 assert(locator);
148
149 return sd_bus_get_property_trivial(bus, locator->destination, locator->path, locator->interface, member, error, type, ptr);
150}
151
152int bus_get_property_string(
153 sd_bus *bus,
154 const BusLocator *locator,
155 const char *member,
156 sd_bus_error *error,
157 char **ret) {
158
159 assert(locator);
160
161 return sd_bus_get_property_string(bus, locator->destination, locator->path, locator->interface, member, error, ret);
162}
163
164int bus_get_property_strv(
165 sd_bus *bus,
166 const BusLocator *locator,
167 const char *member,
168 sd_bus_error *error,
169 char ***ret) {
170
171 assert(locator);
172
173 return sd_bus_get_property_strv(bus, locator->destination, locator->path, locator->interface, member, error, ret);
174}
175
176int bus_set_property(
177 sd_bus *bus,
178 const BusLocator *locator,
179 const char *member,
180 sd_bus_error *error,
181 const char *type, ...) {
182
183 va_list ap;
184 int r;
185
186 assert(locator);
187
188 va_start(ap, type);
189 r = sd_bus_set_propertyv(bus, locator->destination, locator->path, locator->interface, member, error, type, ap);
190 va_end(ap);
191
192 return r;
193}
194
195int bus_match_signal(
196 sd_bus *bus,
197 sd_bus_slot **ret,
198 const BusLocator *locator,
199 const char *member,
200 sd_bus_message_handler_t callback,
201 void *userdata) {
202
203 assert(locator);
204
205 return sd_bus_match_signal(bus, ret, locator->destination, locator->path, locator->interface, member, callback, userdata);
206}
207
208int bus_match_signal_async(
209 sd_bus *bus,
210 sd_bus_slot **ret,
211 const BusLocator *locator,
212 const char *member,
213 sd_bus_message_handler_t callback,
214 sd_bus_message_handler_t install_callback,
215 void *userdata) {
216
217 assert(locator);
218
219 return sd_bus_match_signal_async(bus, ret, locator->destination, locator->path, locator->interface, member, callback, install_callback, userdata);
220}
221
222int bus_message_new_method_call(
223 sd_bus *bus,
224 sd_bus_message **m,
225 const BusLocator *locator,
226 const char *member) {
227
228 assert(locator);
229
230 return sd_bus_message_new_method_call(bus, m, locator->destination, locator->path, locator->interface, member);
231}