mirror of https://github.com/xzeldon/htop.git
Move list of signals to platform-specific code.
Implementations for Linux (tested) and FreeBSD (still untested, thanks to @etosan for providing the table). Darwin and OpenBSD(ping @mmcco) builds should be broken now, pending their own tables.
This commit is contained in:
parent
fbb4c49edd
commit
3fe2f3e28e
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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[];
|
||||
|
|
Loading…
Reference in New Issue