From ccb6ae8de14b0cde25b84369ef995bcd69cbf7b6 Mon Sep 17 00:00:00 2001 From: Craig Small Date: Sat, 16 Apr 2016 17:03:57 +1000 Subject: [PATCH] library: cleanup of library includes The includes used to define a lot of things a library include should not. It was also a bit messy what was exposed in the library and what was not. get_pid_digits -> procps_pid_length and exported correctly MALLOC attribute move into relevant .c files NORETURN attribute moved to relevant .c, not used in library PURE attribute removed, it wasn't used KLONG/KLF/STRTOUKL were fixed for long, so now just use long HIDDEN attribute removed. It was for 3 functions. The PROCPS_EXPORT seems to do the same (opposite) thing. likely/unlikely removed from most places, its highly debateable this does anything useful as CPUs have gotten smarter about branches. Re-arranged the includes, ALL external programs should just #include then proc/procps.h includes headers for files that have exported functions. procps.h and the headers it includes should not use items that are not exportable (e.g. hidden functions or macros) they go in procps-private.h --- free.c | 4 +-- pgrep.c | 4 +-- pidof.c | 4 +-- pmap.c | 19 +++++----- proc/alloc.c | 4 +++ proc/alloc.h | 5 ++- proc/devname.h | 2 +- proc/diskstat.h | 2 +- proc/escape.h | 2 +- proc/libprocps.sym | 2 +- proc/meminfo.h | 2 +- proc/namespace.h | 2 -- proc/pids.h | 1 + proc/procps-private.h | 5 +++ proc/procps.h | 84 ++++++++++++++++--------------------------- proc/pwcache.h | 2 +- proc/readproc.c | 21 +++++------ proc/readproc.h | 5 ++- proc/slab.h | 2 ++ proc/sysinfo.c | 54 ++++++++++++++-------------- proc/sysinfo.h | 4 +-- proc/uptime.h | 3 +- proc/version.h | 3 +- proc/vmstat.h | 2 +- proc/wchan.h | 2 +- ps/common.h | 3 +- ps/display.c | 3 -- ps/global.c | 6 ++-- ps/help.c | 2 +- ps/output.c | 19 +++++----- ps/sortformat.c | 2 +- skill.c | 3 +- slabtop.c | 2 +- tload.c | 2 +- top/top.c | 17 ++++----- uptime.c | 4 +-- vmstat.c | 7 +--- w.c | 8 ++--- 38 files changed, 137 insertions(+), 181 deletions(-) diff --git a/free.c b/free.c index 4a9686a8..e7371604 100644 --- a/free.c +++ b/free.c @@ -41,9 +41,7 @@ #include #include -#include -#include -#include +#include #ifndef SIZE_MAX #define SIZE_MAX 32 diff --git a/pgrep.c b/pgrep.c index ed2f02c0..85e703ad 100644 --- a/pgrep.c +++ b/pgrep.c @@ -49,9 +49,7 @@ #include "nls.h" #include "signals.h" #include "xalloc.h" -#include -#include -#include +#include enum pids_item Items[] = { PROCPS_PIDS_ID_PID, diff --git a/pidof.c b/pidof.c index 9e53393c..c8d1175f 100644 --- a/pidof.c +++ b/pidof.c @@ -27,9 +27,7 @@ #include "fileutils.h" #include "nls.h" #include "xalloc.h" -//#include "proc/readproc.h" -#include -#include "proc/version.h" /* procps_version */ +#include #define grow_size(x) (x = x * 5 / 4 + 1024) diff --git a/pmap.c b/pmap.c index d8d163f7..1cc719e3 100644 --- a/pmap.c +++ b/pmap.c @@ -35,8 +35,7 @@ #include "fileutils.h" #include "nls.h" #include "xalloc.h" -#include "proc/version.h" -#include +#include enum pids_item Pid_items[] = { PROCPS_PIDS_ID_PID, PROCPS_PIDS_ID_TGID, @@ -176,7 +175,7 @@ static void discover_shm_minor(void) unsigned long start, end; unsigned long long file_offset, inode; unsigned dev_major, dev_minor; - sscanf(mapbuf_b, "%" KLF "x-%" KLF "x %31s %llx %x:%x %llu", &start, + sscanf(mapbuf_b, "%lx-%lx %31s %llx %x:%x %llu", &start, &end, perms, &file_offset, &dev_major, &dev_minor, &inode); tmp = strchr(mapbuf_b, '\n'); @@ -373,7 +372,7 @@ static void print_extended_maps (FILE *f) mapbuf); } strcpy(listnode->value_str, value_str); - sscanf(value_str, "%"KLF"u", &listnode->value); + sscanf(value_str, "%lu", &listnode->value); if (firstmapping == 2) { listnode->total += listnode->value; if (q_option) { @@ -614,7 +613,7 @@ static int one_proc (struct pids_stack *p) } if (strncmp("Swap", smap_key, 4) == 0) { /*doesn't matter as long as last */ - printf("%0*" KLF "x %*lu %*llu %*llu %*s %s\n", + printf("%0*lx %*lu %*llu %*llu %*s %s\n", maxw1, start, maxw2, (unsigned long)(diff >> 10), maxw3, rss, @@ -630,7 +629,7 @@ static int one_proc (struct pids_stack *p) continue; } } - sscanf(mapbuf, "%" KLF "x-%" KLF "x %31s %llx %x:%x %llu", &start, + sscanf(mapbuf, "%lx-%lx %31s %llx %x:%x %llu", &start, &end, perms, &file_offset, &dev_major, &dev_minor, &inode); @@ -677,7 +676,7 @@ static int one_proc (struct pids_stack *p) const char *cp = mapping_name(p, start, diff, mapbuf, map_desc_showpath, dev_major, dev_minor, inode); - printf("%0*" KLF "x %*lu %*s %0*llx %*.*s%03x:%05x %s\n", + printf("%0*lx %*lu %*s %0*llx %*.*s%03x:%05x %s\n", maxw1, start, maxw2, (unsigned long)(diff >> 10), maxw3, perms, @@ -690,7 +689,7 @@ static int one_proc (struct pids_stack *p) mapping_name(p, start, diff, mapbuf, map_desc_showpath, dev_major, dev_minor, inode); printf((sizeof(long) == 8) - ? "%016" KLF "x %6luK %s %s\n" + ? "%016lx %6luK %s %s\n" : "%08lx %6luK %s %s\n", start, (unsigned long)(diff >> 10), perms, cp); } @@ -757,9 +756,9 @@ static void range_arguments(char *optarg) else arg2 = arg1; if (arg1 && *arg1) - range_low = STRTOUKL(arg1, &arg1, 16); + range_low = strtoul(arg1, &arg1, 16); if (*arg2) - range_high = STRTOUKL(arg2, &arg2, 16); + range_high = strtoul(arg2, &arg2, 16); if (arg1 && (*arg1 || *arg2)) xerrx(EXIT_FAILURE, "%s: '%s'", _("failed to parse argument"), optarg); diff --git a/proc/alloc.c b/proc/alloc.c index 94af47f7..7d9d69c5 100644 --- a/proc/alloc.c +++ b/proc/alloc.c @@ -25,6 +25,10 @@ #include "alloc.h" +typedef void (*message_fn)(const char *__restrict, ...) __attribute__((format(printf,1,2))); + /* change xalloc_err_handler to override the default fprintf(stderr... */ +extern message_fn xalloc_err_handler; + static void xdefault_error(const char *restrict fmts, ...) __attribute__((format(printf,1,2))); static void xdefault_error(const char *restrict fmts, ...) { va_list va; diff --git a/proc/alloc.h b/proc/alloc.h index 3afec5db..c1d3e9d4 100644 --- a/proc/alloc.h +++ b/proc/alloc.h @@ -1,12 +1,11 @@ #ifndef PROCPS_PROC_ALLOC_H #define PROCPS_PROC_ALLOC_H -#include +#include __BEGIN_DECLS - /* change xalloc_err_handler to override the default fprintf(stderr... */ -extern message_fn xalloc_err_handler; +#define MALLOC __attribute__ ((__malloc__)) extern void *xcalloc(unsigned int size) MALLOC; extern void *xmalloc(size_t size) MALLOC; diff --git a/proc/devname.h b/proc/devname.h index 4517cc68..7aa1f408 100644 --- a/proc/devname.h +++ b/proc/devname.h @@ -1,7 +1,7 @@ #ifndef PROC_DEVNAME_H #define PROC_DEVNAME_H -#include +#include __BEGIN_DECLS diff --git a/proc/diskstat.h b/proc/diskstat.h index adf9cfb4..29dc8fce 100644 --- a/proc/diskstat.h +++ b/proc/diskstat.h @@ -22,7 +22,7 @@ #ifndef PROC_DISKSTAT_H #define PROC_DISKSTAT_H -#include +#include __BEGIN_DECLS diff --git a/proc/escape.h b/proc/escape.h index 5ec59f67..c2f3c45b 100644 --- a/proc/escape.h +++ b/proc/escape.h @@ -1,8 +1,8 @@ #ifndef PROCPS_PROC_ESCAPE_H #define PROCPS_PROC_ESCAPE_H -#include #include +#include __BEGIN_DECLS diff --git a/proc/libprocps.sym b/proc/libprocps.sym index 997bd699..77a1bda4 100644 --- a/proc/libprocps.sym +++ b/proc/libprocps.sym @@ -7,7 +7,6 @@ global: escape_strlist; escaped_copy; fatal_proc_unmounted; - get_pid_digits; look_up_our_self; lookup_wchan; openproc; @@ -40,6 +39,7 @@ global: procps_ns_get_name; procps_ns_get_id; procps_ns_read_pid; + procps_pid_length; procps_pids_new; procps_pids_read_next; procps_pids_read_open; diff --git a/proc/meminfo.h b/proc/meminfo.h index 9006ce09..7300f70a 100644 --- a/proc/meminfo.h +++ b/proc/meminfo.h @@ -23,7 +23,7 @@ #ifndef PROC_MEMINFO_H #define PROC_MEMINFO_H -#include +#include __BEGIN_DECLS diff --git a/proc/namespace.h b/proc/namespace.h index 69254a80..2aaea5c0 100644 --- a/proc/namespace.h +++ b/proc/namespace.h @@ -23,8 +23,6 @@ #ifndef PROC_NAMESPACE_H #define PROC_NAMESPACE_H -#include - __BEGIN_DECLS enum namespace_type { diff --git a/proc/pids.h b/proc/pids.h index 630e9e86..bfc977c4 100644 --- a/proc/pids.h +++ b/proc/pids.h @@ -23,6 +23,7 @@ #ifndef _PROC_PIDS_H #define _PROC_PIDS_H +#include __BEGIN_DECLS enum pids_item { diff --git a/proc/procps-private.h b/proc/procps-private.h index ea9479b9..57963695 100644 --- a/proc/procps-private.h +++ b/proc/procps-private.h @@ -20,6 +20,11 @@ #include +#define FUNCTION __attribute__((__const__)) // no access to global mem, even via ptr, and no side effect #define PROCPS_EXPORT __attribute__ ((visibility("default"))) +#define STRINGIFY_ARG(a) #a +#define STRINGIFY(a) STRINGIFY_ARG(a) + + #endif diff --git a/proc/procps.h b/proc/procps.h index 7ee2cdf3..2bf042e7 100644 --- a/proc/procps.h +++ b/proc/procps.h @@ -1,59 +1,35 @@ +/* + * libprocps - Library to read proc filesystem + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ #ifndef PROCPS_PROC_PROCPS_H #define PROCPS_PROC_PROCPS_H -#include - -#define KLONG long -#define KLF "l" -#define STRTOUKL strtoul - -// since gcc-2.5 -#define NORETURN __attribute__((__noreturn__)) -#define FUNCTION __attribute__((__const__)) // no access to global mem, even via ptr, and no side effect - -#if __GNUC__ > 2 || __GNUC_MINOR__ >= 96 -// won't alias anything, and aligned enough for anything -#define MALLOC __attribute__ ((__malloc__)) -// no side effect, may read globals -#define PURE __attribute__ ((__pure__)) -// tell gcc what to expect: if(unlikely(err)) die(err); -#define likely(x) __builtin_expect(!!(x),1) -#define unlikely(x) __builtin_expect(!!(x),0) -#define expected(x,y) __builtin_expect((x),(y)) -#else -#define MALLOC -#define PURE -#define likely(x) (x) -#define unlikely(x) (x) -#define expected(x,y) (x) -#endif - -#ifdef SHARED -# if SHARED==1 && (__GNUC__ > 2 || __GNUC_MINOR__ >= 96) -# define LABEL_OFFSET -# endif -#endif - -#define STRINGIFY_ARG(a) #a -#define STRINGIFY(a) STRINGIFY_ARG(a) - -// marks old junk, to warn non-procps-ng library users -#if ( __GNUC__ == 3 && __GNUC_MINOR__ > 0 ) || __GNUC__ > 3 -#define OBSOLETE __attribute__((deprecated)) -#else -#define OBSOLETE -#endif - -// Like HIDDEN, but for an alias that gets created. -// In gcc-3.2 there is an alias+hidden conflict. -// Many will have patched this bug, but oh well. -#if ( __GNUC__ == 3 && __GNUC_MINOR__ > 2 ) || __GNUC__ > 3 -#define HIDDEN_ALIAS(x) extern __typeof(x) x##_direct __attribute__((alias(#x),visibility("hidden"))) -#else -#define HIDDEN_ALIAS(x) extern __typeof(x) x##_direct __attribute__((alias(#x))) -#endif - - -typedef void (*message_fn)(const char *__restrict, ...) __attribute__((format(printf,1,2))); +/* includes that show public exports go here */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #endif diff --git a/proc/pwcache.h b/proc/pwcache.h index 1fab493b..b0c7353f 100644 --- a/proc/pwcache.h +++ b/proc/pwcache.h @@ -1,8 +1,8 @@ #ifndef PROCPS_PROC_PWCACHE_H #define PROCPS_PROC_PWCACHE_H +#include #include -#include __BEGIN_DECLS diff --git a/proc/readproc.c b/proc/readproc.c index cebb2253..aaf3466d 100644 --- a/proc/readproc.c +++ b/proc/readproc.c @@ -42,6 +42,10 @@ #endif #include +#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 #ifdef PROF extern void __cyg_profile_func_enter(void*,void*); @@ -550,9 +554,9 @@ ENTER(0x160); "%llu " /* start_time */ "%lu " "%ld " - "%lu %"KLF"u %"KLF"u %"KLF"u %"KLF"u %"KLF"u " + "%lu %lu %lu %lu %lu %lu " "%*s %*s %*s %*s " /* discard, no RT signals & Linux 2.1 used hex */ - "%"KLF"u %*u %*u " + "%lu %*u %*u " "%d %d " "%lu %lu", &P->state, @@ -906,7 +910,7 @@ static proc_t* simple_readproc(PROCTAB *restrict const PT, proc_t *restrict cons // if multithreaded, some values are crap if(p->nlwp > 1){ - p->wchan = (KLONG)~0ull; + p->wchan = ~0ul; } /* some number->text resolving which is time consuming */ @@ -1403,9 +1407,6 @@ void look_up_our_self(proc_t *p) { free(ub.buf); } -HIDDEN_ALIAS(readproc); -HIDDEN_ALIAS(readtask); -HIDDEN_ALIAS(readeither); /* Convenient wrapper around openproc and readproc to slurp in the whole process * table subset satisfying the constraints of flags and the optional PID list. @@ -1439,7 +1440,7 @@ proc_t** readproctab(unsigned flags, ...) { return 0; do { /* read table: */ tab = xrealloc(tab, (n+1)*sizeof(proc_t*));/* realloc as we go, using */ - tab[n] = readproc_direct(PT, NULL); /* final null to terminate */ + tab[n] = readproc(PT, NULL); /* final null to terminate */ } while (tab[n++]); /* stop when NULL reached */ closeproc(PT); return tab; @@ -1473,7 +1474,7 @@ proc_data_t *readproctab2(int(*want_proc)(proc_t *buf), int(*want_task)(proc_t * n_proc_alloc = n_proc_alloc*5/4+30; // grow by over 25% ptab = xrealloc(ptab,sizeof(proc_t*)*n_proc_alloc); } - tmp = readproc_direct(PT, data+n_used); + tmp = readproc(PT, data+n_used); if(!tmp) break; if(!want_proc(tmp)) continue; ptab[n_proc++] = (proc_t*)(n_used++); @@ -1493,7 +1494,7 @@ proc_data_t *readproctab2(int(*want_proc)(proc_t *buf), int(*want_task)(proc_t * n_task_alloc = n_task_alloc*5/4+1; // grow by over 25% ttab = xrealloc(ttab,sizeof(proc_t*)*n_task_alloc); } - t = readtask_direct(PT, tmp, data+n_used); + t = readtask(PT, tmp, data+n_used); if(!t) break; if(!want_task(t)) continue; ttab[n_task++] = (proc_t*)(n_used++); @@ -1533,7 +1534,7 @@ proc_data_t *readproctab3 (int(*want_task)(proc_t *buf), PROCTAB *restrict const } // let this next guy allocate the necessary proc_t storage // (or recycle it) since he can't tolerate realloc relocations - if (!(p = readeither_direct(PT,p))) break; + if (!(p = readeither(PT,p))) break; if (want_task(p)) { tab[n_used++] = p; p = NULL; diff --git a/proc/readproc.h b/proc/readproc.h index 10160b40..3fd7007a 100644 --- a/proc/readproc.h +++ b/proc/readproc.h @@ -10,8 +10,7 @@ // in the file COPYING -#include -#include +// #include #include #define SIGNAL_STRING @@ -93,7 +92,7 @@ typedef struct proc_t { sigcatch, // status mask of caught signals _sigpnd; // status mask of PER TASK pending signals #endif - unsigned KLONG + unsigned long start_code, // stat address of beginning of code segment end_code, // stat address of end of code segment start_stack, // stat address of the bottom of stack for the process diff --git a/proc/slab.h b/proc/slab.h index 5f565ef3..0aed7f44 100644 --- a/proc/slab.h +++ b/proc/slab.h @@ -22,6 +22,8 @@ #ifndef _PROC_SLAB_H #define _PROC_SLAB_H +#include + __BEGIN_DECLS enum slabs_item { diff --git a/proc/sysinfo.c b/proc/sysinfo.c index f58d139c..0cd8759f 100644 --- a/proc/sysinfo.c +++ b/proc/sysinfo.c @@ -173,34 +173,36 @@ unsigned int getslabinfo (struct slab_cache **slab){ return cSlab; } -/////////////////////////////////////////////////////////////////////////// +#define PROCFS_PID_MAX "/proc/sys/kernel/pid_max" +#define DEFAULT_PID_LENGTH 5 -unsigned get_pid_digits(void){ - char pidbuf[24]; - char *endp; - long rc; - int fd; - static unsigned ret; +/* + * procps_pid_length + * + * Return the length of the maximum possible pid. + * + * Returns either the strlen of PROCFS_PID_MAX or the + * best-guess DEFAULT_PID_LENGTH + */ +PROCPS_EXPORT unsigned int procps_pid_length(void) +{ + FILE *fp; + char pidbuf[24]; + char *endp; + unsigned long int max_pid; + static int pid_length=0; - if(ret) goto out; - ret = 5; - fd = open("/proc/sys/kernel/pid_max", O_RDONLY); - if(fd==-1) goto out; - rc = read(fd, pidbuf, sizeof pidbuf); - close(fd); - if(rc<3) goto out; - pidbuf[rc] = '\0'; - rc = strtol(pidbuf,&endp,10); - if(rc<42) goto out; - if(*endp && *endp!='\n') goto out; - rc--; // the pid_max value is really the max PID plus 1 - ret = 0; - while(rc){ - rc /= 10; - ret++; - } -out: - return ret; + if (pid_length) + return pid_length; + + pid_length = DEFAULT_PID_LENGTH; + if ((fp = fopen(PROCFS_PID_MAX, "r")) != NULL) { + if (fgets(buf, 24, fp) != NULL) { + pid_length = strlen(buf); + } + fclose(fp); + } + return pid_length; } /////////////////////////////////////////////////////////////////////////// diff --git a/proc/sysinfo.h b/proc/sysinfo.h index dbb8bef9..75730686 100644 --- a/proc/sysinfo.h +++ b/proc/sysinfo.h @@ -2,8 +2,8 @@ #define PROC_SYSINFO_H #include #include -#include +#include __BEGIN_DECLS extern int have_privs; /* boolean, true if setuid or similar */ @@ -11,6 +11,7 @@ extern int have_privs; /* boolean, true if setuid or similar */ long procps_cpu_count(void); long procps_hertz_get(void); int procps_loadavg(double *av1, double *av5, double *av15); +unsigned int procps_pid_length(void); #define BUFFSIZE (64*1024) typedef unsigned long long jiff; @@ -25,7 +26,6 @@ typedef struct slab_cache{ extern unsigned int getslabinfo (struct slab_cache**); -extern unsigned get_pid_digits(void) FUNCTION; __END_DECLS #endif /* SYSINFO_H */ diff --git a/proc/uptime.h b/proc/uptime.h index 6175937a..8d00854d 100644 --- a/proc/uptime.h +++ b/proc/uptime.h @@ -25,8 +25,7 @@ #ifndef PROC_UPTIME_H #define PROC_UPTIME_H -#include - +#include __BEGIN_DECLS int procps_uptime(double *uptime_secs, double *idle_secs); diff --git a/proc/version.h b/proc/version.h index 0b63b031..ba86250b 100644 --- a/proc/version.h +++ b/proc/version.h @@ -23,8 +23,7 @@ #ifndef PROC_VERSION_H #define PROC_VERSION_H -#include - +#include __BEGIN_DECLS int procps_linux_version(void); diff --git a/proc/vmstat.h b/proc/vmstat.h index 1179aa3b..9a0fa549 100644 --- a/proc/vmstat.h +++ b/proc/vmstat.h @@ -23,7 +23,7 @@ #ifndef PROC_VMSTAT_H #define PROC_VMSTAT_H -#include +#include __BEGIN_DECLS diff --git a/proc/wchan.h b/proc/wchan.h index fd5d29e7..5a54862b 100644 --- a/proc/wchan.h +++ b/proc/wchan.h @@ -1,7 +1,7 @@ #ifndef PROCPS_PROC_WCHAN_H #define PROCPS_PROC_WCHAN_H -#include +#include __BEGIN_DECLS diff --git a/ps/common.h b/ps/common.h index 8a9eb0c5..fc1b160c 100644 --- a/ps/common.h +++ b/ps/common.h @@ -13,11 +13,10 @@ #define PROCPS_PS_H #include "../include/nls.h" -#include "../proc/escape.h" +#include // --- interface begin |||||||||||||||||||||||||||||||||||||||||||| // ----------------------------------------------------------------------- -#include // hack to minimize code impact #undef proc_t diff --git a/ps/display.c b/ps/display.c index 43e67ce2..448d61f6 100644 --- a/ps/display.c +++ b/ps/display.c @@ -28,9 +28,6 @@ #include #include -#include -#include "../proc/sysinfo.h" - #include "../include/c.h" #include "../include/fileutils.h" #include "../include/signals.h" diff --git a/ps/global.c b/ps/global.c index 4f45bcf9..21c4e419 100644 --- a/ps/global.c +++ b/ps/global.c @@ -31,8 +31,6 @@ #include #include -#include - #include "../include/c.h" #include "../include/xalloc.h" @@ -614,8 +612,8 @@ void self_info(void){ ); fprintf(stderr, - "sizeof(proc_t)=%d sizeof(long)=%d sizeof(KLONG)=%d\n", - (int)sizeof(proc_t), (int)sizeof(long), (int)sizeof(KLONG) + "sizeof(proc_t)=%d sizeof(long)=%d sizeof(long)=%d\n", + (int)sizeof(proc_t), (int)sizeof(long), (int)sizeof(long) ); fprintf(stderr, "archdefs:%s\n", archdefs); diff --git a/ps/help.c b/ps/help.c index 4c3e9966..e283c2cb 100644 --- a/ps/help.c +++ b/ps/help.c @@ -86,7 +86,7 @@ static int parse_help_opt (const char *opt) { } -void do_help (const char *opt, int rc) NORETURN; +void do_help (const char *opt, int rc); void do_help (const char *opt, int rc) { FILE *out = (rc == EXIT_SUCCESS) ? stdout : stderr; int section = parse_help_opt(opt); diff --git a/ps/output.c b/ps/output.c index 0d637d67..b31ce6b5 100644 --- a/ps/output.c +++ b/ps/output.c @@ -62,11 +62,8 @@ #include #include -#include -#include #include "../include/c.h" -#include "../proc/escape.h" #include "common.h" @@ -1896,7 +1893,7 @@ void show_one_proc(const proc_t *restrict const p, const format_node *restrict f char *restrict const outbuf = saved_outbuf; static int did_stuff = 0; /* have we ever printed anything? */ - if(unlikely(-1==(long)p)){ /* true only once, at the end */ + if(-1==(long)p){ /* true only once, at the end */ if(did_stuff) return; /* have _never_ printed anything, but might need a header */ if(!--lines_to_next_header){ @@ -1906,14 +1903,14 @@ void show_one_proc(const proc_t *restrict const p, const format_node *restrict f /* fprintf(stderr, "No processes available.\n"); */ /* legal? */ exit(1); } - if(likely(p)){ /* not header, maybe we should call ourselves for it */ - if(unlikely(!--lines_to_next_header)){ + if(p){ /* not header, maybe we should call ourselves for it */ + if(!--lines_to_next_header){ lines_to_next_header = header_gap; show_one_proc(NULL,fmt); } } did_stuff = 1; - if(unlikely(active_cols>(int)OUTBUF_SIZE)) fprintf(stderr,_("fix bigness error\n")); + if(active_cols>(int)OUTBUF_SIZE) fprintf(stderr,_("fix bigness error\n")); /* print row start sequence */ for(;;){ @@ -1922,7 +1919,7 @@ void show_one_proc(const proc_t *restrict const p, const format_node *restrict f // if(likely(fmt->next)) max_rightward = fmt->width; // else max_rightward = active_cols-((correct>actual) ? correct : actual); - if(likely(fmt->next)){ + if(fmt->next){ max_rightward = fmt->width; tmpspace = 0; }else{ @@ -1940,7 +1937,7 @@ void show_one_proc(const proc_t *restrict const p, const format_node *restrict f // active_cols, max_rightward, max_leftward, actual, correct); /* prepare data and calculate leftpad */ - if(likely(p) && likely(fmt->pr)) amount = (*fmt->pr)(outbuf,p); + if(p && fmt->pr) amount = (*fmt->pr)(outbuf,p); else amount = strlen(strcpy(outbuf, fmt->name)); /* AIX or headers */ switch((fmt->flags) & CF_JUST_MASK){ @@ -2003,13 +2000,13 @@ void show_one_proc(const proc_t *restrict const p, const format_node *restrict f */ space = correct - actual + leftpad; if(space<1) space=dospace; - if(unlikely(space>SPACE_AMOUNT)) space=SPACE_AMOUNT; // only so much available + if(space>SPACE_AMOUNT) space=SPACE_AMOUNT; // only so much available /* real size -- don't forget in 'amount' is number of cells */ sz = strlen(outbuf); /* print data, set x position stuff */ - if(unlikely(!fmt->next)){ + if(!fmt->next){ /* Last column. Write padding + data + newline all together. */ outbuf[sz] = '\n'; fwrite(outbuf-space, space+sz+1, 1, stdout); diff --git a/ps/sortformat.c b/ps/sortformat.c index bab6014a..ba6cbf37 100644 --- a/ps/sortformat.c +++ b/ps/sortformat.c @@ -47,7 +47,7 @@ static format_node *do_one_spec(const char *spec, const char *override){ format_node *thisnode; thisnode = xmalloc(sizeof(format_node)); if(fs->flags & CF_PIDMAX){ - w1 = (int)get_pid_digits(); + w1 = (int)procps_pid_length(); w2 = strlen(fs->head); if(w2>w1) w1=w2; // FIXME w/ separate header/body column sizing }else{ diff --git a/skill.c b/skill.c index dbd4600d..7becbd0d 100644 --- a/skill.c +++ b/skill.c @@ -34,8 +34,7 @@ #include #include -#include -#include +#include #include "c.h" #include "fileutils.h" diff --git a/slabtop.c b/slabtop.c index 0d48288b..e3bc3ad0 100644 --- a/slabtop.c +++ b/slabtop.c @@ -42,7 +42,7 @@ #include "fileutils.h" #include "nls.h" #include "strutils.h" -#include +#include #define DEFAULT_SORT PROCPS_SLABNODE_OBJS #define CHAINS_ALLOC 150 diff --git a/tload.c b/tload.c index a1fc03ff..8b9fab33 100644 --- a/tload.c +++ b/tload.c @@ -24,7 +24,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include +#include #include "c.h" #include "fileutils.h" #include "nls.h" diff --git a/top/top.c b/top/top.c index 98615bea..c857f87e 100644 --- a/top/top.c +++ b/top/top.c @@ -50,16 +50,12 @@ #include "../include/signals.h" #include "../include/nls.h" -#include -#include -#include -#include -#include -#include +#include #include "top.h" #include "top_nls.h" +#define NORETURN __attribute__((__noreturn__)) /*###### Miscellaneous global stuff ####################################*/ @@ -744,6 +740,7 @@ static void updt_scroll_msg (void) { /* * Handle our own memory stuff without the risk of leaving the * user's terminal in an ugly state should things go sour. */ +#define MALLOC __attribute__ ((__malloc__)) static void *alloc_c (size_t num) MALLOC; static void *alloc_c (size_t num) { @@ -1174,14 +1171,14 @@ static int get_int (const char *prompt) { /* * Make a hex value, and maybe suppress zeroes. */ -static inline const char *hex_make (KLONG num, int noz) { +static inline const char *hex_make (long num, int noz) { static char buf[SMLBUFSIZ]; int i; #ifdef CASEUP_HEXES - snprintf(buf, sizeof(buf), "%08" KLF "X", num); + snprintf(buf, sizeof(buf), "%08lX", num); #else - snprintf(buf, sizeof(buf), "%08" KLF "x", num); + snprintf(buf, sizeof(buf), "%08lx", num); #endif if (noz) for (i = 0; buf[i]; i++) @@ -2097,7 +2094,7 @@ static void zap_fieldstab (void) { Fieldstab[EU_PID].width = Fieldstab[EU_PPD].width = Fieldstab[EU_PGD].width = Fieldstab[EU_SID].width = Fieldstab[EU_TGD].width = Fieldstab[EU_TPG].width = 5; - if (5 < (digits = get_pid_digits())) { + if (5 < (digits = procps_pid_length())) { if (10 < digits) error_exit(N_txt(FAIL_widepid_txt)); Fieldstab[EU_PID].width = Fieldstab[EU_PPD].width = Fieldstab[EU_PGD].width = Fieldstab[EU_SID].width diff --git a/uptime.c b/uptime.c index 64ff6ac4..be3d01a9 100644 --- a/uptime.c +++ b/uptime.c @@ -27,9 +27,7 @@ #include "c.h" #include "fileutils.h" #include "nls.h" -#include "proc/sysinfo.h" -#include -#include "proc/version.h" +#include static void print_uptime_since() { diff --git a/vmstat.c b/vmstat.c index f53eaac9..85c28a25 100644 --- a/vmstat.c +++ b/vmstat.c @@ -48,12 +48,7 @@ #include "fileutils.h" #include "nls.h" #include "strutils.h" -#include "proc/sysinfo.h" -#include -#include -#include -#include -#include +#include #define UNIT_B 1 #define UNIT_k 1000 diff --git a/w.c b/w.c index ec7995b1..934e5e73 100644 --- a/w.c +++ b/w.c @@ -26,9 +26,7 @@ #include "c.h" #include "fileutils.h" #include "nls.h" -#include -#include -#include +#include #include #include @@ -652,7 +650,7 @@ int main(int argc, char **argv) if (user) { for (;;) { u = getutent(); - if (unlikely(!u)) + if (!u) break; if (u->ut_type != USER_PROCESS) continue; @@ -663,7 +661,7 @@ int main(int argc, char **argv) } else { for (;;) { u = getutent(); - if (unlikely(!u)) + if (!u) break; if (u->ut_type != USER_PROCESS) continue;