mirror of https://github.com/xzeldon/htop.git
Disable the syscall on systems that don't have it.
Got a report in #397 that htop runs in NetBSD masquerading as Linux and using a compatibility /proc (like we used to in FreeBSD) and that it builds fine apart from this syscall.
This commit is contained in:
parent
ae823c375a
commit
35657208d7
|
@ -268,13 +268,20 @@ io_priority = (cpu_nice + 20) / 5. -- From ionice(1) man page
|
||||||
#define LinuxProcess_effectiveIOPriority(p_) (IOPriority_class(p_->ioPriority) == IOPRIO_CLASS_NONE ? IOPriority_tuple(IOPRIO_CLASS_BE, (p_->super.nice + 20) / 5) : p_->ioPriority)
|
#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) {
|
IOPriority LinuxProcess_updateIOPriority(LinuxProcess* this) {
|
||||||
IOPriority ioprio = syscall(SYS_ioprio_get, IOPRIO_WHO_PROCESS, this->super.pid);
|
IOPriority ioprio = 0;
|
||||||
|
// Other OSes masquerading as Linux (NetBSD?) don't have this syscall
|
||||||
|
#ifdef SYS_ioprio_get
|
||||||
|
ioprio = syscall(SYS_ioprio_get, IOPRIO_WHO_PROCESS, this->super.pid);
|
||||||
|
#endif
|
||||||
this->ioPriority = ioprio;
|
this->ioPriority = ioprio;
|
||||||
return ioprio;
|
return ioprio;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool LinuxProcess_setIOPriority(LinuxProcess* this, IOPriority ioprio) {
|
bool LinuxProcess_setIOPriority(LinuxProcess* this, IOPriority ioprio) {
|
||||||
|
// Other OSes masquerading as Linux (NetBSD?) don't have this syscall
|
||||||
|
#ifdef SYS_ioprio_set
|
||||||
syscall(SYS_ioprio_set, IOPRIO_WHO_PROCESS, this->super.pid, ioprio);
|
syscall(SYS_ioprio_set, IOPRIO_WHO_PROCESS, this->super.pid, ioprio);
|
||||||
|
#endif
|
||||||
return (LinuxProcess_updateIOPriority(this) == ioprio);
|
return (LinuxProcess_updateIOPriority(this) == ioprio);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue