1aa4bc935f82c6a427ff617e74b88e24615c3de1
[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 /*
120  * Resource daemon
121  */
122 #define RESOURCED_BUS_NAME                  "org.tizen.resourced"
123 #define RESOURCED_OBJECT_PATH               "/Org/Tizen/ResourceD"
124 #define RESOURCED_INTERFACE_NAME            RESOURCED_BUS_NAME
125
126 #define RESOURCED_PATH_PROCESS              RESOURCED_OBJECT_PATH"/Process"
127 #define RESOURCED_INTERFACE_PROCESS         RESOURCED_INTERFACE_NAME".process"
128 #define RESOURCED_METHOD_ACTIVE             "Active"
129
130 /*
131  * Popup launcher
132  */
133 #define POPUP_BUS_NAME                      "org.tizen.system.popup"
134 #define POPUP_OBJECT_PATH                   "/Org/Tizen/System/Popup"
135 #define POPUP_INTERFACE_NAME                POPUP_BUS_NAME
136 /* LED */
137 #define POPUP_PATH_LED                      POPUP_OBJECT_PATH"/Led"
138 #define POPUP_INTERFACE_LED                 POPUP_INTERFACE_NAME".Led"
139 /* TICKER */
140 #define POPUP_PATH_TICKER                   POPUP_OBJECT_PATH"/Ticker"
141 #define POPUP_INTERFACE_TICKER              POPUP_INTERFACE_NAME".Ticker"
142 /* Power off */
143 #define POPUP_PATH_POWEROFF                 POPUP_OBJECT_PATH"/Poweroff"
144 #define POPUP_INTERFACE_POWEROFF            POPUP_INTERFACE_NAME".Poweroff"
145 /* Low battery */
146 #define POPUP_PATH_LOWBAT                   POPUP_OBJECT_PATH"/Lowbat"
147 #define POPUP_INTERFACE_LOWBAT              POPUP_INTERFACE_NAME".Lowbat"
148 /* Low memory */
149 #define POPUP_PATH_LOWMEM                   POPUP_OBJECT_PATH"/Lowmem"
150 #define POPUP_INTERFACE_LOWMEM              POPUP_INTERFACE_NAME".Lowmem"
151 /* MMC */
152 #define POPUP_PATH_MMC                      POPUP_OBJECT_PATH"/Mmc"
153 #define POPUP_INTERFACE_MMC                 POPUP_INTERFACE_NAME".Mmc"
154 /* USB */
155 #define POPUP_PATH_USB                      POPUP_OBJECT_PATH"/Usb"
156 #define POPUP_INTERFACE_USB                 POPUP_INTERFACE_NAME".Usb"
157 /* USB otg */
158 #define POPUP_PATH_USBOTG                   POPUP_OBJECT_PATH"/Usbotg"
159 #define POPUP_INTERFACE_USBOTG              POPUP_INTERFACE_NAME".Usbotg"
160 /* USB host */
161 #define POPUP_PATH_USBHOST                  POPUP_OBJECT_PATH"/Usbhost"
162 #define POPUP_INTERFACE_USBHOST             POPUP_INTERFACE_NAME".Usbhost"
163 /* System */
164 #define POPUP_PATH_SYSTEM                   POPUP_OBJECT_PATH"/System"
165 #define POPUP_INTERFACE_SYSTEM              POPUP_INTERFACE_NAME".System"
166 /* Crash */
167 #define POPUP_PATH_CRASH                    POPUP_OBJECT_PATH"/Crash"
168 #define POPUP_INTERFACE_CRASH               POPUP_INTERFACE_NAME".Crash"
169 /* ODE */
170 #define POPUP_PATH_ODE                      POPUP_OBJECT_PATH"/Ode"
171 #define POPUP_INTERFACE_ODE                 POPUP_INTERFACE_NAME".Ode"
172 /* Battery */
173 #define POPUP_PATH_BATTERY                  POPUP_OBJECT_PATH"/Battery"
174 #define POPUP_INTERFACE_BATTERY             POPUP_INTERFACE_NAME".Battery"
175 /* Servant */
176 #define POPUP_PATH_SERVANT                  POPUP_OBJECT_PATH"/Servant"
177 #define POPUP_IFACE_SERVANT                 POPUP_INTERFACE_NAME".Servant"
178
179 #define POPUP_PATH_APP                      POPUP_OBJECT_PATH"/Apps"
180 #define POPUP_IFACE_APP                     POPUP_BUS_NAME".Apps"
181
182 #define POPUP_METHOD_LAUNCH                 "PopupLaunch"
183 #define POPUP_METHOD_TERMINATE              "AppTerminateByPid"
184 #define POPUP_KEY_CONTENT                   "_SYSPOPUP_CONTENT_"
185 #define POPUP_METHOD_SCREENOFF_TTS          "ScreenOffTts"
186
187 /*
188  * Crash daemon
189  */
190 #define CRASHD_BUS_NAME                     "org.tizen.system.crashd"
191 #define CRASHD_OBJECT_PATH                  "/Org/Tizen/System/CrashD"
192 #define CRASHD_INTERFACE_NAME               CRASHD_BUS_NAME
193
194 #define CRASHD_PATH_CRASH                   CRASHD_OBJECT_PATH"/Crash"
195 #define CRASHD_INTERFACE_CRASH              CRASHD_INTERFACE_NAME".Crash"
196
197 struct dbus_byte {
198         const char *data;
199         int size;
200 };
201
202 int append_variant(DBusMessageIter *iter, const char *sig, char *param[]);
203
204 DBusMessage *dbus_method_sync_with_reply(const char *dest, const char *path,
205                 const char *interface, const char *method,
206                 const char *sig, char *param[]);
207
208 int dbus_method_sync(const char *dest, const char *path,
209                 const char *interface, const char *method,
210                 const char *sig, char *param[]);
211
212 int dbus_method_async(const char *dest, const char *path,
213                 const char *interface, const char *method,
214                 const char *sig, char *param[]);
215
216 typedef void (*dbus_pending_cb)(void *data, DBusMessage *msg, DBusError *err);
217
218 int dbus_method_async_with_reply(const char *dest, const char *path,
219                 const char *interface, const char *method,
220                 const char *sig, char *param[], dbus_pending_cb cb, int timeout, void *data);
221 #endif