2014-11-27 23:02:52 +00:00
|
|
|
/* 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.
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
2015-03-15 23:29:13 +00:00
|
|
|
#define PROCESS_FLAG_LINUX_IOPRIO 0x0100
|
|
|
|
#define PROCESS_FLAG_LINUX_OPENVZ 0x0200
|
|
|
|
#define PROCESS_FLAG_LINUX_VSERVER 0x0400
|
|
|
|
#define PROCESS_FLAG_LINUX_CGROUP 0x0800
|
|
|
|
|
|
|
|
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,
|
|
|
|
#ifdef HAVE_OPENVZ
|
|
|
|
CTID, VPID,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_VSERVER
|
|
|
|
VXID,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_TASKSTATS
|
|
|
|
RCHAR, WCHAR, SYSCR, SYSCW, RBYTES, WBYTES, CNCLWB, IO_READ_RATE, IO_WRITE_RATE, IO_RATE,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_CGROUP
|
|
|
|
CGROUP,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_OOM
|
|
|
|
OOM,
|
|
|
|
#endif
|
|
|
|
IO_PRIORITY,
|
|
|
|
LAST_PROCESSFIELD
|
|
|
|
} LinuxProcessField;
|
|
|
|
|
2014-11-27 23:02:52 +00:00
|
|
|
#include "IOPriority.h"
|
|
|
|
|
|
|
|
typedef struct LinuxProcess_ {
|
|
|
|
Process super;
|
|
|
|
IOPriority ioPriority;
|
|
|
|
} LinuxProcess;
|
|
|
|
|
2015-02-20 16:52:10 +00:00
|
|
|
#define Process_delete LinuxProcess_delete
|
|
|
|
|
|
|
|
|
2015-03-15 23:29:13 +00:00
|
|
|
extern ProcessFieldData Process_fields[];
|
|
|
|
|
|
|
|
extern char* Process_pidFormat;
|
|
|
|
extern char* Process_tpgidFormat;
|
|
|
|
|
|
|
|
void Process_setupColumnWidths();
|
|
|
|
|
2015-02-20 16:52:10 +00:00
|
|
|
LinuxProcess* LinuxProcess_new(Settings* settings);
|
|
|
|
|
|
|
|
void LinuxProcess_delete(Object* cast);
|
2014-11-27 23:02:52 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
[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);
|
|
|
|
|
2015-01-22 01:27:31 +00:00
|
|
|
void Process_writeField(Process* this, RichString* str, ProcessField field);
|
2014-11-27 23:02:52 +00:00
|
|
|
|
2015-01-22 01:27:31 +00:00
|
|
|
long Process_compare(const void* v1, const void* v2);
|
2014-11-27 23:02:52 +00:00
|
|
|
|
|
|
|
#endif
|