File: proc.c

package info (click to toggle)
gtop 0.28.1-5
  • links: PTS
  • area: main
  • in suites: slink
  • size: 1,324 kB
  • ctags: 890
  • sloc: ansic: 6,141; sh: 4,766; cpp: 355; makefile: 281; sed: 93
file content (60 lines) | stat: -rw-r--r-- 1,285 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include "proc.h"

#include <glibtop.h>
#include <glibtop/cpu.h>
#include <glibtop/mem.h>
#include <glibtop/swap.h>

#include <stdio.h>

void
proc_read_cpu (ProcInfo *ps)
{
	glibtop_cpu cpu;
	int i;

	glibtop_get_cpu (&cpu);

	for (i=1; i<PROC_CPU_SIZE; i++)
		ps->cpu_last [i] = ps->cpu_now [i];

	ps->cpu_now [PROC_CPU_USER] = cpu.user;
	ps->cpu_now [PROC_CPU_NICE] = cpu.nice;
	ps->cpu_now [PROC_CPU_SYS]  = cpu.sys;
	ps->cpu_now [PROC_CPU_IDLE] = cpu.idle;

	for (i=1; i<PROC_CPU_SIZE; i++)
		ps->cpu [i] = ps->cpu_now [i] - ps->cpu_last [i];

	ps->cpu [PROC_CPU_TOTAL] = 
		ps->cpu [PROC_CPU_USER] +
		ps->cpu [PROC_CPU_NICE] +
		ps->cpu [PROC_CPU_SYS] +
		ps->cpu [PROC_CPU_IDLE];
}

void
proc_read_mem (ProcInfo *ps)
{
	glibtop_mem mem;
	glibtop_swap swap;

	glibtop_get_mem (&mem);

	ps->mem [PROC_MEM_TOTAL]  = mem.total;
	ps->mem [PROC_MEM_USED]   = mem.used;
	ps->mem [PROC_MEM_FREE]   = mem.free;
	ps->mem [PROC_MEM_SHARED] = mem.shared;
	ps->mem [PROC_MEM_BUF]    = mem.buffer;

	ps->mem [PROC_MEM_USER] = ps->mem [PROC_MEM_TOTAL]
		- ps->mem [PROC_MEM_FREE]
		- ps->mem [PROC_MEM_BUF]
		- ps->mem [PROC_MEM_SHARED];

	glibtop_get_swap (&swap);

	ps->swap [PROC_SWAP_TOTAL] = swap.total;
	ps->swap [PROC_SWAP_USED]  = swap.used;
	ps->swap [PROC_SWAP_FREE]  = swap.free;
}