mirror of
https://github.com/xzeldon/htop.git
synced 2025-07-12 04:04:35 +03:00
Isolate portable and Linux-specific process fields.
This commit is contained in:
@ -15,28 +15,66 @@ in the source distribution for its full text.
|
||||
#define PROCESS_FLAG_LINUX_VSERVER 0x0400
|
||||
#define PROCESS_FLAG_LINUX_CGROUP 0x0800
|
||||
|
||||
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 {
|
||||
PID = 1, COMM, STATE, PPID, PGRP, SESSION, TTY_NR, TPGID, FLAGS, MINFLT, CMINFLT, MAJFLT, CMAJFLT, UTIME,
|
||||
STIME, CUTIME, CSTIME, PRIORITY, NICE, ITREALVALUE, STARTTIME, VSIZE, RSS, RLIM, STARTCODE, ENDCODE,
|
||||
STARTSTACK, KSTKESP, KSTKEIP, SIGNAL, BLOCKED, SSIGIGNORE, SIGCATCH, WCHAN, NSWAP, CNSWAP, EXIT_SIGNAL,
|
||||
PROCESSOR, M_SIZE, M_RESIDENT, M_SHARE, M_TRS, M_DRS, M_LRS, M_DT, ST_UID, PERCENT_CPU, PERCENT_MEM,
|
||||
USER, TIME, NLWP, TGID,
|
||||
CMINFLT = 11,
|
||||
CMAJFLT = 13,
|
||||
UTIME = 14,
|
||||
STIME = 15,
|
||||
CUTIME = 16,
|
||||
CSTIME = 17,
|
||||
PROCESSOR = 38,
|
||||
M_SHARE = 41,
|
||||
M_TRS = 42,
|
||||
M_DRS = 43,
|
||||
M_LRS = 44,
|
||||
M_DT = 45,
|
||||
#ifdef HAVE_OPENVZ
|
||||
CTID, VPID,
|
||||
CTID = 100,
|
||||
VPID = 101,
|
||||
#endif
|
||||
#ifdef HAVE_VSERVER
|
||||
VXID,
|
||||
VXID = 102,
|
||||
#endif
|
||||
#ifdef HAVE_TASKSTATS
|
||||
RCHAR, WCHAR, SYSCR, SYSCW, RBYTES, WBYTES, CNCLWB, IO_READ_RATE, IO_WRITE_RATE, IO_RATE,
|
||||
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,
|
||||
CGROUP = 113,
|
||||
#endif
|
||||
#ifdef HAVE_OOM
|
||||
OOM,
|
||||
OOM = 114,
|
||||
#endif
|
||||
IO_PRIORITY,
|
||||
IO_PRIORITY = 115,
|
||||
LAST_PROCESSFIELD
|
||||
} LinuxProcessField;
|
||||
|
||||
@ -45,9 +83,53 @@ typedef enum LinuxProcessFields {
|
||||
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;
|
||||
int processor;
|
||||
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
|
||||
#ifdef HAVE_OOM
|
||||
unsigned int oom;
|
||||
#endif
|
||||
} LinuxProcess;
|
||||
|
||||
#define Process_delete LinuxProcess_delete
|
||||
#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[];
|
||||
@ -59,7 +141,7 @@ void Process_setupColumnWidths();
|
||||
|
||||
LinuxProcess* LinuxProcess_new(Settings* settings);
|
||||
|
||||
void LinuxProcess_delete(Object* cast);
|
||||
void Process_delete(Object* cast);
|
||||
|
||||
/*
|
||||
[1] Note that before kernel 2.6.26 a process that has not asked for
|
||||
@ -79,4 +161,7 @@ void Process_writeField(Process* this, RichString* str, ProcessField field);
|
||||
|
||||
long Process_compare(const void* v1, const void* v2);
|
||||
|
||||
bool Process_isThread(Process* this);
|
||||
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user