diff options
author | Benny Baumann <BenBE@geshi.org> | 2021-04-10 14:08:26 +0200 |
---|---|---|
committer | BenBE <BenBE@geshi.org> | 2021-05-23 09:22:21 +0200 |
commit | 7224d0e0831ee53d5028915f87dffd51ffa0d6fa (patch) | |
tree | c193e41f03dd30cf414d427c5e4e71b127842d98 /linux | |
parent | 1a1fddae851b344b0a89a8f2753e2d2487f34064 (diff) |
Move kernel/userland thread handling to platform-independent implementation
Diffstat (limited to 'linux')
-rw-r--r-- | linux/LinuxProcess.c | 16 | ||||
-rw-r--r-- | linux/LinuxProcess.h | 6 | ||||
-rw-r--r-- | linux/LinuxProcessList.c | 4 |
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); |