166400196e612c13fe751305e340a9999435f6a3
[framework/appfw/aul-1.git] / include / app_sock.h
1 /*
2  *  aul
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Jayoun Lee <airjany@samsung.com>, Sewook Park <sewook7.park@samsung.com>, Jaeho Lee <jaeho81.lee@samsung.com>
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  */
21
22
23 #ifndef __APP_PKT_H_
24 #define __APP_PKT_H_
25
26 #include <unistd.h>
27 #define __USE_GNU
28 #include <sys/socket.h>
29 #include <linux/un.h>
30
31 enum app_cmd {
32         APP_START,
33         APP_OPEN,
34         APP_RESUME,
35         APP_RESUME_BY_PID,
36         APP_TERM_BY_PID,
37         APP_TERM_BY_PID_WITHOUT_RESTART,
38         APP_RESULT,
39         APP_START_RES,
40         APP_CANCEL,
41         APP_KILL_BY_PID,
42         APP_ADD_HISTORY,
43         APP_RUNNING_INFO,
44         APP_RUNNING_INFO_MEMORY,
45         APP_RUNNING_INFO_RESULT,
46         APP_IS_RUNNING,
47         APP_GET_APPID_BYPID,
48         APP_GET_PKGID_BYPID,
49         APP_GET_INFO_OK,
50         APP_GET_INFO_ERROR,
51         APP_KEY_EVENT,
52         APP_KEY_RESERVE,
53         APP_KEY_RELEASE,
54         APP_STATUS_UPDATE,
55         APP_RELEASED,
56         APP_RUNNING_LIST_UPDATE,
57         APP_TERM_REQ_BY_PID,
58         APP_START_ASYNC,
59         APP_TERM_BY_PID_ASYNC,
60 #ifdef _APPFW_FEATURE_MULTI_INSTANCE
61         APP_START_MULTI_INSTANCE,
62 #endif
63 #ifdef _APPFW_FEATURE_VISIBILITY_CHECK_BY_LCD_STATUS
64         APP_PAUSE_LCD_OFF,
65         APP_RESUME_LCD_ON,
66 #endif
67 };
68
69 #define AUL_SOCK_PREFIX "/tmp/alaunch"
70 #define AUL_SOCK_MAXBUFF 65535
71 #define LAUNCHPAD_PID -1
72 #define WEB_LAUNCHPAD_PID -3
73 #ifdef _APPFW_FEATURE_DEBUG_LAUNCHPAD
74 #define DEBUG_LAUNCHPAD_PID -4
75 #endif
76 #ifdef _APPFW_FEATURE_PROCESS_POOL
77 #define PROCESS_POOL_LAUNCHPAD_PID -5
78 #endif
79 #ifdef _APPFW_FEATURE_NATIVE_LAUNCHPAD
80 #define NATIVE_LAUNCHPAD_PID -6
81 #endif
82 #define ELOCALLAUNCH_ID 128
83 #define EILLEGALACCESS 127
84 #define ETERMINATING 126
85 #define ENOLAUNCHPAD 125
86 #ifdef _APPFW_FEATURE_APP_CONTROL_LITE
87 #define EUGLOCAL_LAUNCH 124
88 #endif
89 #define EREJECTED 123
90
91
92 typedef struct _app_pkt_t {
93         int cmd;
94         int len;
95         unsigned char data[1];
96 } app_pkt_t;
97
98 int __create_server_sock(int pid);
99 int __create_client_sock(int pid);
100 int __app_send_raw(int pid, int cmd, unsigned char *kb_data, int datalen);
101 int __app_send_raw_with_noreply(int pid, int cmd, unsigned char *kb_data, int datalen);
102 int __app_send_raw_with_delay_reply(int pid, int cmd, unsigned char *kb_data, int datalen);
103 app_pkt_t *__app_recv_raw(int fd, int *clifd, struct ucred *cr);
104 app_pkt_t *__app_send_cmd_with_result(int pid, int cmd, unsigned char *kb_data, int datalen);
105
106
107 #endif
108