library: remove remaining 'likely' & 'unlikely' macros
Say goodbye to the 'makes it hard to read' macro shit. Reference(s): http://www.freelists.org/post/procps/me-too-newlib,4 Signed-off-by: Jim Warner <james.warner@comcast.net>
This commit is contained in:
parent
7fdab1fcc8
commit
81e0f15ac3
@ -42,10 +42,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#include <proc/namespace.h>
|
#include <proc/namespace.h>
|
||||||
|
|
||||||
#define likely(x) __builtin_expect(!!(x),1)
|
|
||||||
#define unlikely(x) __builtin_expect(!!(x),0)
|
|
||||||
#define expected(x,y) __builtin_expect((x),(y))
|
|
||||||
|
|
||||||
// sometimes it's easier to do this manually, w/o gcc helping
|
// sometimes it's easier to do this manually, w/o gcc helping
|
||||||
#ifdef PROF
|
#ifdef PROF
|
||||||
extern void __cyg_profile_func_enter(void*,void*);
|
extern void __cyg_profile_func_enter(void*,void*);
|
||||||
@ -80,7 +76,7 @@ static unsigned long long unhex(const char *restrict cp){
|
|||||||
unsigned long long ull = 0;
|
unsigned long long ull = 0;
|
||||||
for(;;){
|
for(;;){
|
||||||
char c = *cp++;
|
char c = *cp++;
|
||||||
if(unlikely(c<0x30)) break;
|
if(c<0x30) break;
|
||||||
ull = (ull<<4) | (c - (c>0x57) ? 0x57 : 0x30) ;
|
ull = (ull<<4) | (c - (c>0x57) ? 0x57 : 0x30) ;
|
||||||
}
|
}
|
||||||
return ull;
|
return ull;
|
||||||
@ -247,18 +243,18 @@ ENTER(0x220);
|
|||||||
|
|
||||||
// advance to next line
|
// advance to next line
|
||||||
S = strchr(S, '\n');
|
S = strchr(S, '\n');
|
||||||
if(unlikely(!S)) break; // if no newline
|
if(!S) break; // if no newline
|
||||||
S++;
|
S++;
|
||||||
|
|
||||||
// examine a field name (hash and compare)
|
// examine a field name (hash and compare)
|
||||||
base:
|
base:
|
||||||
if(unlikely(!*S)) break;
|
if(!*S) break;
|
||||||
entry = table[(GPERF_TABLE_SIZE -1) & (asso[(int)S[3]] + asso[(int)S[2]] + asso[(int)S[0]])];
|
entry = table[(GPERF_TABLE_SIZE -1) & (asso[(int)S[3]] + asso[(int)S[2]] + asso[(int)S[0]])];
|
||||||
colon = strchr(S, ':');
|
colon = strchr(S, ':');
|
||||||
if(unlikely(!colon)) break;
|
if(!colon) break;
|
||||||
if(unlikely(colon[1]!='\t')) break;
|
if(colon[1]!='\t') break;
|
||||||
if(unlikely(colon-S != entry.len)) continue;
|
if(colon-S != entry.len) continue;
|
||||||
if(unlikely(memcmp(entry.name,S,colon-S))) continue;
|
if(memcmp(entry.name,S,colon-S)) continue;
|
||||||
|
|
||||||
S = colon+2; // past the '\t'
|
S = colon+2; // past the '\t'
|
||||||
|
|
||||||
@ -273,9 +269,9 @@ ENTER(0x220);
|
|||||||
unsigned u = 0;
|
unsigned u = 0;
|
||||||
while(u < sizeof(buf) - 1u){
|
while(u < sizeof(buf) - 1u){
|
||||||
int c = *S++;
|
int c = *S++;
|
||||||
if(unlikely(c=='\n')) break;
|
if(c=='\n') break;
|
||||||
if(unlikely(c=='\0')) break; // should never happen
|
if(c=='\0') break; // should never happen
|
||||||
if(unlikely(c=='\\')){
|
if(c=='\\'){
|
||||||
c = *S++;
|
c = *S++;
|
||||||
if(c=='\n') break; // should never happen
|
if(c=='\n') break; // should never happen
|
||||||
if(!c) break; // should never happen
|
if(!c) break; // should never happen
|
||||||
@ -394,7 +390,7 @@ ENTER(0x220);
|
|||||||
if (j) {
|
if (j) {
|
||||||
P->supgid = xmalloc(j+1); // +1 in case space disappears
|
P->supgid = xmalloc(j+1); // +1 in case space disappears
|
||||||
memcpy(P->supgid, S, j);
|
memcpy(P->supgid, S, j);
|
||||||
if (unlikely(' ' != P->supgid[--j])) ++j;
|
if (' ' != P->supgid[--j]) ++j;
|
||||||
P->supgid[j] = '\0'; // whack the space or the newline
|
P->supgid[j] = '\0'; // whack the space or the newline
|
||||||
for ( ; j; j--)
|
for ( ; j; j--)
|
||||||
if (' ' == P->supgid[j])
|
if (' ' == P->supgid[j])
|
||||||
@ -538,7 +534,7 @@ ENTER(0x160);
|
|||||||
S = strchr(S, '(') + 1;
|
S = strchr(S, '(') + 1;
|
||||||
tmp = strrchr(S, ')');
|
tmp = strrchr(S, ')');
|
||||||
num = tmp - S;
|
num = tmp - S;
|
||||||
if(unlikely(num >= 16)) num = 15;
|
if(num >= 16) num = 15;
|
||||||
if (!P->cmd)
|
if (!P->cmd)
|
||||||
P->cmd = strndup(S, num);
|
P->cmd = strndup(S, num);
|
||||||
S = tmp + 2; // skip ") "
|
S = tmp + 2; // skip ") "
|
||||||
@ -615,7 +611,7 @@ static int file2str(const char *directory, const char *what, struct utlbuf_s *ub
|
|||||||
};
|
};
|
||||||
ub->buf[tot_read] = '\0';
|
ub->buf[tot_read] = '\0';
|
||||||
close(fd);
|
close(fd);
|
||||||
if (unlikely(tot_read < 1)) return -1;
|
if (tot_read < 1) return -1;
|
||||||
return tot_read;
|
return tot_read;
|
||||||
#undef buffGRW
|
#undef buffGRW
|
||||||
}
|
}
|
||||||
@ -873,7 +869,7 @@ static proc_t* simple_readproc(PROCTAB *restrict const PT, proc_t *restrict cons
|
|||||||
char *restrict const path = PT->path;
|
char *restrict const path = PT->path;
|
||||||
unsigned flags = PT->flags;
|
unsigned flags = PT->flags;
|
||||||
|
|
||||||
if (unlikely(stat(path, &sb) == -1)) /* no such dirent (anymore) */
|
if (stat(path, &sb) == -1) /* no such dirent (anymore) */
|
||||||
goto next_proc;
|
goto next_proc;
|
||||||
|
|
||||||
if ((flags & PROC_UID) && !XinLN(uid_t, sb.st_uid, PT->uids, PT->nuid))
|
if ((flags & PROC_UID) && !XinLN(uid_t, sb.st_uid, PT->uids, PT->nuid))
|
||||||
@ -883,18 +879,18 @@ static proc_t* simple_readproc(PROCTAB *restrict const PT, proc_t *restrict cons
|
|||||||
p->egid = sb.st_gid; /* need a way to get real gid */
|
p->egid = sb.st_gid; /* need a way to get real gid */
|
||||||
|
|
||||||
if (flags & PROC_FILLSTAT) { // read /proc/#/stat
|
if (flags & PROC_FILLSTAT) { // read /proc/#/stat
|
||||||
if (unlikely(file2str(path, "stat", &ub) == -1))
|
if (file2str(path, "stat", &ub) == -1)
|
||||||
goto next_proc;
|
goto next_proc;
|
||||||
stat2proc(ub.buf, p);
|
stat2proc(ub.buf, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags & PROC_FILLMEM) { // read /proc/#/statm
|
if (flags & PROC_FILLMEM) { // read /proc/#/statm
|
||||||
if (likely(file2str(path, "statm", &ub) != -1))
|
if (file2str(path, "statm", &ub) != -1)
|
||||||
statm2proc(ub.buf, p);
|
statm2proc(ub.buf, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags & PROC_FILLSTATUS) { // read /proc/#/status
|
if (flags & PROC_FILLSTATUS) { // read /proc/#/status
|
||||||
if (likely(file2str(path, "status", &ub) != -1)){
|
if (file2str(path, "status", &ub) != -1){
|
||||||
status2proc(ub.buf, p, 1);
|
status2proc(ub.buf, p, 1);
|
||||||
if (flags & PROC_FILLSUPGRP)
|
if (flags & PROC_FILLSUPGRP)
|
||||||
supgrps_from_supgids(p);
|
supgrps_from_supgids(p);
|
||||||
@ -928,7 +924,7 @@ static proc_t* simple_readproc(PROCTAB *restrict const PT, proc_t *restrict cons
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unlikely(flags & PROC_FILLENV)) { // read /proc/#/environ
|
if (flags & PROC_FILLENV) { // read /proc/#/environ
|
||||||
if (flags & PROC_EDITENVRCVT)
|
if (flags & PROC_EDITENVRCVT)
|
||||||
fill_environ_cvt(path, p);
|
fill_environ_cvt(path, p);
|
||||||
else
|
else
|
||||||
@ -952,23 +948,23 @@ static proc_t* simple_readproc(PROCTAB *restrict const PT, proc_t *restrict cons
|
|||||||
} else
|
} else
|
||||||
p->cgroup = NULL;
|
p->cgroup = NULL;
|
||||||
|
|
||||||
if (unlikely(flags & PROC_FILLOOM)) {
|
if (flags & PROC_FILLOOM) {
|
||||||
if (likely(file2str(path, "oom_score", &ub) != -1))
|
if (file2str(path, "oom_score", &ub) != -1)
|
||||||
oomscore2proc(ub.buf, p);
|
oomscore2proc(ub.buf, p);
|
||||||
if (likely(file2str(path, "oom_score_adj", &ub) != -1))
|
if (file2str(path, "oom_score_adj", &ub) != -1)
|
||||||
oomadj2proc(ub.buf, p);
|
oomadj2proc(ub.buf, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unlikely(flags & PROC_FILLNS)) // read /proc/#/ns/*
|
if (flags & PROC_FILLNS) // read /proc/#/ns/*
|
||||||
procps_ns_read_pid(p->tid, &(p->ns));
|
procps_ns_read_pid(p->tid, &(p->ns));
|
||||||
|
|
||||||
|
|
||||||
#ifdef WITH_SYSTEMD
|
#ifdef WITH_SYSTEMD
|
||||||
if (unlikely(flags & PROC_FILLSYSTEMD)) // get sd-login.h stuff
|
if (flags & PROC_FILLSYSTEMD) // get sd-login.h stuff
|
||||||
sd2proc(p);
|
sd2proc(p);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (unlikely(flags & PROC_FILL_LXC)) // value the lxc name
|
if (flags & PROC_FILL_LXC) // value the lxc name
|
||||||
p->lxcname = lxc_containers(path);
|
p->lxcname = lxc_containers(path);
|
||||||
|
|
||||||
return p;
|
return p;
|
||||||
@ -990,7 +986,7 @@ static proc_t* simple_readtask(PROCTAB *restrict const PT, const proc_t *restric
|
|||||||
static struct stat sb; // stat() buffer
|
static struct stat sb; // stat() buffer
|
||||||
unsigned flags = PT->flags;
|
unsigned flags = PT->flags;
|
||||||
|
|
||||||
if (unlikely(stat(path, &sb) == -1)) /* no such dirent (anymore) */
|
if (stat(path, &sb) == -1) /* no such dirent (anymore) */
|
||||||
goto next_task;
|
goto next_task;
|
||||||
|
|
||||||
// if ((flags & PROC_UID) && !XinLN(uid_t, sb.st_uid, PT->uids, PT->nuid))
|
// if ((flags & PROC_UID) && !XinLN(uid_t, sb.st_uid, PT->uids, PT->nuid))
|
||||||
@ -1000,19 +996,19 @@ static proc_t* simple_readtask(PROCTAB *restrict const PT, const proc_t *restric
|
|||||||
t->egid = sb.st_gid; /* need a way to get real gid */
|
t->egid = sb.st_gid; /* need a way to get real gid */
|
||||||
|
|
||||||
if (flags & PROC_FILLSTAT) { // read /proc/#/task/#/stat
|
if (flags & PROC_FILLSTAT) { // read /proc/#/task/#/stat
|
||||||
if (unlikely(file2str(path, "stat", &ub) == -1))
|
if (file2str(path, "stat", &ub) == -1)
|
||||||
goto next_task;
|
goto next_task;
|
||||||
stat2proc(ub.buf, t);
|
stat2proc(ub.buf, t);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef QUICK_THREADS
|
#ifndef QUICK_THREADS
|
||||||
if (flags & PROC_FILLMEM) // read /proc/#/task/#statm
|
if (flags & PROC_FILLMEM) // read /proc/#/task/#statm
|
||||||
if (likely(file2str(path, "statm", &ub) != -1))
|
if (file2str(path, "statm", &ub) != -1)
|
||||||
statm2proc(ub.buf, t);
|
statm2proc(ub.buf, t);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (flags & PROC_FILLSTATUS) { // read /proc/#/task/#/status
|
if (flags & PROC_FILLSTATUS) { // read /proc/#/task/#/status
|
||||||
if (likely(file2str(path, "status", &ub) != -1)) {
|
if (file2str(path, "status", &ub) != -1) {
|
||||||
status2proc(ub.buf, t, 0);
|
status2proc(ub.buf, t, 0);
|
||||||
#ifndef QUICK_THREADS
|
#ifndef QUICK_THREADS
|
||||||
if (flags & PROC_FILLSUPGRP)
|
if (flags & PROC_FILLSUPGRP)
|
||||||
@ -1046,13 +1042,13 @@ static proc_t* simple_readtask(PROCTAB *restrict const PT, const proc_t *restric
|
|||||||
#ifdef QUICK_THREADS
|
#ifdef QUICK_THREADS
|
||||||
if (!p) {
|
if (!p) {
|
||||||
if (flags & PROC_FILLMEM)
|
if (flags & PROC_FILLMEM)
|
||||||
if (likely(file2str(path, "statm", &ub) != -1))
|
if (file2str(path, "statm", &ub) != -1)
|
||||||
statm2proc(ub.buf, t);
|
statm2proc(ub.buf, t);
|
||||||
|
|
||||||
if (flags & PROC_FILLSUPGRP)
|
if (flags & PROC_FILLSUPGRP)
|
||||||
supgrps_from_supgids(t);
|
supgrps_from_supgids(t);
|
||||||
#endif
|
#endif
|
||||||
if (unlikely(flags & PROC_FILLENV)) { // read /proc/#/task/#/environ
|
if (flags & PROC_FILLENV) { // read /proc/#/task/#/environ
|
||||||
if (flags & PROC_EDITENVRCVT)
|
if (flags & PROC_EDITENVRCVT)
|
||||||
fill_environ_cvt(path, t);
|
fill_environ_cvt(path, t);
|
||||||
else
|
else
|
||||||
@ -1077,11 +1073,11 @@ static proc_t* simple_readtask(PROCTAB *restrict const PT, const proc_t *restric
|
|||||||
t->cgroup = NULL;
|
t->cgroup = NULL;
|
||||||
|
|
||||||
#ifdef WITH_SYSTEMD
|
#ifdef WITH_SYSTEMD
|
||||||
if (unlikely(flags & PROC_FILLSYSTEMD)) // get sd-login.h stuff
|
if (flags & PROC_FILLSYSTEMD) // get sd-login.h stuff
|
||||||
sd2proc(t);
|
sd2proc(t);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (unlikely(flags & PROC_FILL_LXC)) // value the lxc name
|
if (flags & PROC_FILL_LXC) // value the lxc name
|
||||||
t->lxcname = lxc_containers(path);
|
t->lxcname = lxc_containers(path);
|
||||||
|
|
||||||
#ifdef QUICK_THREADS
|
#ifdef QUICK_THREADS
|
||||||
@ -1110,14 +1106,14 @@ static proc_t* simple_readtask(PROCTAB *restrict const PT, const proc_t *restric
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (unlikely(flags & PROC_FILLOOM)) {
|
if (flags & PROC_FILLOOM) {
|
||||||
if (likely(file2str(path, "oom_score", &ub) != -1))
|
if (file2str(path, "oom_score", &ub) != -1)
|
||||||
oomscore2proc(ub.buf, t);
|
oomscore2proc(ub.buf, t);
|
||||||
if (likely(file2str(path, "oom_score_adj", &ub) != -1))
|
if (file2str(path, "oom_score_adj", &ub) != -1)
|
||||||
oomadj2proc(ub.buf, t);
|
oomadj2proc(ub.buf, t);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unlikely(flags & PROC_FILLNS)) // read /proc/#/task/#/ns/*
|
if (flags & PROC_FILLNS) // read /proc/#/task/#/ns/*
|
||||||
procps_ns_read_pid(t->tid, &(t->ns));
|
procps_ns_read_pid(t->tid, &(t->ns));
|
||||||
|
|
||||||
return t;
|
return t;
|
||||||
@ -1136,8 +1132,8 @@ static int simple_nextpid(PROCTAB *restrict const PT, proc_t *restrict const p)
|
|||||||
char *restrict const path = PT->path;
|
char *restrict const path = PT->path;
|
||||||
for (;;) {
|
for (;;) {
|
||||||
ent = readdir(PT->procfs);
|
ent = readdir(PT->procfs);
|
||||||
if(unlikely(unlikely(!ent) || unlikely(!ent->d_name[0]))) return 0;
|
if(!ent || !ent->d_name[0]) return 0;
|
||||||
if(likely(likely(*ent->d_name > '0') && likely(*ent->d_name <= '9'))) break;
|
if(*ent->d_name > '0' && *ent->d_name <= '9') break;
|
||||||
}
|
}
|
||||||
p->tgid = strtoul(ent->d_name, NULL, 10);
|
p->tgid = strtoul(ent->d_name, NULL, 10);
|
||||||
p->tid = p->tgid;
|
p->tid = p->tgid;
|
||||||
@ -1163,8 +1159,8 @@ static int simple_nexttid(PROCTAB *restrict const PT, const proc_t *restrict con
|
|||||||
}
|
}
|
||||||
for (;;) {
|
for (;;) {
|
||||||
ent = readdir(PT->taskdir);
|
ent = readdir(PT->taskdir);
|
||||||
if(unlikely(unlikely(!ent) || unlikely(!ent->d_name[0]))) return 0;
|
if(!ent || !ent->d_name[0]) return 0;
|
||||||
if(likely(likely(*ent->d_name > '0') && likely(*ent->d_name <= '9'))) break;
|
if(*ent->d_name > '0' && *ent->d_name <= '9') break;
|
||||||
}
|
}
|
||||||
t->tid = strtoul(ent->d_name, NULL, 10);
|
t->tid = strtoul(ent->d_name, NULL, 10);
|
||||||
t->tgid = p->tgid;
|
t->tgid = p->tgid;
|
||||||
@ -1179,7 +1175,7 @@ static int simple_nexttid(PROCTAB *restrict const PT, const proc_t *restrict con
|
|||||||
static int listed_nextpid(PROCTAB *restrict const PT, proc_t *restrict const p) {
|
static int listed_nextpid(PROCTAB *restrict const PT, proc_t *restrict const p) {
|
||||||
char *restrict const path = PT->path;
|
char *restrict const path = PT->path;
|
||||||
pid_t tgid = *(PT->pids)++;
|
pid_t tgid = *(PT->pids)++;
|
||||||
if(likely(tgid)){
|
if(tgid){
|
||||||
snprintf(path, PROCPATHLEN, "/proc/%d", tgid);
|
snprintf(path, PROCPATHLEN, "/proc/%d", tgid);
|
||||||
p->tgid = tgid;
|
p->tgid = tgid;
|
||||||
p->tid = tgid; // they match for leaders
|
p->tid = tgid; // they match for leaders
|
||||||
@ -1215,7 +1211,7 @@ proc_t* readproc(PROCTAB *restrict const PT, proc_t *restrict p) {
|
|||||||
|
|
||||||
for(;;){
|
for(;;){
|
||||||
// fills in the path, plus p->tid and p->tgid
|
// fills in the path, plus p->tid and p->tgid
|
||||||
if (unlikely(!PT->finder(PT,p))) goto out;
|
if (!PT->finder(PT,p)) goto out;
|
||||||
|
|
||||||
// go read the process data
|
// go read the process data
|
||||||
ret = PT->reader(PT,p);
|
ret = PT->reader(PT,p);
|
||||||
|
Loading…
Reference in New Issue
Block a user