From ff9409b1737627857eb47f64f536a3f66b6a09a4 Mon Sep 17 00:00:00 2001 From: Daniel Lange Date: Mon, 11 Apr 2016 13:01:07 +0200 Subject: Imported Upstream version 2.0.0 --- linux/LinuxProcess.h | 161 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 linux/LinuxProcess.h (limited to 'linux/LinuxProcess.h') diff --git a/linux/LinuxProcess.h b/linux/LinuxProcess.h new file mode 100644 index 0000000..f2d81aa --- /dev/null +++ b/linux/LinuxProcess.h @@ -0,0 +1,161 @@ +/* Do not edit this file. It was automatically generated. */ + +#ifndef HEADER_LinuxProcess +#define HEADER_LinuxProcess +/* +htop - LinuxProcess.h +(C) 2014 Hisham H. Muhammad +Released under the GNU GPL, see the COPYING file +in the source distribution for its full text. +*/ + + +#define PROCESS_FLAG_LINUX_IOPRIO 0x0100 +#define PROCESS_FLAG_LINUX_OPENVZ 0x0200 +#define PROCESS_FLAG_LINUX_VSERVER 0x0400 +#define PROCESS_FLAG_LINUX_CGROUP 0x0800 +#define PROCESS_FLAG_LINUX_OOM 0x1000 + +typedef enum UnsupportedProcessFields { + FLAGS = 9, + ITREALVALUE = 20, + VSIZE = 22, + RSS = 23, + RLIM = 24, + STARTCODE = 25, + ENDCODE = 26, + STARTSTACK = 27, + KSTKESP = 28, + KSTKEIP = 29, + SIGNAL = 30, + BLOCKED = 31, + SSIGIGNORE = 32, + SIGCATCH = 33, + WCHAN = 34, + NSWAP = 35, + CNSWAP = 36, + EXIT_SIGNAL = 37, +} UnsupportedProcessField; + +typedef enum LinuxProcessFields { + CMINFLT = 11, + CMAJFLT = 13, + UTIME = 14, + STIME = 15, + CUTIME = 16, + CSTIME = 17, + M_SHARE = 41, + M_TRS = 42, + M_DRS = 43, + M_LRS = 44, + M_DT = 45, + #ifdef HAVE_OPENVZ + CTID = 100, + VPID = 101, + #endif + #ifdef HAVE_VSERVER + VXID = 102, + #endif + #ifdef HAVE_TASKSTATS + RCHAR = 103, + WCHAR = 104, + SYSCR = 105, + SYSCW = 106, + RBYTES = 107, + WBYTES = 108, + CNCLWB = 109, + IO_READ_RATE = 110, + IO_WRITE_RATE = 111, + IO_RATE = 112, + #endif + #ifdef HAVE_CGROUP + CGROUP = 113, + #endif + OOM = 114, + IO_PRIORITY = 115, + LAST_PROCESSFIELD = 116, +} LinuxProcessField; + +#include "IOPriority.h" + +typedef struct LinuxProcess_ { + Process super; + IOPriority ioPriority; + unsigned long int cminflt; + unsigned long int cmajflt; + unsigned long long int utime; + unsigned long long int stime; + unsigned long long int cutime; + unsigned long long int cstime; + long m_share; + long m_trs; + long m_drs; + long m_lrs; + long m_dt; + #ifdef HAVE_TASKSTATS + unsigned long long io_rchar; + unsigned long long io_wchar; + unsigned long long io_syscr; + unsigned long long io_syscw; + unsigned long long io_read_bytes; + unsigned long long io_write_bytes; + unsigned long long io_cancelled_write_bytes; + unsigned long long io_rate_read_time; + unsigned long long io_rate_write_time; + double io_rate_read_bps; + double io_rate_write_bps; + #endif + #ifdef HAVE_OPENVZ + unsigned int ctid; + unsigned int vpid; + #endif + #ifdef HAVE_VSERVER + unsigned int vxid; + #endif + #ifdef HAVE_CGROUP + char* cgroup; + #endif + unsigned int oom; +} LinuxProcess; + +#ifndef Process_isKernelThread +#define Process_isKernelThread(_process) (_process->pgrp == 0) +#endif + +#ifndef Process_isUserlandThread +#define Process_isUserlandThread(_process) (_process->pid != _process->tgid) +#endif + + +extern ProcessFieldData Process_fields[]; + +extern ProcessPidColumn Process_pidColumns[]; + +extern ProcessClass LinuxProcess_class; + +LinuxProcess* LinuxProcess_new(Settings* settings); + +void Process_delete(Object* cast); + +/* +[1] Note that before kernel 2.6.26 a process that has not asked for +an io priority formally uses "none" as scheduling class, but the +io scheduler will treat such processes as if it were in the best +effort class. The priority within the best effort class will be +dynamically derived from the cpu nice level of the process: +extern io_priority; +*/ +#define LinuxProcess_effectiveIOPriority(p_) (IOPriority_class(p_->ioPriority) == IOPRIO_CLASS_NONE ? IOPriority_tuple(IOPRIO_CLASS_BE, (p_->super.nice + 20) / 5) : p_->ioPriority) + +IOPriority LinuxProcess_updateIOPriority(LinuxProcess* this); + +bool LinuxProcess_setIOPriority(LinuxProcess* this, IOPriority ioprio); + +void LinuxProcess_writeField(Process* this, RichString* str, ProcessField field); + +long LinuxProcess_compare(const void* v1, const void* v2); + +bool Process_isThread(Process* this); + + +#endif -- cgit v1.2.3