7 #include "appinfo-provider.h"
9 int process_get_memory_usage(struct process *proc, int *usage)
11 ON_NULL_RETURN_VAL(proc, -1);
12 ON_NULL_RETURN_VAL(usage, -1);
14 *usage = proc->memory_used;
18 int process_get_cpu_usage(struct process *proc, unsigned long long *usage)
20 ON_NULL_RETURN_VAL(proc, -1);
21 ON_NULL_RETURN_VAL(usage, -1);
23 *usage = proc->frame_ticks_used;
27 int process_update(struct process *proc)
29 struct procfs_process_stat info;
30 unsigned long long ticks;
32 if (procfs_read_process_stat(proc->pid, &info) != 0) {
35 ticks = info.stime + info.utime;
36 proc->frame_ticks_used = ticks - proc->total_ticks_used;
37 proc->total_ticks_used = ticks;
38 proc->memory_used = info.rss * stats_get_page_size() / 1024;
43 void process_init(int pid, struct process *proc)
45 memset(proc, 0x0, sizeof(struct process));
49 int process_get_pid(const struct process *proc)
51 ON_NULL_RETURN_VAL(proc, -1);
55 const char *process_get_appid(struct process *proc)
57 ON_NULL_RETURN_VAL(proc, NULL);
60 proc->appid = app_info_provider_find_app_id(proc->pid);
65 const char *process_get_exe(struct process *proc)
67 ON_NULL_RETURN_VAL(proc, NULL);
70 if (procfs_read_process_exe(proc->pid, &proc->exe) != 0)
76 void process_shutdown(struct process *proc)
79 if (proc->appid) free(proc->appid);
80 if (proc->exe) free(proc->exe);
83 void process_move(struct process *dst, struct process *src)
85 process_shutdown(dst);
86 memcpy(dst, src, sizeof(struct process));