summaryrefslogtreecommitdiffstats
path: root/SignalItem.c
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2006-03-04 18:16:49 +0000
committerHisham Muhammad <hisham@gobolinux.org>2006-03-04 18:16:49 +0000
commitd6231bab89d634da5564491196b7c478db038505 (patch)
treebfc0bf00b138763eb41132fd27a8f389a78bf3a4 /SignalItem.c
Initial import.
Diffstat (limited to 'SignalItem.c')
-rw-r--r--SignalItem.c99
1 files changed, 99 insertions, 0 deletions
diff --git a/SignalItem.c b/SignalItem.c
new file mode 100644
index 00000000..2cef8775
--- /dev/null
+++ b/SignalItem.c
@@ -0,0 +1,99 @@
+/*
+htop - SignalItem.c
+(C) 2004,2005 Hisham H. Muhammad
+Released under the GNU GPL, see the COPYING file
+in the source distribution for its full text.
+*/
+
+#include "SignalItem.h"
+#include "String.h"
+#include "Object.h"
+#include "RichString.h"
+#include <string.h>
+
+#include "debug.h"
+
+#define SIGNAL_COUNT 34
+
+/*{
+
+typedef struct Signal_ {
+ Object super;
+ char* name;
+ int number;
+} Signal;
+
+extern char* SIGNAL_CLASS;
+}*/
+
+/* private property */
+char* SIGNAL_CLASS = "Signal";
+
+Signal* Signal_new(char* name, int number) {
+ Signal* this = malloc(sizeof(Signal));
+ ((Object*)this)->class = SIGNAL_CLASS;
+ ((Object*)this)->display = Signal_display;
+ ((Object*)this)->delete = Signal_delete;
+ this->name = name;
+ this->number = number;
+ return this;
+}
+
+void Signal_delete(Object* cast) {
+ Signal* this = (Signal*)cast;
+ assert (this != NULL);
+ // names are string constants, so we're not deleting them.
+ free(this);
+}
+
+void Signal_display(Object* cast, RichString* out) {
+ Signal* this = (Signal*)cast;
+ assert (this != NULL);
+
+ char buffer[31];
+ snprintf(buffer, 30, "%2d %s", this->number, this->name);
+ RichString_write(out, CRT_colors[DEFAULT_COLOR], buffer);
+}
+
+int Signal_getSignalCount() {
+ return SIGNAL_COUNT;
+}
+
+Signal** Signal_getSignalTable() {
+ Signal** signals = malloc(sizeof(Signal*) * SIGNAL_COUNT);
+ signals[0] = Signal_new("Cancel", 0);
+ signals[1] = Signal_new("SIGHUP", 1);
+ signals[2] = Signal_new("SIGINT", 2);
+ signals[3] = Signal_new("SIGQUIT", 3);
+ signals[4] = Signal_new("SIGILL", 4);
+ signals[5] = Signal_new("SIGTRAP", 5);
+ signals[6] = Signal_new("SIGABRT", 6);
+ signals[7] = Signal_new("SIGIOT", 6);
+ signals[8] = Signal_new("SIGBUS", 7);
+ signals[9] = Signal_new("SIGFPE", 8);
+ signals[10] = Signal_new("SIGKILL", 9);
+ signals[11] = Signal_new("SIGUSR1", 10);
+ signals[12] = Signal_new("SIGSEGV", 11);
+ signals[13] = Signal_new("SIGUSR2", 12);
+ signals[14] = Signal_new("SIGPIPE", 13);
+ signals[15] = Signal_new("SIGALRM", 14);
+ signals[16] = Signal_new("SIGTERM", 15);
+ signals[17] = Signal_new("SIGSTKFLT", 16);
+ signals[18] = Signal_new("SIGCHLD", 17);
+ signals[19] = Signal_new("SIGCONT", 18);
+ signals[20] = Signal_new("SIGSTOP", 19);
+ signals[21] = Signal_new("SIGTSTP", 20);
+ signals[22] = Signal_new("SIGTTIN", 21);
+ signals[23] = Signal_new("SIGTTOU", 22);
+ signals[24] = Signal_new("SIGURG", 23);
+ signals[25] = Signal_new("SIGXCPU", 24);
+ signals[26] = Signal_new("SIGXFSZ", 25);
+ signals[27] = Signal_new("SIGVTALRM", 26);
+ signals[28] = Signal_new("SIGPROF", 27);
+ signals[29] = Signal_new("SIGWINCH", 28);
+ signals[30] = Signal_new("SIGIO", 29);
+ signals[31] = Signal_new("SIGPOLL", 29);
+ signals[32] = Signal_new("SIGPWR", 30);
+ signals[33] = Signal_new("SIGSYS", 31);
+ return signals;
+}

© 2014-2024 Faster IT GmbH | imprint | privacy policy