f4b04b808d35171eb878234590cb334e92142f54
[framework/system/deviced.git] / src / shared / dbus.h
1 /*
2  * deviced
3  *
4  * Copyright (c) 2012 - 2013 Samsung Electronics Co., Ltd.
5  *
6  * Licensed under the Apache License, Version 2.0 (the License);
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *     http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18
19
20 #ifndef __DBUS_H__
21 #define __DBUS_H__
22
23 #include <dbus/dbus.h>
24
25 /*
26  * Template
27  *
28 #define XXX_BUS_NAME                        "org.tizen.system.XXX"
29 #define XXX_OBJECT_PATH                     "/Org/Tizen/System/XXX"
30 #define XXX_INTERFACE_NAME                  XXX_BUS_NAME
31 #define XXX_PATH_YYY                        XXX_OBJECT_PATH"/YYY"
32 #define XXX_INTERFACE_YYY                   XXX_INTERFACE_NAME".YYY"
33 #define XXX_SIGNAL_ZZZ                      "ZZZ"
34 #define XXX_METHOD_ZZZ                      "ZZZ"
35  */
36
37 /*
38  * Device daemon
39  */
40 #define DEVICED_BUS_NAME                    "org.tizen.system.deviced"
41 #define DEVICED_OBJECT_PATH                 "/Org/Tizen/System/DeviceD"
42 #define DEVICED_INTERFACE_NAME              DEVICED_BUS_NAME
43 /* Core service: get/set device status operations about device */
44 #define DEVICED_PATH_CORE                   DEVICED_OBJECT_PATH"/Core"
45 #define DEVICED_INTERFACE_CORE              DEVICED_INTERFACE_NAME".core"
46 /* Display service: start/stop display(pm), get/set brightness operations about display */
47 #define DEVICED_PATH_DISPLAY                DEVICED_OBJECT_PATH"/Display"
48 #define DEVICED_INTERFACE_DISPLAY           DEVICED_INTERFACE_NAME".display"
49 /* Pass service: start/stop pass operations about pass */
50 #define DEVICED_PATH_PASS                   DEVICED_OBJECT_PATH"/Pass"
51 #define DEVICED_INTERFACE_PASS              DEVICED_INTERFACE_NAME".pass"
52 /* Hall service: get hall status operations about hall */
53 #define DEVICED_PATH_HALL                   DEVICED_OBJECT_PATH"/Hall"
54 #define DEVICED_INTERFACE_HALL              DEVICED_INTERFACE_NAME".hall"
55 /* Power service: set resetkey disable operations about power */
56 #define DEVICED_PATH_POWER                  DEVICED_OBJECT_PATH"/Power"
57 #define DEVICED_INTERFACE_POWER             DEVICED_INTERFACE_NAME".power"
58 /* Storage service: get storage size operatioins about storage */
59 #define DEVICED_PATH_STORAGE                DEVICED_OBJECT_PATH"/Storage"
60 #define DEVICED_INTERFACE_STORAGE           DEVICED_INTERFACE_NAME".storage"
61 /* ODE service: request ode popup result operatioins about storage */
62 #define DEVICED_PATH_ODE                    DEVICED_OBJECT_PATH"/Ode"
63 #define DEVICED_INTERFACE_ODE               DEVICED_INTERFACE_NAME".ode"
64 /* Haptic service: operatioins about haptic */
65 #define DEVICED_PATH_HAPTIC                 DEVICED_OBJECT_PATH"/Haptic"
66 #define DEVICED_INTERFACE_HAPTIC            DEVICED_INTERFACE_NAME".haptic"
67 /* Lowmem service: get critical low status operations about Lowmem */
68 #define DEVICED_PATH_LOWMEM                 DEVICED_OBJECT_PATH"/Lowmem"
69 #define DEVICED_INTERFACE_LOWMEM            DEVICED_INTERFACE_NAME".lowmem"
70 /* Poweroff service: get power off status operations about Poweroff */
71 #define DEVICED_PATH_POWEROFF               DEVICED_OBJECT_PATH"/PowerOff"
72 #define DEVICED_INTERFACE_POWEROFF          DEVICED_INTERFACE_NAME".PowerOff"
73 /* Led service: play/stop led operations about led */
74 #define DEVICED_PATH_LED                    DEVICED_OBJECT_PATH"/Led"
75 #define DEVICED_INTERFACE_LED               DEVICED_INTERFACE_NAME".Led"
76 /* MMC service: mount/unmount/format mmc operations about mmc */
77 #define DEVICED_PATH_MMC                    DEVICED_OBJECT_PATH"/Mmc"
78 #define DEVICED_INTERFACE_MMC               DEVICED_INTERFACE_NAME".Mmc"
79 /* Process service: operations about process */
80 #define DEVICED_PATH_PROCESS                DEVICED_OBJECT_PATH"/Process"
81 #define DEVICED_INTERFACE_PROCESS           DEVICED_INTERFACE_NAME".Process"
82 /* Key service: operations about key */
83 #define DEVICED_PATH_KEY                    DEVICED_OBJECT_PATH"/Key"
84 #define DEVICED_INTERFACE_KEY               DEVICED_INTERFACE_NAME".Key"
85 /* USB client service: change usb connection mode */
86 #define DEVICED_PATH_USB                    DEVICED_OBJECT_PATH"/Usb"
87 #define DEVICED_INTERFACE_USB               DEVICED_INTERFACE_NAME".Usb"
88 /* USB start/stop service: operations about usb start/stop */
89 #define DEVICED_PATH_USB_CONTROL            DEVICED_OBJECT_PATH"/UsbControl"
90 #define DEVICED_INTERFACE_USB_CONTROL       DEVICED_INTERFACE_NAME".UsbControl"
91 /* USB host service: operations about usb start/stop */
92 #define DEVICED_PATH_USBHOST                DEVICED_OBJECT_PATH"/Usbhost"
93 #define DEVICED_INTERFACE_USBHOST           DEVICED_INTERFACE_NAME".Usbhost"
94 /* Cpu service: operations about cpu */
95 #define DEVICED_PATH_CPU                    DEVICED_OBJECT_PATH"/Cpu"
96 #define DEVICED_INTERFACE_CPU               DEVICED_INTERFACE_NAME".Cpu"
97 /* PmQos service: operations about pmqos */
98 #define DEVICED_PATH_PMQOS                  DEVICED_OBJECT_PATH"/PmQos"
99 #define DEVICED_INTERFACE_PMQOS             DEVICED_INTERFACE_NAME".PmQos"
100 /* Sysnoti service */
101 #define DEVICED_PATH_SYSNOTI                DEVICED_OBJECT_PATH"/SysNoti"
102 #define DEVICED_INTERFACE_SYSNOTI           DEVICED_INTERFACE_NAME".SysNoti"
103 /* ExtCon service */
104 #define DEVICED_PATH_EXTCON                 DEVICED_OBJECT_PATH"/ExtCon"
105 #define DEVICED_INTERFACE_EXTCON            DEVICED_INTERFACE_NAME".ExtCon"
106 /* Battery service */
107 #define DEVICED_PATH_BATTERY                DEVICED_OBJECT_PATH"/Battery"
108 #define DEVICED_INTERFACE_BATTERY           DEVICED_INTERFACE_NAME".Battery"
109 /* Time service */
110 #define DEVICED_PATH_TIME                DEVICED_OBJECT_PATH"/Time"
111 #define DEVICED_INTERFACE_TIME           DEVICED_INTERFACE_NAME".Time"
112 /* Board service */
113 #define DEVICED_PATH_BOARD                DEVICED_OBJECT_PATH"/Board"
114 #define DEVICED_INTERFACE_BOARD           DEVICED_INTERFACE_NAME".Board"
115 /* Testmode service */
116 #define DEVICED_PATH_TESTMODE               DEVICED_OBJECT_PATH"/Testmode"
117 #define DEVICED_INTERFACE_TESTMODE           DEVICED_INTERFACE_NAME".Testmode"
118
119 /* Apps service */
120 #define DEVICED_PATH_APPS               DEVICED_OBJECT_PATH"/Apps"
121 #define DEVICED_INTERFACE_APPS           DEVICED_INTERFACE_NAME".Apps"
122
123 /* GPIO service: status check about gpio */
124 #define DEVICED_PATH_GPIO                    DEVICED_OBJECT_PATH"/Gpio"
125 #define DEVICED_INTERFACE_GPIO               DEVICED_INTERFACE_NAME".Gpio"
126
127 /* HDMICEC service: status check about gpio */
128 #define DEVICED_PATH_HDMICEC                    DEVICED_OBJECT_PATH"/HdmiCec"
129 #define DEVICED_INTERFACE_HDMICEC               DEVICED_INTERFACE_NAME".HdmiCec"
130
131 /*
132  * Resource daemon
133  */
134 #define RESOURCED_BUS_NAME                  "org.tizen.resourced"
135 #define RESOURCED_OBJECT_PATH               "/Org/Tizen/ResourceD"
136 #define RESOURCED_INTERFACE_NAME            RESOURCED_BUS_NAME
137
138 #define RESOURCED_PATH_PROCESS              RESOURCED_OBJECT_PATH"/Process"
139 #define RESOURCED_INTERFACE_PROCESS         RESOURCED_INTERFACE_NAME".process"
140 #define RESOURCED_METHOD_ACTIVE             "Active"
141
142 /*
143  * Popup launcher
144  */
145 #define POPUP_BUS_NAME                      "org.tizen.system.popup"
146 #define POPUP_OBJECT_PATH                   "/Org/Tizen/System/Popup"
147 #define POPUP_INTERFACE_NAME                POPUP_BUS_NAME
148 /* LED */
149 #define POPUP_PATH_LED                      POPUP_OBJECT_PATH"/Led"
150 #define POPUP_INTERFACE_LED                 POPUP_INTERFACE_NAME".Led"
151 /* TICKER */
152 #define POPUP_PATH_TICKER                   POPUP_OBJECT_PATH"/Ticker"
153 #define POPUP_INTERFACE_TICKER              POPUP_INTERFACE_NAME".Ticker"
154 /* Power off */
155 #define POPUP_PATH_POWEROFF                 POPUP_OBJECT_PATH"/Poweroff"
156 #define POPUP_INTERFACE_POWEROFF            POPUP_INTERFACE_NAME".Poweroff"
157 /* Low battery */
158 #define POPUP_PATH_LOWBAT                   POPUP_OBJECT_PATH"/Lowbat"
159 #define POPUP_INTERFACE_LOWBAT              POPUP_INTERFACE_NAME".Lowbat"
160 /* Low memory */
161 #define POPUP_PATH_LOWMEM                   POPUP_OBJECT_PATH"/Lowmem"
162 #define POPUP_INTERFACE_LOWMEM              POPUP_INTERFACE_NAME".Lowmem"
163 /* MMC */
164 #define POPUP_PATH_MMC                      POPUP_OBJECT_PATH"/Mmc"
165 #define POPUP_INTERFACE_MMC                 POPUP_INTERFACE_NAME".Mmc"
166 /* USB */
167 #define POPUP_PATH_USB                      POPUP_OBJECT_PATH"/Usb"
168 #define POPUP_INTERFACE_USB                 POPUP_INTERFACE_NAME".Usb"
169 /* USB otg */
170 #define POPUP_PATH_USBOTG                   POPUP_OBJECT_PATH"/Usbotg"
171 #define POPUP_INTERFACE_USBOTG              POPUP_INTERFACE_NAME".Usbotg"
172 /* USB host */
173 #define POPUP_PATH_USBHOST                  POPUP_OBJECT_PATH"/Usbhost"
174 #define POPUP_INTERFACE_USBHOST             POPUP_INTERFACE_NAME".Usbhost"
175 /* System */
176 #define POPUP_PATH_SYSTEM                   POPUP_OBJECT_PATH"/System"
177 #define POPUP_INTERFACE_SYSTEM              POPUP_INTERFACE_NAME".System"
178 /* Crash */
179 #define POPUP_PATH_CRASH                    POPUP_OBJECT_PATH"/Crash"
180 #define POPUP_INTERFACE_CRASH               POPUP_INTERFACE_NAME".Crash"
181 /* ODE */
182 #define POPUP_PATH_ODE                      POPUP_OBJECT_PATH"/Ode"
183 #define POPUP_INTERFACE_ODE                 POPUP_INTERFACE_NAME".Ode"
184 /* Battery */
185 #define POPUP_PATH_BATTERY                  POPUP_OBJECT_PATH"/Battery"
186 #define POPUP_INTERFACE_BATTERY             POPUP_INTERFACE_NAME".Battery"
187 /* Servant */
188 #define POPUP_PATH_SERVANT                  POPUP_OBJECT_PATH"/Servant"
189 #define POPUP_IFACE_SERVANT                 POPUP_INTERFACE_NAME".Servant"
190
191 #define POPUP_PATH_APP                      POPUP_OBJECT_PATH"/Apps"
192 #define POPUP_IFACE_APP                     POPUP_BUS_NAME".Apps"
193
194 #define POPUP_METHOD_LAUNCH                 "PopupLaunch"
195 #define POPUP_METHOD_TERMINATE              "AppTerminateByPid"
196 #define POPUP_KEY_CONTENT                   "_SYSPOPUP_CONTENT_"
197 #define POPUP_METHOD_SCREENOFF_TTS          "ScreenOffTts"
198
199 /*
200  * Crash daemon
201  */
202 #define CRASHD_BUS_NAME                     "org.tizen.system.crashd"
203 #define CRASHD_OBJECT_PATH                  "/Org/Tizen/System/CrashD"
204 #define CRASHD_INTERFACE_NAME               CRASHD_BUS_NAME
205
206 #define CRASHD_PATH_CRASH                   CRASHD_OBJECT_PATH"/Crash"
207 #define CRASHD_INTERFACE_CRASH              CRASHD_INTERFACE_NAME".Crash"
208
209 struct dbus_byte {
210         const char *data;
211         int size;
212 };
213
214 int append_variant(DBusMessageIter *iter, const char *sig, char *param[]);
215
216 DBusMessage *dbus_method_sync_with_reply(const char *dest, const char *path,
217                 const char *interface, const char *method,
218                 const char *sig, char *param[]);
219
220 int dbus_method_sync(const char *dest, const char *path,
221                 const char *interface, const char *method,
222                 const char *sig, char *param[]);
223
224 int dbus_method_sync_timeout(const char *dest, const char *path,
225                 const char *interface, const char *method,
226                 const char *sig, char *param[], int timeout);
227
228 int dbus_method_async(const char *dest, const char *path,
229                 const char *interface, const char *method,
230                 const char *sig, char *param[]);
231
232 typedef void (*dbus_pending_cb)(void *data, DBusMessage *msg, DBusError *err);
233
234 int dbus_method_async_with_reply(const char *dest, const char *path,
235                 const char *interface, const char *method,
236                 const char *sig, char *param[], dbus_pending_cb cb, int timeout, void *data);
237
238 int check_systemd_active(void);
239 #endif