tizen 2.3.1 release
[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         APP_GET_CMDLINE,
68 };
69
70 #define AUL_SOCK_PREFIX "/tmp/alaunch"
71 #define AUL_SOCK_MAXBUFF 65535
72 #define LAUNCHPAD_PID -1
73 #define WEB_LAUNCHPAD_PID -3
74 #ifdef _APPFW_FEATURE_DEBUG_LAUNCHPAD
75 #define DEBUG_LAUNCHPAD_PID -4
76 #endif
77 #ifdef _APPFW_FEATURE_PROCESS_POOL
78 #define PROCESS_POOL_LAUNCHPAD_PID -5
79 #endif
80 #ifdef _APPFW_FEATURE_NATIVE_LAUNCHPAD
81 #define NATIVE_LAUNCHPAD_PID -6
82 #endif
83 #define ELOCALLAUNCH_ID 128
84 #define EILLEGALACCESS 127
85 #define ETERMINATING 126
86 #define ENOLAUNCHPAD 125
87 #ifdef _APPFW_FEATURE_APP_CONTROL_LITE
88 #define EUGLOCAL_LAUNCH 124
89 #endif
90 #define EREJECTED 123
91
92
93 typedef struct _app_pkt_t {
94         int cmd;
95         int len;
96         unsigned char data[1];
97 } app_pkt_t;
98
99 int __create_server_sock(int pid);
100 int __create_client_sock(int pid);
101 int __app_send_raw(int pid, int cmd, unsigned char *kb_data, int datalen);
102 int __app_send_raw_with_noreply(int pid, int cmd, unsigned char *kb_data, int datalen);
103 int __app_send_raw_with_delay_reply(int pid, int cmd, unsigned char *kb_data, int datalen);
104 app_pkt_t *__app_recv_raw(int fd, int *clifd, struct ucred *cr);
105 app_pkt_t *__app_send_cmd_with_result(int pid, int cmd, unsigned char *kb_data, int datalen);
106
107
108 #endif
109