mirror of
https://github.com/xzeldon/htop.git
synced 2025-07-14 21:14:35 +03:00
add support for steal/guest CPU time measurement
simplify processor data accounting (add CPUData structure) remove Process_clone trick
This commit is contained in:
78
CRT.c
78
CRT.c
@ -11,6 +11,7 @@ in the source distribution for its full text.
|
||||
#include <signal.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdbool.h>
|
||||
#include <execinfo.h>
|
||||
|
||||
#include "String.h"
|
||||
|
||||
@ -93,14 +94,16 @@ typedef enum ColorElements_ {
|
||||
CHECK_MARK,
|
||||
CHECK_TEXT,
|
||||
CLOCK,
|
||||
HELP_BOLD,
|
||||
HOSTNAME,
|
||||
CPU_NICE,
|
||||
CPU_NORMAL,
|
||||
CPU_KERNEL,
|
||||
HELP_BOLD,
|
||||
CPU_IOWAIT,
|
||||
CPU_IRQ,
|
||||
CPU_SOFTIRQ,
|
||||
HOSTNAME,
|
||||
CPU_STEAL,
|
||||
CPU_GUEST,
|
||||
LAST_COLORELEMENT
|
||||
} ColorElements;
|
||||
|
||||
@ -116,11 +119,16 @@ int CRT_colors[LAST_COLORELEMENT] = { 0 };
|
||||
|
||||
char* CRT_termType;
|
||||
|
||||
void *backtraceArray[128];
|
||||
|
||||
static void CRT_handleSIGSEGV(int sgn) {
|
||||
(void) sgn;
|
||||
CRT_done();
|
||||
fprintf(stderr, "htop " VERSION " aborted. Please report bug at http://htop.sf.net\n");
|
||||
exit(1);
|
||||
fprintf(stderr, "\n\nhtop " VERSION " aborting. Please report bug at http://htop.sf.net\n");
|
||||
size_t size = backtrace(backtraceArray, sizeof(backtraceArray));
|
||||
fprintf(stderr, "Backtrace: \n");
|
||||
backtrace_symbols_fd(backtraceArray, size, 2);
|
||||
abort();
|
||||
}
|
||||
|
||||
static void CRT_handleSIGTERM(int sgn) {
|
||||
@ -257,17 +265,19 @@ void CRT_setColors(int colorScheme) {
|
||||
CRT_colors[LOAD_AVERAGE_ONE] = A_BOLD;
|
||||
CRT_colors[LOAD] = A_BOLD;
|
||||
CRT_colors[HELP_BOLD] = A_BOLD;
|
||||
CRT_colors[CPU_NICE] = A_NORMAL;
|
||||
CRT_colors[CPU_NORMAL] = A_BOLD;
|
||||
CRT_colors[CPU_KERNEL] = A_BOLD;
|
||||
CRT_colors[CLOCK] = A_BOLD;
|
||||
CRT_colors[CHECK_BOX] = A_BOLD;
|
||||
CRT_colors[CHECK_MARK] = A_NORMAL;
|
||||
CRT_colors[CHECK_TEXT] = A_NORMAL;
|
||||
CRT_colors[HOSTNAME] = A_BOLD;
|
||||
CRT_colors[CPU_NICE] = A_NORMAL;
|
||||
CRT_colors[CPU_NORMAL] = A_BOLD;
|
||||
CRT_colors[CPU_KERNEL] = A_BOLD;
|
||||
CRT_colors[CPU_IOWAIT] = A_NORMAL;
|
||||
CRT_colors[CPU_IRQ] = A_BOLD;
|
||||
CRT_colors[CPU_SOFTIRQ] = A_BOLD;
|
||||
CRT_colors[HOSTNAME] = A_BOLD;
|
||||
CRT_colors[CPU_STEAL] = A_REVERSE;
|
||||
CRT_colors[CPU_GUEST] = A_REVERSE;
|
||||
} else if (CRT_colorScheme == COLORSCHEME_BLACKONWHITE) {
|
||||
CRT_colors[RESET_COLOR] = ColorPair(Black,White);
|
||||
CRT_colors[DEFAULT_COLOR] = ColorPair(Black,White);
|
||||
@ -316,17 +326,19 @@ void CRT_setColors(int colorScheme) {
|
||||
CRT_colors[LOAD_AVERAGE_ONE] = ColorPair(Black,White);
|
||||
CRT_colors[LOAD] = ColorPair(Black,White);
|
||||
CRT_colors[HELP_BOLD] = ColorPair(Blue,White);
|
||||
CRT_colors[CPU_NICE] = ColorPair(Cyan,White);
|
||||
CRT_colors[CPU_NORMAL] = ColorPair(Green,White);
|
||||
CRT_colors[CPU_KERNEL] = ColorPair(Red,White);
|
||||
CRT_colors[CLOCK] = ColorPair(Black,White);
|
||||
CRT_colors[CHECK_BOX] = ColorPair(Blue,White);
|
||||
CRT_colors[CHECK_MARK] = ColorPair(Black,White);
|
||||
CRT_colors[CHECK_TEXT] = ColorPair(Black,White);
|
||||
CRT_colors[HOSTNAME] = ColorPair(Black,White);
|
||||
CRT_colors[CPU_NICE] = ColorPair(Cyan,White);
|
||||
CRT_colors[CPU_NORMAL] = ColorPair(Green,White);
|
||||
CRT_colors[CPU_KERNEL] = ColorPair(Red,White);
|
||||
CRT_colors[CPU_IOWAIT] = A_BOLD | ColorPair(Black, Black);
|
||||
CRT_colors[CPU_IRQ] = ColorPair(Blue,White);
|
||||
CRT_colors[CPU_SOFTIRQ] = ColorPair(Blue,White);
|
||||
CRT_colors[HOSTNAME] = ColorPair(Black,White);
|
||||
CRT_colors[CPU_STEAL] = ColorPair(Cyan,White);
|
||||
CRT_colors[CPU_GUEST] = ColorPair(Cyan,White);
|
||||
} else if (CRT_colorScheme == COLORSCHEME_BLACKONWHITE2) {
|
||||
CRT_colors[RESET_COLOR] = ColorPair(Black,Black);
|
||||
CRT_colors[DEFAULT_COLOR] = ColorPair(Black,Black);
|
||||
@ -375,17 +387,19 @@ void CRT_setColors(int colorScheme) {
|
||||
CRT_colors[LOAD_AVERAGE_ONE] = ColorPair(Black,Black);
|
||||
CRT_colors[LOAD] = ColorPair(White,Black);
|
||||
CRT_colors[HELP_BOLD] = ColorPair(Blue,Black);
|
||||
CRT_colors[CPU_NICE] = ColorPair(Cyan,Black);
|
||||
CRT_colors[CPU_NORMAL] = ColorPair(Green,Black);
|
||||
CRT_colors[CPU_KERNEL] = ColorPair(Red,Black);
|
||||
CRT_colors[CLOCK] = ColorPair(White,Black);
|
||||
CRT_colors[CHECK_BOX] = ColorPair(Blue,Black);
|
||||
CRT_colors[CHECK_MARK] = ColorPair(Black,Black);
|
||||
CRT_colors[CHECK_TEXT] = ColorPair(Black,Black);
|
||||
CRT_colors[HOSTNAME] = ColorPair(White,Black);
|
||||
CRT_colors[CPU_NICE] = ColorPair(Cyan,Black);
|
||||
CRT_colors[CPU_NORMAL] = ColorPair(Green,Black);
|
||||
CRT_colors[CPU_KERNEL] = ColorPair(Red,Black);
|
||||
CRT_colors[CPU_IOWAIT] = A_BOLD | ColorPair(Black, Black);
|
||||
CRT_colors[CPU_IRQ] = A_BOLD | ColorPair(Blue,Black);
|
||||
CRT_colors[CPU_SOFTIRQ] = ColorPair(Blue,Black);
|
||||
CRT_colors[HOSTNAME] = ColorPair(White,Black);
|
||||
CRT_colors[CPU_STEAL] = ColorPair(Black,Black);
|
||||
CRT_colors[CPU_GUEST] = ColorPair(Black,Black);
|
||||
} else if (CRT_colorScheme == COLORSCHEME_MIDNIGHT) {
|
||||
CRT_colors[RESET_COLOR] = ColorPair(White,Blue);
|
||||
CRT_colors[DEFAULT_COLOR] = ColorPair(White,Blue);
|
||||
@ -434,17 +448,19 @@ void CRT_setColors(int colorScheme) {
|
||||
CRT_colors[LOAD_AVERAGE_ONE] = A_BOLD | ColorPair(White,Blue);
|
||||
CRT_colors[LOAD] = A_BOLD | ColorPair(White,Blue);
|
||||
CRT_colors[HELP_BOLD] = A_BOLD | ColorPair(Cyan,Blue);
|
||||
CRT_colors[CPU_NICE] = A_BOLD | ColorPair(Cyan,Blue);
|
||||
CRT_colors[CPU_NORMAL] = A_BOLD | ColorPair(Green,Blue);
|
||||
CRT_colors[CPU_KERNEL] = A_BOLD | ColorPair(Red,Blue);
|
||||
CRT_colors[CLOCK] = ColorPair(White,Blue);
|
||||
CRT_colors[CHECK_BOX] = ColorPair(Cyan,Blue);
|
||||
CRT_colors[CHECK_MARK] = A_BOLD | ColorPair(White,Blue);
|
||||
CRT_colors[CHECK_TEXT] = A_NORMAL | ColorPair(White,Blue);
|
||||
CRT_colors[CPU_IOWAIT] = ColorPair(Yellow,Blue);
|
||||
CRT_colors[HOSTNAME] = ColorPair(White,Blue);
|
||||
CRT_colors[CPU_NICE] = A_BOLD | ColorPair(Cyan,Blue);
|
||||
CRT_colors[CPU_NORMAL] = A_BOLD | ColorPair(Green,Blue);
|
||||
CRT_colors[CPU_KERNEL] = A_BOLD | ColorPair(Red,Blue);
|
||||
CRT_colors[CPU_IOWAIT] = A_BOLD | ColorPair(Blue,Blue);
|
||||
CRT_colors[CPU_IRQ] = A_BOLD | ColorPair(Black,Blue);
|
||||
CRT_colors[CPU_SOFTIRQ] = ColorPair(Black,Blue);
|
||||
CRT_colors[HOSTNAME] = ColorPair(White,Blue);
|
||||
CRT_colors[CPU_STEAL] = ColorPair(White,Blue);
|
||||
CRT_colors[CPU_GUEST] = ColorPair(White,Blue);
|
||||
} else if (CRT_colorScheme == COLORSCHEME_BLACKNIGHT) {
|
||||
CRT_colors[RESET_COLOR] = ColorPair(Cyan,Black);
|
||||
CRT_colors[DEFAULT_COLOR] = ColorPair(Cyan,Black);
|
||||
@ -493,17 +509,19 @@ void CRT_setColors(int colorScheme) {
|
||||
CRT_colors[LOAD_AVERAGE_ONE] = A_BOLD | ColorPair(Green,Black);
|
||||
CRT_colors[LOAD] = A_BOLD;
|
||||
CRT_colors[HELP_BOLD] = A_BOLD | ColorPair(Cyan,Black);
|
||||
CRT_colors[CPU_NICE] = ColorPair(Blue,Black);
|
||||
CRT_colors[CPU_NORMAL] = ColorPair(Green,Black);
|
||||
CRT_colors[CPU_KERNEL] = ColorPair(Red,Black);
|
||||
CRT_colors[CLOCK] = ColorPair(Green,Black);
|
||||
CRT_colors[CHECK_BOX] = ColorPair(Green,Black);
|
||||
CRT_colors[CHECK_MARK] = A_BOLD | ColorPair(Green,Black);
|
||||
CRT_colors[CHECK_TEXT] = ColorPair(Cyan,Black);
|
||||
CRT_colors[HOSTNAME] = ColorPair(Green,Black);
|
||||
CRT_colors[CPU_NICE] = ColorPair(Blue,Black);
|
||||
CRT_colors[CPU_NORMAL] = ColorPair(Green,Black);
|
||||
CRT_colors[CPU_KERNEL] = ColorPair(Red,Black);
|
||||
CRT_colors[CPU_IOWAIT] = ColorPair(Yellow,Black);
|
||||
CRT_colors[CPU_IRQ] = A_BOLD | ColorPair(Blue,Black);
|
||||
CRT_colors[CPU_SOFTIRQ] = ColorPair(Blue,Black);
|
||||
CRT_colors[HOSTNAME] = ColorPair(Green,Black);
|
||||
CRT_colors[CPU_STEAL] = ColorPair(Cyan,Black);
|
||||
CRT_colors[CPU_GUEST] = ColorPair(Cyan,Black);
|
||||
} else {
|
||||
/* Default */
|
||||
CRT_colors[RESET_COLOR] = ColorPair(White,Black);
|
||||
@ -553,16 +571,18 @@ void CRT_setColors(int colorScheme) {
|
||||
CRT_colors[LOAD_AVERAGE_ONE] = A_BOLD;
|
||||
CRT_colors[LOAD] = A_BOLD;
|
||||
CRT_colors[HELP_BOLD] = A_BOLD | ColorPair(Cyan,Black);
|
||||
CRT_colors[CPU_NICE] = ColorPair(Blue,Black);
|
||||
CRT_colors[CPU_NORMAL] = ColorPair(Green,Black);
|
||||
CRT_colors[CPU_KERNEL] = ColorPair(Red,Black);
|
||||
CRT_colors[CLOCK] = A_BOLD;
|
||||
CRT_colors[CHECK_BOX] = ColorPair(Cyan,Black);
|
||||
CRT_colors[CHECK_MARK] = A_BOLD;
|
||||
CRT_colors[CHECK_TEXT] = A_NORMAL;
|
||||
CRT_colors[HOSTNAME] = A_BOLD;
|
||||
CRT_colors[CPU_NICE] = ColorPair(Blue,Black);
|
||||
CRT_colors[CPU_NORMAL] = ColorPair(Green,Black);
|
||||
CRT_colors[CPU_KERNEL] = ColorPair(Red,Black);
|
||||
CRT_colors[CPU_IOWAIT] = A_BOLD | ColorPair(Black, Black);
|
||||
CRT_colors[CPU_IRQ] = ColorPair(Yellow,Black);
|
||||
CRT_colors[CPU_SOFTIRQ] = ColorPair(Magenta,Black);
|
||||
CRT_colors[HOSTNAME] = A_BOLD;
|
||||
CRT_colors[CPU_STEAL] = ColorPair(Cyan,Black);
|
||||
CRT_colors[CPU_GUEST] = ColorPair(Cyan,Black);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user