summaryrefslogtreecommitdiffstats
path: root/solaris/SolarisProcess.h
diff options
context:
space:
mode:
authorgmbroome <thrirhrafnir@gmail.com>2018-03-02 16:20:46 -0500
committerHisham Muhammad <hisham@gobolinux.org>2018-03-02 18:20:46 -0300
commit697f5bb9c14a89b2e04519c956fc7e455c9b1cc0 (patch)
tree12cb2f0f92308da316e623d7b1911308454ea02a /solaris/SolarisProcess.h
parentd4ea7cd65ccf8551cabb0706167b2c15aad7866d (diff)
Import Solaris support (#741)
This commit adds support for Solaris, squashed from PR #741: Summary of additions: * Initial setup of Solaris platform directory * Add Solaris platform into autoconf template * Uptime and load averages * Add dependency on libkstat * Basic process listing * Zone name display * CPU detection * Per-process memory and CPU usage parsed correctly * Uses sysconf to discover number of CPUs, instead of more complex libkstat code * Simple memory display working * Reduce repetitive calls to the PAGE_SIZE macro when reading memory info * Add Project, Contract, Task, and Pool into process properties * Use system major()/minor() implementations and remove extraneous definition of mkdev() * Get the STARTTIME column working properly, using the Linux implementation as a guide
Diffstat (limited to 'solaris/SolarisProcess.h')
-rw-r--r--solaris/SolarisProcess.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/solaris/SolarisProcess.h b/solaris/SolarisProcess.h
new file mode 100644
index 00000000..e1f4945a
--- /dev/null
+++ b/solaris/SolarisProcess.h
@@ -0,0 +1,65 @@
+/* Do not edit this file. It was automatically generated. */
+
+#ifndef HEADER_SolarisProcess
+#define HEADER_SolarisProcess
+/*
+htop - SolarisProcess.h
+(C) 2015 Hisham H. Muhammad
+(C) 2017 Guy M. Broome
+Released under the GNU GPL, see the COPYING file
+in the source distribution for its full text.
+*/
+
+#include "Settings.h"
+#include <zone.h>
+
+typedef enum SolarisProcessFields {
+ // Add platform-specific fields here, with ids >= 100
+ ZONEID = 100,
+ ZONE = 101,
+ PROJID = 102,
+ TASKID = 103,
+ POOLID = 104,
+ CONTID = 105,
+ LAST_PROCESSFIELD = 106,
+} SolarisProcessField;
+
+
+typedef struct SolarisProcess_ {
+ Process super;
+ int kernel;
+ zoneid_t zoneid;
+ char zname[ZONENAME_MAX+1];
+ taskid_t taskid;
+ projid_t projid;
+ poolid_t poolid;
+ ctid_t contid;
+} SolarisProcess;
+
+
+#ifndef Process_isKernelThread
+#define Process_isKernelThread(_process) (_process->kernel == 1)
+#endif
+
+#ifndef Process_isUserlandThread
+#define Process_isUserlandThread(_process) (_process->pid != _process->tgid)
+#endif
+
+
+extern ProcessClass SolarisProcess_class;
+
+extern ProcessFieldData Process_fields[];
+
+extern ProcessPidColumn Process_pidColumns[];
+
+SolarisProcess* SolarisProcess_new(Settings* settings);
+
+void Process_delete(Object* cast);
+
+void SolarisProcess_writeField(Process* this, RichString* str, ProcessField field);
+
+long SolarisProcess_compare(const void* v1, const void* v2);
+
+bool Process_isThread(Process* this);
+
+#endif

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