summaryrefslogtreecommitdiffstats
path: root/linux
diff options
context:
space:
mode:
authorBenny Baumann <BenBE@geshi.org>2021-04-10 14:08:26 +0200
committerBenBE <BenBE@geshi.org>2021-05-23 09:22:21 +0200
commit7224d0e0831ee53d5028915f87dffd51ffa0d6fa (patch)
treec193e41f03dd30cf414d427c5e4e71b127842d98 /linux
parent1a1fddae851b344b0a89a8f2753e2d2487f34064 (diff)
Move kernel/userland thread handling to platform-independent implementation
Diffstat (limited to 'linux')
-rw-r--r--linux/LinuxProcess.c16
-rw-r--r--linux/LinuxProcess.h6
-rw-r--r--linux/LinuxProcessList.c4
3 files changed, 8 insertions, 18 deletions
diff --git a/linux/LinuxProcess.c b/linux/LinuxProcess.c
index 5563763c..bc6f09a8 100644
--- a/linux/LinuxProcess.c
+++ b/linux/LinuxProcess.c
@@ -685,7 +685,7 @@ static void LinuxProcess_writeField(const Process* this, RichString* str, Proces
procComm = this->procComm;
} else {
attr = CRT_colors[PROCESS_SHADOW];
- procComm = Process_isKernelThread(lp) ? kthreadID : "N/A";
+ procComm = Process_isKernelThread(this) ? kthreadID : "N/A";
}
/* 15 being (TASK_COMM_LEN - 1) */
Process_printLeftAlignedField(str, attr, procComm, 15);
@@ -700,7 +700,7 @@ static void LinuxProcess_writeField(const Process* this, RichString* str, Proces
procExe = this->procExe + this->procExeBasenameOffset;
} else {
attr = CRT_colors[PROCESS_SHADOW];
- procExe = Process_isKernelThread(lp) ? kthreadID : "N/A";
+ procExe = Process_isKernelThread(this) ? kthreadID : "N/A";
}
Process_printLeftAlignedField(str, attr, procExe, 15);
return;
@@ -811,13 +811,13 @@ static int LinuxProcess_compareByKey(const Process* v1, const Process* v2, Proce
case SECATTR:
return SPACESHIP_NULLSTR(p1->secattr, p2->secattr);
case PROC_COMM: {
- const char *comm1 = v1->procComm ? v1->procComm : (Process_isKernelThread(p1) ? kthreadID : "");
- const char *comm2 = v2->procComm ? v2->procComm : (Process_isKernelThread(p2) ? kthreadID : "");
+ const char *comm1 = v1->procComm ? v1->procComm : (Process_isKernelThread(v1) ? kthreadID : "");
+ const char *comm2 = v2->procComm ? v2->procComm : (Process_isKernelThread(v2) ? kthreadID : "");
return strcmp(comm1, comm2);
}
case PROC_EXE: {
- const char *exe1 = v1->procExe ? (v1->procExe + v1->procExeBasenameOffset) : (Process_isKernelThread(p1) ? kthreadID : "");
- const char *exe2 = v2->procExe ? (v2->procExe + v2->procExeBasenameOffset) : (Process_isKernelThread(p2) ? kthreadID : "");
+ const char *exe1 = v1->procExe ? (v1->procExe + v1->procExeBasenameOffset) : (Process_isKernelThread(v1) ? kthreadID : "");
+ const char *exe2 = v2->procExe ? (v2->procExe + v2->procExeBasenameOffset) : (Process_isKernelThread(v2) ? kthreadID : "");
return strcmp(exe1, exe2);
}
case CWD:
@@ -827,10 +827,6 @@ static int LinuxProcess_compareByKey(const Process* v1, const Process* v2, Proce
}
}
-bool Process_isThread(const Process* this) {
- return (Process_isUserlandThread(this) || Process_isKernelThread(this));
-}
-
const ProcessClass LinuxProcess_class = {
.super = {
.extends = Class(Process),
diff --git a/linux/LinuxProcess.h b/linux/LinuxProcess.h
index 20963bcb..90ce7c50 100644
--- a/linux/LinuxProcess.h
+++ b/linux/LinuxProcess.h
@@ -32,8 +32,6 @@ in the source distribution for its full text.
typedef struct LinuxProcess_ {
Process super;
- bool isKernelThread;
- bool isUserlandThread;
IOPriority ioPriority;
unsigned long int cminflt;
unsigned long int cmajflt;
@@ -105,10 +103,6 @@ typedef struct LinuxProcess_ {
char* cwd;
} LinuxProcess;
-#define Process_isKernelThread(_process) (((const LinuxProcess*)(_process))->isKernelThread)
-
-#define Process_isUserlandThread(_process) (((const LinuxProcess *)(_process))->isUserlandThread)
-
extern int pageSize;
extern int pageSizeKB;
diff --git a/linux/LinuxProcessList.c b/linux/LinuxProcessList.c
index 66b648ea..020fc0a5 100644
--- a/linux/LinuxProcessList.c
+++ b/linux/LinuxProcessList.c
@@ -1015,7 +1015,7 @@ static bool LinuxProcessList_readCmdlineFile(Process* process, openat_arg_t proc
if (process->state == 'Z') {
process->cmdlineBasenameEnd = 0;
} else {
- ((LinuxProcess*)process)->isKernelThread = true;
+ process->isKernelThread = true;
}
return true;
}
@@ -1315,7 +1315,7 @@ static bool LinuxProcessList_recurseProcTree(LinuxProcessList* this, openat_arg_
LinuxProcess* lp = (LinuxProcess*) proc;
proc->tgid = parent ? parent->pid : pid;
- lp->isUserlandThread = proc->pid != proc->tgid;
+ proc->isUserlandThread = proc->pid != proc->tgid;
#ifdef HAVE_OPENAT
int procFd = openat(dirFd, entry->d_name, O_PATH | O_DIRECTORY | O_NOFOLLOW);

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