tizen 2.3 release
[kernel/api/system-resource.git] / src / proc-stat / include / proc-main.h
index 3b054ce..d4afec2 100644 (file)
 #define __PROC_MAIN_H__
 
 #include <unistd.h>
+#include <glib.h>
+
+#include "daemon-options.h"
 #include "resourced.h"
+#include "const.h"
 
 #define PROC_BUF_MAX 64
 #define PROC_NAME_MAX 512
 
+typedef GSList *pid_info_list;
+
+enum application_type {
+       RESOURCED_APP_TYPE_UNKNOWN,
+       RESOURCED_APP_TYPE_GUI,
+       RESOURCED_APP_TYPE_SERVICE,
+       RESOURCED_APP_TYPE_GROUP,
+};
+
+struct pid_info_t {
+       pid_t pid;
+       enum application_type type; /* not so fancy */
+};
+
+struct proc_process_info_t {
+       char appid[MAX_PATH_LENGTH];
+       char pkgname[MAX_PATH_LENGTH];
+       pid_info_list pids;
+       int proc_exclude;
+       int runtime_exclude;
+       int memcg_idx;
+       int state;
+       int type;
+};
+
+struct proc_status {
+       pid_t pid;
+       char* appid;
+       struct proc_process_info_t *processinfo;
+};
+
+enum proc_exclude_type {
+       PROC_EXCLUDE,
+       PROC_INCLUDE,
+};
+
+enum {
+       LCD_STATE_ON,
+       LCD_STATE_OFF,
+};
+
+enum proc_prelaunch_flags {
+       PROC_LARGE_HEAP = 0x01u,        /* for mark large heap */
+       PROC_SIGTERM    = 0x02u,        /* for make killer kill victim by SIGTERM */
+};
+
+extern int current_lcd_state;
+
+
+void proc_add_pid_list(struct proc_process_info_t *process_info, int pid, enum application_type type);
 
 int resourced_proc_init(const struct daemon_opts *opts);
 
@@ -41,7 +95,17 @@ int resourced_proc_action(int type, int argnum, char **arg);
 
 int resourced_proc_excluded(const char *app_name);
 
-int resourced_proc_status_change(int type, pid_t pid, char* app_name);
+int resourced_proc_status_change(int type, pid_t pid, char* app_name,  char* pkg_name);
 
-#endif /*__PROC_MAIN_H__ */
+struct proc_process_info_t *find_process_info(const char *appid, const pid_t pid, const char *pkgid);
 
+struct pid_info_t *new_pid_info(const pid_t pid, const int type);
+
+void proc_set_process_info_memcg(struct proc_process_info_t *process_info, int memcg_idx);
+resourced_ret_c proc_set_runtime_exclude_list(const int pid, int type);
+struct proc_process_info_t *proc_add_process_list(const int type, const pid_t pid, const char *appid, const char *pkgid);
+int proc_remove_process_list(const pid_t pid);
+void proc_set_apptype(const char *appid, const char *pkgid, int type);
+
+
+#endif /*__PROC_MAIN_H__ */