diff --git a/ChangeLog b/ChangeLog index 94f4b567..1f0895f9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +1999-04-18 Martin Baulig + + Thanks to Drazen Kacar for pointing out that not all processors must + be running all the time under Solaris, so we need to have some flag + to find out which processors are running. + + * (glibtop_cpu): Added `xcpu_flags' bitmask of running processors. + * (glibtop_proc_time): Added `xcpu_flags'. + 1999-04-18 Martin Baulig * include/glibtop/limits.h: New file. diff --git a/features.def b/features.def index 8c452e5f..b5b110b3 100644 --- a/features.def +++ b/features.def @@ -1,4 +1,4 @@ -void|cpu|ulong(total,user,nice,sys,idle,frequency,xcpu_total[4],xcpu_user[4],xcpu_nice[4],xcpu_sys[4],xcpu_idle[4]) +void|cpu|ulong(total,user,nice,sys,idle,frequency,xcpu_total[256],xcpu_user[256],xcpu_nice[256],xcpu_sys[256],xcpu_idle[256],xcpu_flags) void|mem|ulong(total,used,free,shared,buffer,cached,user,locked) void|swap|ulong(total,used,free,pagein,pageout) void|uptime|double(uptime,idletime):ulong(boot_time) @@ -10,7 +10,7 @@ unsigned *|proclist|ulong(number,size,total)|long(which,arg) void|proc_state|str(cmd):unsigned(state):ulong(uid,gid,ruid,rgid,has_cpu,processor,last_processor)|pid_t(pid) void|proc_uid|long(uid,euid,gid,egid,suid,sgid,fsuid,fsgid,pid,ppid,pgrp,session,tty,tpgid,priority,nice,ngroups,groups[32])|pid_t(pid) void|proc_mem|long(size,vsize,resident,share,rss,rss_rlim)|pid_t(pid) -void|proc_time|long(start_time,rtime,utime,stime,cutime,cstime,timeout,it_real_value,frequency,xcpu_utime[4],xcpu_stime[4])|pid_t(pid) +void|proc_time|long(start_time,rtime,utime,stime,cutime,cstime,timeout,it_real_value,frequency,xcpu_utime[256],xcpu_stime[256],xcpu_flags)|pid_t(pid) void|proc_signal|ulong(signal[2],blocked[2],sigignore[2],sigcatch[2])|pid_t(pid) void|proc_kernel|ulong(k_flags,min_flt,maj_flt,cmin_flt,cmaj_flt,kstk_esp,kstk_eip,nwchan):str(wchan)|pid_t(pid) void|proc_segment|ulong(text_rss,shlib_rss,data_rss,stack_rss,dirty_size,start_code,end_code,start_data,end_data,start_brk,end_brk,start_stack,start_mmap,arg_start,arg_end,env_start,env_end)|pid_t(pid) diff --git a/include/glibtop/cpu.h b/include/glibtop/cpu.h index e9fb3f0d..efdad441 100644 --- a/include/glibtop/cpu.h +++ b/include/glibtop/cpu.h @@ -43,8 +43,9 @@ BEGIN_LIBGTOP_DECLS #define GLIBTOP_XCPU_NICE 8 #define GLIBTOP_XCPU_SYS 9 #define GLIBTOP_XCPU_IDLE 10 +#define GLIBTOP_XCPU_FLAGS 11 -#define GLIBTOP_MAX_CPU 11 +#define GLIBTOP_MAX_CPU 12 typedef struct _glibtop_cpu glibtop_cpu; @@ -61,7 +62,8 @@ struct _glibtop_cpu xcpu_user [GLIBTOP_NCPU], /* GLIBTOP_XCPU_USER */ xcpu_nice [GLIBTOP_NCPU], /* GLIBTOP_XCPU_NICE */ xcpu_sys [GLIBTOP_NCPU], /* GLIBTOP_XCPU_SYS */ - xcpu_idle [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_IDLE */ + xcpu_idle [GLIBTOP_NCPU], /* GLIBTOP_XCPU_IDLE */ + xcpu_flags; /* GLIBTOP_XCPU_FLAGS */ }; #define glibtop_get_cpu(cpu) glibtop_get_cpu_l(glibtop_global_server, cpu) diff --git a/include/glibtop/proctime.h b/include/glibtop/proctime.h index 81349ac1..9d649f37 100644 --- a/include/glibtop/proctime.h +++ b/include/glibtop/proctime.h @@ -43,8 +43,9 @@ BEGIN_LIBGTOP_DECLS #define GLIBTOP_PROC_TIME_FREQUENCY 8 #define GLIBTOP_PROC_TIME_XCPU_UTIME 9 #define GLIBTOP_PROC_TIME_XCPU_STIME 10 +#define GLIBTOP_PROC_TIME_XCPU_FLAGS 11 -#define GLIBTOP_MAX_PROC_TIME 11 +#define GLIBTOP_MAX_PROC_TIME 12 typedef struct _glibtop_proc_time glibtop_proc_time; @@ -69,7 +70,8 @@ struct _glibtop_proc_time * due to an interval timer. */ frequency, /* Tick frequency. */ xcpu_utime [GLIBTOP_NCPU], /* utime and stime for all CPUs on */ - xcpu_stime [GLIBTOP_NCPU]; /* SMP machines. */ + xcpu_stime [GLIBTOP_NCPU], /* SMP machines. */ + xcpu_flags; }; #define glibtop_get_proc_time(p1, p2) glibtop_get_proc_time_l(glibtop_global_server, p1, p2) diff --git a/sysdeps/names/cpu.c b/sysdeps/names/cpu.c index 7baa7366..08349051 100644 --- a/sysdeps/names/cpu.c +++ b/sysdeps/names/cpu.c @@ -29,7 +29,7 @@ const char *glibtop_names_cpu[GLIBTOP_MAX_CPU] = { "total", "user", "nice", "sys", "idle", "frequency", "xcpu_total", "xcpu_user", "xcpu_nice", "xcpu_sys", - "xcpu_idle" + "xcpu_idle", "xcpu_flags" }; const unsigned glibtop_types_cpu[GLIBTOP_MAX_CPU] = @@ -37,7 +37,7 @@ const unsigned glibtop_types_cpu[GLIBTOP_MAX_CPU] = GLIBTOP_TYPE_ULONG, GLIBTOP_TYPE_ULONG, GLIBTOP_TYPE_ULONG, GLIBTOP_TYPE_ULONG, GLIBTOP_TYPE_ULONG, GLIBTOP_TYPE_ULONG, GLIBTOP_TYPE_ULONG, GLIBTOP_TYPE_ULONG, GLIBTOP_TYPE_ULONG, - GLIBTOP_TYPE_ULONG, GLIBTOP_TYPE_ULONG + GLIBTOP_TYPE_ULONG, GLIBTOP_TYPE_ULONG, GLIBTOP_TYPE_ULONG }; const char *glibtop_labels_cpu[GLIBTOP_MAX_CPU] = @@ -53,6 +53,7 @@ const char *glibtop_labels_cpu[GLIBTOP_MAX_CPU] = N_ ("SMP CPU Time in User Mode (nice)"), N_ ("SMP CPU Time in System Mode"), N_ ("SMP CPU Time in the Idle Task") + N_ ("SMP CPU Flags") }; const char *glibtop_descriptions_cpu[GLIBTOP_MAX_CPU] = @@ -68,4 +69,5 @@ const char *glibtop_descriptions_cpu[GLIBTOP_MAX_CPU] = N_ ("Number of clock ticks the system spent in user mode (nice)"), N_ ("Number of clock ticks the system spent in system mode"), N_ ("Number of clock ticks the system spent in the idle task"), + N_ ("SMP CPU Flags") }; diff --git a/sysdeps/names/proctime.c b/sysdeps/names/proctime.c index 5de87bce..ce91de24 100644 --- a/sysdeps/names/proctime.c +++ b/sysdeps/names/proctime.c @@ -30,7 +30,7 @@ const char *glibtop_names_proc_time[GLIBTOP_MAX_PROC_TIME] = { "start_time", "rtime", "utime", "stime", "cutime", "cstime", "timeout", "it_real_value", "timeout", "xcpu_utime", - "xcpu_stime" + "xcpu_stime", "xcpu_flags" }; const unsigned glibtop_types_proc_time[GLIBTOP_MAX_PROC_TIME] = @@ -38,14 +38,15 @@ const unsigned glibtop_types_proc_time[GLIBTOP_MAX_PROC_TIME] = GLIBTOP_TYPE_LONG, GLIBTOP_TYPE_LONG, GLIBTOP_TYPE_LONG, GLIBTOP_TYPE_LONG, GLIBTOP_TYPE_LONG, GLIBTOP_TYPE_LONG, GLIBTOP_TYPE_LONG, GLIBTOP_TYPE_LONG, GLIBTOP_TYPE_LONG, - GLIBTOP_TYPE_LONG, GLIBTOP_TYPE_LONG + GLIBTOP_TYPE_LONG, GLIBTOP_TYPE_LONG, GLIBTOP_TYPE_LONG }; const char *glibtop_labels_proc_time[GLIBTOP_MAX_PROC_TIME] = { N_ ("Start_Time"), N_ ("RTime"), N_ ("UTime"), N_ ("STime"), N_ ("CUTime"), N_ ("CSTime"), N_ ("TimeOut"), N_ ("It_Real_Value"), - N_ ("Frequency"), N_ ("XCPU_UTime"), N_ ("XCPU_STime") + N_ ("Frequency"), N_ ("XCPU_UTime"), N_ ("XCPU_STime"), + N_ ("XCPU_Flags") }; const char *glibtop_descriptions_proc_time[GLIBTOP_MAX_PROC_TIME] = @@ -62,4 +63,5 @@ const char *glibtop_descriptions_proc_time[GLIBTOP_MAX_PROC_TIME] = N_ ("Tick frequency"), N_ ("SMP user-mode CPU time accumulated by process"), N_ ("SMP kernel-mode CPU time accumulated by process") + N_ ("SMP CPU Flags") };