SolarisProcess.h 1.53 KB
Newer Older
gmbroome's avatar
gmbroome committed
1
2
3
4
5
6
7
/* Do not edit this file. It was automatically generated. */

#ifndef HEADER_SolarisProcess
#define HEADER_SolarisProcess
/*
htop - SolarisProcess.h
(C) 2015 Hisham H. Muhammad
8
(C) 2017,2018 Guy M. Broome
gmbroome's avatar
gmbroome committed
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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,
24
25
   LWPID = 106,
   LAST_PROCESSFIELD = 107,
gmbroome's avatar
gmbroome committed
26
27
28
29
} SolarisProcessField;


typedef struct SolarisProcess_ {
30
31
   Process    super;
   int        kernel;
gmbroome's avatar
gmbroome committed
32
   zoneid_t   zoneid;
33
   char*      zname;
gmbroome's avatar
gmbroome committed
34
35
36
37
   taskid_t   taskid;
   projid_t   projid;
   poolid_t   poolid;
   ctid_t     contid;
38
39
40
41
   bool       is_lwp;
   pid_t      realpid;
   pid_t      realppid;
   pid_t      lwpid;
gmbroome's avatar
gmbroome committed
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
} 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