change usb control process name to usb-server
[framework/system/system-server.git] / ss_queue.h
1 /*
2  * Copyright 2012  Samsung Electronics Co., Ltd
3  *
4  * Licensed under the Flora License, Version 1.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.tizenopensource.org/license
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15 */
16
17
18 #ifndef __SS_QUEUE_H__
19 #define __SS_QUEUE_H__
20
21 #include "ss_sysnoti.h"
22
23 struct ss_action_entry {
24         int owner_pid;
25         void *handle;
26         char *type;
27         char *path;
28         int (*predefine_action) ();
29         int (*ui_viewable) ();
30         int (*is_accessable) (int caller_pid);
31 };
32
33 enum ss_run_state {
34         SS_STATE_INIT,
35         SS_STATE_RUNNING,
36         SS_STATE_DONE
37 };
38
39 struct ss_run_queue_entry {
40         enum ss_run_state state;
41         struct ss_action_entry *action_entry;
42         int forked_pid;
43         int argc;
44         char *argv[SYSMAN_MAXARG];
45 };
46
47 int ss_action_entry_add_internal(char *type,
48                                  int (*predefine_action) (),
49                                  int (*ui_viewable) (),
50                                  int (*is_accessable) (int));
51 int ss_action_entry_add(struct sysnoti *msg);
52 int ss_action_entry_call_internal(char *type, int argc, ...);
53 int ss_action_entry_call(struct sysnoti *msg, int argc, char **argv);
54
55 int ss_run_queue_run(enum ss_run_state state,
56                      int (*run_func) (void *, struct ss_run_queue_entry *),
57                      void *user_data);
58
59 struct ss_run_queue_entry *ss_run_queue_find_bypid(int pid);
60 int ss_run_queue_add(struct ss_action_entry *act_entry, int argc, char **argv);
61 int ss_run_queue_del(struct ss_run_queue_entry *entry);
62 int ss_run_queue_del_bypid(int pid);
63
64 void ss_queue_init();
65
66 #endif /* __SS_QUEUE_H__ */