diff --git a/SignalsPanel.c b/SignalsPanel.c index 5ff7fde2..6a3b89de 100644 --- a/SignalsPanel.c +++ b/SignalsPanel.c @@ -7,6 +7,7 @@ in the source distribution for its full text. #include "Panel.h" #include "SignalsPanel.h" +#include "Platform.h" #include "ListItem.h" #include "RichString.h" @@ -25,47 +26,10 @@ typedef struct SignalItem_ { }*/ -static SignalItem signals[] = { - { .name = " 0 Cancel", .number = 0 }, - { .name = " 1 SIGHUP", .number = 1 }, - { .name = " 2 SIGINT", .number = 2 }, - { .name = " 3 SIGQUIT", .number = 3 }, - { .name = " 4 SIGILL", .number = 4 }, - { .name = " 5 SIGTRAP", .number = 5 }, - { .name = " 6 SIGABRT", .number = 6 }, - { .name = " 6 SIGIOT", .number = 6 }, - { .name = " 7 SIGBUS", .number = 7 }, - { .name = " 8 SIGFPE", .number = 8 }, - { .name = " 9 SIGKILL", .number = 9 }, - { .name = "10 SIGUSR1", .number = 10 }, - { .name = "11 SIGSEGV", .number = 11 }, - { .name = "12 SIGUSR2", .number = 12 }, - { .name = "13 SIGPIPE", .number = 13 }, - { .name = "14 SIGALRM", .number = 14 }, - { .name = "15 SIGTERM", .number = 15 }, - { .name = "16 SIGSTKFLT", .number = 16 }, - { .name = "17 SIGCHLD", .number = 17 }, - { .name = "18 SIGCONT", .number = 18 }, - { .name = "19 SIGSTOP", .number = 19 }, - { .name = "20 SIGTSTP", .number = 20 }, - { .name = "21 SIGTTIN", .number = 21 }, - { .name = "22 SIGTTOU", .number = 22 }, - { .name = "23 SIGURG", .number = 23 }, - { .name = "24 SIGXCPU", .number = 24 }, - { .name = "25 SIGXFSZ", .number = 25 }, - { .name = "26 SIGVTALRM", .number = 26 }, - { .name = "27 SIGPROF", .number = 27 }, - { .name = "28 SIGWINCH", .number = 28 }, - { .name = "29 SIGIO", .number = 29 }, - { .name = "29 SIGPOLL", .number = 29 }, - { .name = "30 SIGPWR", .number = 30 }, - { .name = "31 SIGSYS", .number = 31 }, -}; - Panel* SignalsPanel_new() { Panel* this = Panel_new(1, 1, 1, 1, true, Class(ListItem), FunctionBar_newEnterEsc("Send ", "Cancel ")); - for(unsigned int i = 0; i < sizeof(signals)/sizeof(SignalItem); i++) - Panel_set(this, i, (Object*) ListItem_new(signals[i].name, signals[i].number)); + for(unsigned int i = 0; i < Platform_numberOfSignals; i++) + Panel_set(this, i, (Object*) ListItem_new(Platform_signals[i].name, Platform_signals[i].number)); Panel_setHeader(this, "Send signal:"); Panel_setSelected(this, 16); // 16th item is SIGTERM return this; diff --git a/freebsd/Platform.c b/freebsd/Platform.c index 0254fe40..0d01b0ca 100644 --- a/freebsd/Platform.c +++ b/freebsd/Platform.c @@ -27,6 +27,7 @@ in the source distribution for its full text. /*{ #include "Action.h" #include "BatteryMeter.h" +#include "SignalsPanel.h" extern ProcessFieldData Process_fields[]; @@ -36,6 +37,45 @@ ProcessField Platform_defaultFields[] = { PID, USER, PRIORITY, NICE, M_SIZE, M_R int Platform_numberOfFields = LAST_PROCESSFIELD; +static SignalItem Platform_signals[] = { + { .name = " 0 Cancel", .number = 0 }, + { .name = " 1 SIGHUP", .number = 1 }, + { .name = " 2 SIGINT", .number = 2 }, + { .name = " 3 SIGQUIT", .number = 3 }, + { .name = " 4 SIGILL", .number = 4 }, + { .name = " 5 SIGTRAP", .number = 5 }, + { .name = " 6 SIGABRT", .number = 6 }, + { .name = " 7 SIGEMT", .number = 7 }, + { .name = " 8 SIGFPE", .number = 8 }, + { .name = " 9 SIGKILL", .number = 9 }, + { .name = "10 SIGBUS", .number = 10 }, + { .name = "11 SIGSEGV", .number = 11 }, + { .name = "12 SIGSYS", .number = 12 }, + { .name = "13 SIGPIPE", .number = 13 }, + { .name = "14 SIGALRM", .number = 14 }, + { .name = "15 SIGTERM", .number = 15 }, + { .name = "16 SIGURG", .number = 16 }, + { .name = "17 SIGSTOP", .number = 17 }, + { .name = "18 SIGTSTP", .number = 18 }, + { .name = "19 SIGCONT", .number = 19 }, + { .name = "20 SIGCHLD", .number = 20 }, + { .name = "21 SIGTTIN", .number = 21 }, + { .name = "22 SIGTTOU", .number = 22 }, + { .name = "23 SIGIO", .number = 23 }, + { .name = "24 SIGXCPU", .number = 24 }, + { .name = "25 SIGXFSZ", .number = 25 }, + { .name = "26 SIGVTALRM", .number = 26 }, + { .name = "27 SIGPROF", .number = 27 }, + { .name = "28 SIGWINCH", .number = 28 }, + { .name = "29 SIGINFO", .number = 29 }, + { .name = "30 SIGUSR1", .number = 30 }, + { .name = "31 SIGUSR2", .number = 31 }, + { .name = "32 SIGTHR", .number = 32 }, + { .name = "33 SIGLIBRT", .number = 33 }, +}; + +unsigned int Platform_numberOfSignals = sizeof(Platform_signals)/sizeof(SignalItem); + void Platform_setBindings(Htop_Action* keys) { (void) keys; } diff --git a/linux/Platform.c b/linux/Platform.c index fad0e6b7..e0f06d6d 100644 --- a/linux/Platform.c +++ b/linux/Platform.c @@ -31,6 +31,7 @@ in the source distribution for its full text. #include "MainPanel.h" #include "BatteryMeter.h" #include "LinuxProcess.h" +#include "SignalsPanel.h" }*/ ProcessField Platform_defaultFields[] = { PID, USER, PRIORITY, NICE, M_SIZE, M_RESIDENT, M_SHARE, STATE, PERCENT_CPU, PERCENT_MEM, TIME, COMM, 0 }; @@ -39,6 +40,45 @@ ProcessField Platform_defaultFields[] = { PID, USER, PRIORITY, NICE, M_SIZE, M_R int Platform_numberOfFields = LAST_PROCESSFIELD; +SignalItem Platform_signals[] = { + { .name = " 0 Cancel", .number = 0 }, + { .name = " 1 SIGHUP", .number = 1 }, + { .name = " 2 SIGINT", .number = 2 }, + { .name = " 3 SIGQUIT", .number = 3 }, + { .name = " 4 SIGILL", .number = 4 }, + { .name = " 5 SIGTRAP", .number = 5 }, + { .name = " 6 SIGABRT", .number = 6 }, + { .name = " 6 SIGIOT", .number = 6 }, + { .name = " 7 SIGBUS", .number = 7 }, + { .name = " 8 SIGFPE", .number = 8 }, + { .name = " 9 SIGKILL", .number = 9 }, + { .name = "10 SIGUSR1", .number = 10 }, + { .name = "11 SIGSEGV", .number = 11 }, + { .name = "12 SIGUSR2", .number = 12 }, + { .name = "13 SIGPIPE", .number = 13 }, + { .name = "14 SIGALRM", .number = 14 }, + { .name = "15 SIGTERM", .number = 15 }, + { .name = "16 SIGSTKFLT", .number = 16 }, + { .name = "17 SIGCHLD", .number = 17 }, + { .name = "18 SIGCONT", .number = 18 }, + { .name = "19 SIGSTOP", .number = 19 }, + { .name = "20 SIGTSTP", .number = 20 }, + { .name = "21 SIGTTIN", .number = 21 }, + { .name = "22 SIGTTOU", .number = 22 }, + { .name = "23 SIGURG", .number = 23 }, + { .name = "24 SIGXCPU", .number = 24 }, + { .name = "25 SIGXFSZ", .number = 25 }, + { .name = "26 SIGVTALRM", .number = 26 }, + { .name = "27 SIGPROF", .number = 27 }, + { .name = "28 SIGWINCH", .number = 28 }, + { .name = "29 SIGIO", .number = 29 }, + { .name = "29 SIGPOLL", .number = 29 }, + { .name = "30 SIGPWR", .number = 30 }, + { .name = "31 SIGSYS", .number = 31 }, +}; + +unsigned int Platform_numberOfSignals = sizeof(Platform_signals)/sizeof(SignalItem); + static Htop_Reaction Platform_actionSetIOPriority(State* st) { Panel* panel = st->panel; diff --git a/linux/Platform.h b/linux/Platform.h index 206fc812..2c79b299 100644 --- a/linux/Platform.h +++ b/linux/Platform.h @@ -13,11 +13,16 @@ in the source distribution for its full text. #include "MainPanel.h" #include "BatteryMeter.h" #include "LinuxProcess.h" +#include "SignalsPanel.h" extern ProcessField Platform_defaultFields[]; extern int Platform_numberOfFields; +extern SignalItem Platform_signals[]; + +extern unsigned int Platform_numberOfSignals; + void Platform_setBindings(Htop_Action* keys); extern MeterClass* Platform_meterTypes[];