summaryrefslogtreecommitdiff
path: root/src/shared/dbus.h
blob: 74c44a0aed1f4a6d5cd708008f1a9e9a55352d5b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
/*
 * deviced
 *
 * Copyright (c) 2012 - 2013 Samsung Electronics Co., Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the License);
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


#ifndef __DBUS_H__
#define __DBUS_H__

#include <dbus/dbus.h>
#include <stdarg.h>

/*
 * Template
 *
#define XXX_BUS_NAME                        "org.tizen.system.XXX"
#define XXX_OBJECT_PATH                     "/Org/Tizen/System/XXX"
#define XXX_INTERFACE_NAME                  XXX_BUS_NAME
#define XXX_PATH_YYY                        XXX_OBJECT_PATH"/YYY"
#define XXX_INTERFACE_YYY                   XXX_INTERFACE_NAME".YYY"
#define XXX_SIGNAL_ZZZ                      "ZZZ"
#define XXX_METHOD_ZZZ                      "ZZZ"
 */

/*
 * DBus daemon
 */
#define DBUS_BUS_NAME                       "org.freedesktop.DBus"
#define DBUS_OBJECT_PATH                    "/org/freedesktop/DBus"
#define DBUS_INTERFACE_NAME                 DBUS_BUS_NAME

/*
 * Device daemon
 */
#define DEVICED_BUS_NAME                    "org.tizen.system.deviced"
#define DEVICED_OBJECT_PATH                 "/Org/Tizen/System/DeviceD"
#define DEVICED_INTERFACE_NAME              DEVICED_BUS_NAME
/* Core service: get/set device status operations about device */
#define DEVICED_PATH_CORE                   DEVICED_OBJECT_PATH"/Core"
#define DEVICED_INTERFACE_CORE              DEVICED_INTERFACE_NAME".core"
/* Display service: start/stop display(pm), get/set brightness operations about display */
#define DEVICED_PATH_DISPLAY                DEVICED_OBJECT_PATH"/Display"
#define DEVICED_INTERFACE_DISPLAY           DEVICED_INTERFACE_NAME".display"
/* Pass service: start/stop pass operations about pass */
#define DEVICED_PATH_PASS                   DEVICED_OBJECT_PATH"/Pass"
#define DEVICED_INTERFACE_PASS              DEVICED_INTERFACE_NAME".pass"
/* Power service: set resetkey disable operations about power */
#define DEVICED_PATH_POWER                  DEVICED_OBJECT_PATH"/Power"
#define DEVICED_INTERFACE_POWER             DEVICED_INTERFACE_NAME".power"
/* Storage service: get storage size operatioins about storage */
#define DEVICED_PATH_STORAGE                DEVICED_OBJECT_PATH"/Storage"
#define DEVICED_INTERFACE_STORAGE           DEVICED_INTERFACE_NAME".storage"
/* ODE service: request ode popup result operatioins about storage */
#define DEVICED_PATH_SDE                    DEVICED_OBJECT_PATH"/Sde"
#define DEVICED_INTERFACE_SDE               DEVICED_INTERFACE_NAME".sde"
#define DEVICED_PATH_ODE                    DEVICED_OBJECT_PATH"/Ode"
#define DEVICED_INTERFACE_ODE               DEVICED_INTERFACE_NAME".ode"
/* Lowmem service: get critical low status operations about Lowmem */
#define DEVICED_PATH_LOWMEM                 DEVICED_OBJECT_PATH"/Lowmem"
#define DEVICED_INTERFACE_LOWMEM            DEVICED_INTERFACE_NAME".lowmem"
/* Poweroff service: get power off status operations about Poweroff */
#define DEVICED_PATH_POWEROFF               DEVICED_OBJECT_PATH"/PowerOff"
#define DEVICED_INTERFACE_POWEROFF          DEVICED_INTERFACE_NAME".PowerOff"
/* Led service: play/stop led operations about led */
#define DEVICED_PATH_LED                    DEVICED_OBJECT_PATH"/Led"
#define DEVICED_INTERFACE_LED               DEVICED_INTERFACE_NAME".Led"
/* Block service: manage block device */
#define STORAGE_BUS_NAME                    "org.tizen.system.storage"
#define STORAGE_OBJECT_PATH                 "/Org/Tizen/System/Storage"
#define STORAGE_INTERFACE_NAME              STORAGE_BUS_NAME
#define DEVICED_PATH_BLOCK                  STORAGE_OBJECT_PATH"/Block"
#define DEVICED_PATH_BLOCK_MANAGER          DEVICED_PATH_BLOCK"/Manager"
#define DEVICED_INTERFACE_BLOCK_MANAGER     STORAGE_INTERFACE_NAME".BlockManager"
/* MMC service: mount/unmount/format mmc operations about mmc */
#define DEVICED_PATH_MMC                    DEVICED_OBJECT_PATH"/Mmc"
#define DEVICED_INTERFACE_MMC               DEVICED_INTERFACE_NAME".Mmc"
/* Process service: operations about process */
#define DEVICED_PATH_PROCESS                DEVICED_OBJECT_PATH"/Process"
#define DEVICED_INTERFACE_PROCESS           DEVICED_INTERFACE_NAME".Process"
/* Key service: operations about key */
#define DEVICED_PATH_KEY                    DEVICED_OBJECT_PATH"/Key"
#define DEVICED_INTERFACE_KEY               DEVICED_INTERFACE_NAME".Key"
/* USB client service: change usb connection mode */
#define DEVICED_PATH_USB                    DEVICED_OBJECT_PATH"/Usb"
#define DEVICED_INTERFACE_USB               DEVICED_INTERFACE_NAME".Usb"
/* USB start/stop service: operations about usb start/stop */
#define DEVICED_PATH_USB_CONTROL            DEVICED_OBJECT_PATH"/UsbControl"
#define DEVICED_INTERFACE_USB_CONTROL       DEVICED_INTERFACE_NAME".UsbControl"
/* USB host service: operations about usb start/stop */
#define DEVICED_PATH_USBHOST                DEVICED_OBJECT_PATH"/Usbhost"
#define DEVICED_INTERFACE_USBHOST           DEVICED_INTERFACE_NAME".Usbhost"
/* Sysnoti service */
#define DEVICED_PATH_SYSNOTI                DEVICED_OBJECT_PATH"/SysNoti"
#define DEVICED_INTERFACE_SYSNOTI           DEVICED_INTERFACE_NAME".SysNoti"
/* ExtCon service */
#define DEVICED_PATH_EXTCON                 DEVICED_OBJECT_PATH"/ExtCon"
#define DEVICED_INTERFACE_EXTCON            DEVICED_INTERFACE_NAME".ExtCon"
/* Battery service */
#define DEVICED_PATH_BATTERY                DEVICED_OBJECT_PATH"/Battery"
#define DEVICED_INTERFACE_BATTERY           DEVICED_INTERFACE_NAME".Battery"
/* Time service */
#define DEVICED_PATH_TIME                   DEVICED_OBJECT_PATH"/Time"
#define DEVICED_INTERFACE_TIME              DEVICED_INTERFACE_NAME".Time"
/* IR service */
#define DEVICED_PATH_IR                     DEVICED_OBJECT_PATH"/Ir"
#define DEVICED_INTERFACE_IR                DEVICED_INTERFACE_NAME".ir"
/* USB_HOST_TEST service */
#define DEVICED_PATH_USB_HOST_TEST          DEVICED_OBJECT_PATH"/UsbHostTest"
#define DEVICED_INTERFACE_USB_HOST_TEST     DEVICED_INTERFACE_NAME".UsbHostTest"

/* HDMICEC service: status check about gpio */
#define DEVICED_PATH_HDMICEC                    DEVICED_OBJECT_PATH"/HdmiCec"
#define DEVICED_INTERFACE_HDMICEC               DEVICED_INTERFACE_NAME".HdmiCec"

/* Tzip service: Archive file system */
#define DEVICED_PATH_TZIP                    DEVICED_OBJECT_PATH"/Tzip"
#define DEVICED_INTERFACE_TZIP               DEVICED_INTERFACE_NAME".Tzip"

/*
 * Vibrator daemon
 */
#define VIBRATOR_BUS_NAME                   "org.tizen.system.vibrator"
#define VIBRATOR_OBJECT_PATH                "/Org/Tizen/System/Vibrator"
#define VIBRATOR_INTERFACE_NAME              VIBRATOR_BUS_NAME
/* Core service: get/set device status operations about device */
#define VIBRATOR_PATH_CORE                   VIBRATOR_OBJECT_PATH"/Core"
#define VIBRATOR_INTERFACE_CORE              VIBRATOR_INTERFACE_NAME".core"

#define VIBRATOR_PATH_HAPTIC                 VIBRATOR_OBJECT_PATH"/Haptic"
#define VIBRATOR_INTERFACE_HAPTIC            VIBRATOR_INTERFACE_NAME".haptic"

/*
 * Resource daemon
 */
#define RESOURCED_BUS_NAME                  "org.tizen.resourced"
#define RESOURCED_OBJECT_PATH               "/Org/Tizen/ResourceD"
#define RESOURCED_INTERFACE_NAME            RESOURCED_BUS_NAME

#define RESOURCED_PATH_PROCESS              RESOURCED_OBJECT_PATH"/Process"
#define RESOURCED_INTERFACE_PROCESS         RESOURCED_INTERFACE_NAME".process"
#define RESOURCED_METHOD_ACTIVE             "Active"

#define RESOURCED_PATH_FREEZER              RESOURCED_OBJECT_PATH"/Freezer"
#define RESOURCED_INTERFACE_FREEZER         RESOURCED_INTERFACE_NAME".freezer"

#define RESOURCED_PATH_SLUGGISH              RESOURCED_OBJECT_PATH"/Sluggish"
#define RESOURCED_INTERFACE_SLUGGISH         RESOURCED_INTERFACE_NAME".sluggish"
#define RESOURCED_SIGNAL_SLUGGISH			"SluggishDetected"

#define RESOURCED_PATH_LOGGING              RESOURCED_OBJECT_PATH"/Logging"
#define RESOURCED_INTERFACE_LOGGING         RESOURCED_INTERFACE_NAME".logging"
/*
 * Popup launcher
 */
#define POPUP_BUS_NAME                      "org.tizen.system.popup"
#define POPUP_OBJECT_PATH                   "/Org/Tizen/System/Popup"
#define POPUP_INTERFACE_NAME                POPUP_BUS_NAME
/* LED */
#define POPUP_PATH_LED                      POPUP_OBJECT_PATH"/Led"
#define POPUP_INTERFACE_LED                 POPUP_INTERFACE_NAME".Led"
/* Notification */
#define POPUP_PATH_NOTI                     POPUP_OBJECT_PATH"/Noti"
#define POPUP_INTERFACE_NOTI                POPUP_INTERFACE_NAME".Noti"
/* Power key longpress */
#define POPUP_PATH_POWERKEY                 POPUP_OBJECT_PATH"/Powerkey"
#define POPUP_INTERFACE_POWERKEY            POPUP_INTERFACE_NAME".Powerkey"
/* Low battery */
#define POPUP_PATH_LOWBAT                   POPUP_OBJECT_PATH"/Lowbat"
#define POPUP_INTERFACE_LOWBAT              POPUP_INTERFACE_NAME".Lowbat"
/* Low memory */
#define POPUP_PATH_LOWMEM                   POPUP_OBJECT_PATH"/Lowmem"
#define POPUP_INTERFACE_LOWMEM              POPUP_INTERFACE_NAME".Lowmem"
/* MMC */
#define POPUP_PATH_MMC                      POPUP_OBJECT_PATH"/Mmc"
#define POPUP_INTERFACE_MMC                 POPUP_INTERFACE_NAME".Mmc"
/* USB */
#define POPUP_PATH_USB                      POPUP_OBJECT_PATH"/Usb"
#define POPUP_INTERFACE_USB                 POPUP_INTERFACE_NAME".Usb"
/* USB otg */
#define POPUP_PATH_USBOTG                   POPUP_OBJECT_PATH"/Usbotg"
#define POPUP_INTERFACE_USBOTG              POPUP_INTERFACE_NAME".Usbotg"
/* USB host */
#define POPUP_PATH_USBHOST                  POPUP_OBJECT_PATH"/Usbhost"
#define POPUP_INTERFACE_USBHOST             POPUP_INTERFACE_NAME".Usbhost"
/* System */
#define POPUP_PATH_SYSTEM                   POPUP_OBJECT_PATH"/System"
#define POPUP_INTERFACE_SYSTEM              POPUP_INTERFACE_NAME".System"
/* Overheat */
#define POPUP_PATH_OVERHEAT                 POPUP_OBJECT_PATH"/Overheat"
#define POPUP_INTERFACE_OVERHEAT            POPUP_INTERFACE_NAME".Overheat"
/* Crash */
#define POPUP_PATH_CRASH                    POPUP_OBJECT_PATH"/Crash"
#define POPUP_INTERFACE_CRASH               POPUP_INTERFACE_NAME".Crash"
/* Servant */
#define POPUP_PATH_SERVANT                  POPUP_OBJECT_PATH"/Servant"
#define POPUP_IFACE_SERVANT                 POPUP_INTERFACE_NAME".Servant"

#define POPUP_PATH_APP                      POPUP_OBJECT_PATH"/Apps"
#define POPUP_IFACE_APP                     POPUP_BUS_NAME".Apps"

#define POPUP_METHOD_LAUNCH                 "PopupLaunch"
#define POPUP_METHOD_TERMINATE              "AppTerminateByPid"
#define POPUP_KEY_CONTENT                   "_SYSPOPUP_CONTENT_"

/*
 * Crash daemon
 */
#define CRASHD_BUS_NAME                     "org.tizen.system.crashd"
#define CRASHD_OBJECT_PATH                  "/Org/Tizen/System/CrashD"
#define CRASHD_INTERFACE_NAME               CRASHD_BUS_NAME

#define CRASHD_PATH_CRASH                   CRASHD_OBJECT_PATH"/Crash"
#define CRASHD_INTERFACE_CRASH              CRASHD_INTERFACE_NAME".Crash"



/***************************************************************/
/* Experimental for Specific device - contact to deviced owner */
/***************************************************************/

/* Hall service: get hall status operations about hall */
#define DEVICED_PATH_HALL                   DEVICED_OBJECT_PATH"/Hall"
#define DEVICED_INTERFACE_HALL              DEVICED_INTERFACE_NAME".hall"
/* Cpu service: operations about cpu */
#define DEVICED_PATH_CPU                    DEVICED_OBJECT_PATH"/Cpu"
#define DEVICED_INTERFACE_CPU               DEVICED_INTERFACE_NAME".Cpu"
/* PmQos service: operations about pmqos */
#define DEVICED_PATH_PMQOS                  DEVICED_OBJECT_PATH"/PmQos"
#define DEVICED_INTERFACE_PMQOS             DEVICED_INTERFACE_NAME".PmQos"
/* Apps service */
#define DEVICED_PATH_APPS               DEVICED_OBJECT_PATH"/Apps"
#define DEVICED_INTERFACE_APPS           DEVICED_INTERFACE_NAME".Apps"
/* GPIO service: status check about gpio */
#define DEVICED_PATH_GPIO                    DEVICED_OBJECT_PATH"/Gpio"
#define DEVICED_INTERFACE_GPIO               DEVICED_INTERFACE_NAME".Gpio"
/* Board service */
#define DEVICED_PATH_BOARD                DEVICED_OBJECT_PATH"/Board"
#define DEVICED_INTERFACE_BOARD           DEVICED_INTERFACE_NAME".Board"
/* Csa service */
#define DEVICED_PATH_CSA                DEVICED_OBJECT_PATH"/Csa"
#define DEVICED_INTERFACE_CSA           DEVICED_INTERFACE_NAME".Csa"
/* dump service */
#define DUMP_SERVICE_BUS_NAME               "org.tizen.system.dumpservice"
#define DUMP_SERVICE_OBJECT_PATH            "/Org/Tizen/System/DumpService"
#define DUMP_SERVICE_INTERFACE_NAME         DUMP_SERVICE_BUS_NAME
/* Coord daemon */
#define COORD_BUS_NAME                     "org.tizen.system.coord"
#define COORD_OBJECT_PATH                  "/Org/Tizen/System/Coord"
#define COORD_INTERFACE_NAME               COORD_BUS_NAME
#define COORD_PATH_AUTOBRIGHTNESS          COORD_OBJECT_PATH"/Autobrightness"
#define COORD_INTERFACE_AUTOBRIGHTNESS     COORD_INTERFACE_NAME".autobrightness"

/* LED */
#define POPUP_PATH_LED                      POPUP_OBJECT_PATH"/Led"
#define POPUP_INTERFACE_LED                 POPUP_INTERFACE_NAME".Led"
/* ODE */
#define POPUP_PATH_ODE                      POPUP_OBJECT_PATH"/Ode"
#define POPUP_INTERFACE_ODE                 POPUP_INTERFACE_NAME".Ode"
/* Battery */
#define POPUP_PATH_BATTERY                  POPUP_OBJECT_PATH"/Battery"
#define POPUP_INTERFACE_BATTERY             POPUP_INTERFACE_NAME".Battery"
#define POPUP_METHOD_SCREENOFF_TTS          "ScreenOffTts"
/* Overheat Timer*/
#define POPUP_OVERHEAT_PATH		POPUP_OBJECT_PATH"/Overheat"
#define POPUP_OVERHEAT_INTERFACE	POPUP_INTERFACE_NAME".Overheat"

/***********************************************/
/* End of the Experimental for Specific device */
/***********************************************/



struct dbus_byte {
	const unsigned char *data;
	int size;
};

int append_variant(DBusMessageIter *iter, const char *sig, char *param[]);

DBusMessage *dbus_method_sync_with_reply(const char *dest, const char *path,
		const char *interface, const char *method,
		const char *sig, char *param[]);

int dbus_method_sync(const char *dest, const char *path,
		const char *interface, const char *method,
		const char *sig, char *param[]);

int dbus_method_sync_timeout(const char *dest, const char *path,
		const char *interface, const char *method,
		const char *sig, char *param[], int timeout);

int dbus_method_sync_pairs(const char *dest, const char *path,
		const char *interface, const char *method,
		int num, va_list args);
int dbus_method_async_pairs(const char *dest, const char *path,
		const char *interface, const char *method,
		int num, va_list args);
int dbus_method_async(const char *dest, const char *path,
		const char *interface, const char *method,
		const char *sig, char *param[]);

typedef void (*dbus_pending_cb)(void *data, DBusMessage *msg, DBusError *err);

int dbus_method_async_with_reply(const char *dest, const char *path,
		const char *interface, const char *method,
		const char *sig, char *param[], dbus_pending_cb cb, int timeout, void *data);

int check_systemd_active(void);
#endif