aboutsummaryrefslogtreecommitdiff
path: root/procps
diff options
context:
space:
mode:
Diffstat (limited to 'procps')
-rw-r--r--procps/free.c5
-rw-r--r--procps/fuser.c4
-rw-r--r--procps/nmeter.c10
-rw-r--r--procps/ps.c5
-rw-r--r--procps/top.c10
5 files changed, 20 insertions, 14 deletions
diff --git a/procps/free.c b/procps/free.c
index 0d023f740..fca9a2242 100644
--- a/procps/free.c
+++ b/procps/free.c
@@ -22,6 +22,7 @@
22//usage: "Total: 386144 257128 129016\n" 22//usage: "Total: 386144 257128 129016\n"
23 23
24#include "libbb.h" 24#include "libbb.h"
25#include "common_bufsiz.h"
25#ifdef __linux__ 26#ifdef __linux__
26# include <sys/sysinfo.h> 27# include <sys/sysinfo.h>
27#endif 28#endif
@@ -35,8 +36,8 @@ struct globals {
35# define G_unit_steps 10 36# define G_unit_steps 10
36#endif 37#endif
37} FIX_ALIASING; 38} FIX_ALIASING;
38#define G (*(struct globals*)&bb_common_bufsiz1) 39#define G (*(struct globals*)bb_common_bufsiz1)
39#define INIT_G() do { } while (0) 40#define INIT_G() do { setup_common_bufsiz(); } while (0)
40 41
41 42
42static unsigned long long scale(unsigned long d) 43static unsigned long long scale(unsigned long d)
diff --git a/procps/fuser.c b/procps/fuser.c
index 05b52abb1..6dac852ed 100644
--- a/procps/fuser.c
+++ b/procps/fuser.c
@@ -18,6 +18,7 @@
18//usage: "\n -SIGNAL Signal to send (default: KILL)" 18//usage: "\n -SIGNAL Signal to send (default: KILL)"
19 19
20#include "libbb.h" 20#include "libbb.h"
21#include "common_bufsiz.h"
21 22
22#define MAX_LINE 255 23#define MAX_LINE 255
23 24
@@ -43,8 +44,9 @@ struct globals {
43 smallint kill_failed; 44 smallint kill_failed;
44 int killsig; 45 int killsig;
45} FIX_ALIASING; 46} FIX_ALIASING;
46#define G (*(struct globals*)&bb_common_bufsiz1) 47#define G (*(struct globals*)bb_common_bufsiz1)
47#define INIT_G() do { \ 48#define INIT_G() do { \
49 setup_common_bufsiz(); \
48 G.mypid = getpid(); \ 50 G.mypid = getpid(); \
49 G.killsig = SIGKILL; \ 51 G.killsig = SIGKILL; \
50} while (0) 52} while (0)
diff --git a/procps/nmeter.c b/procps/nmeter.c
index 33de3790f..3eac2d3b2 100644
--- a/procps/nmeter.c
+++ b/procps/nmeter.c
@@ -53,6 +53,7 @@
53// totalswap=134209536, freeswap=134209536, procs=157}) 53// totalswap=134209536, freeswap=134209536, procs=157})
54 54
55#include "libbb.h" 55#include "libbb.h"
56#include "common_bufsiz.h"
56 57
57typedef unsigned long long ullong; 58typedef unsigned long long ullong;
58 59
@@ -108,16 +109,15 @@ struct globals {
108#define proc_meminfo (G.proc_meminfo ) 109#define proc_meminfo (G.proc_meminfo )
109#define proc_diskstats (G.proc_diskstats ) 110#define proc_diskstats (G.proc_diskstats )
110#define proc_sys_fs_filenr (G.proc_sys_fs_filenr) 111#define proc_sys_fs_filenr (G.proc_sys_fs_filenr)
112#define outbuf bb_common_bufsiz1
111#define INIT_G() do { \ 113#define INIT_G() do { \
114 setup_common_bufsiz(); \
112 SET_PTR_TO_GLOBALS(xzalloc(sizeof(G))); \ 115 SET_PTR_TO_GLOBALS(xzalloc(sizeof(G))); \
113 cur_outbuf = outbuf; \ 116 cur_outbuf = outbuf; \
114 G.final_char = '\n'; \ 117 G.final_char = '\n'; \
115 G.deltanz = G.delta = 1000000; \ 118 G.deltanz = G.delta = 1000000; \
116} while (0) 119} while (0)
117 120
118// We depend on this being a char[], not char* - we take sizeof() of it
119#define outbuf bb_common_bufsiz1
120
121static inline void reset_outbuf(void) 121static inline void reset_outbuf(void)
122{ 122{
123 cur_outbuf = outbuf; 123 cur_outbuf = outbuf;
@@ -140,7 +140,7 @@ static void print_outbuf(void)
140static void put(const char *s) 140static void put(const char *s)
141{ 141{
142 char *p = cur_outbuf; 142 char *p = cur_outbuf;
143 int sz = outbuf + sizeof(outbuf) - p; 143 int sz = outbuf + COMMON_BUFSIZE - p;
144 while (*s && --sz >= 0) 144 while (*s && --sz >= 0)
145 *p++ = *s++; 145 *p++ = *s++;
146 cur_outbuf = p; 146 cur_outbuf = p;
@@ -148,7 +148,7 @@ static void put(const char *s)
148 148
149static void put_c(char c) 149static void put_c(char c)
150{ 150{
151 if (cur_outbuf < outbuf + sizeof(outbuf)) 151 if (cur_outbuf < outbuf + COMMON_BUFSIZE)
152 *cur_outbuf++ = c; 152 *cur_outbuf++ = c;
153} 153}
154 154
diff --git a/procps/ps.c b/procps/ps.c
index 8c373376d..39cccec82 100644
--- a/procps/ps.c
+++ b/procps/ps.c
@@ -62,6 +62,7 @@
62//usage: " 2990 andersen andersen R ps\n" 62//usage: " 2990 andersen andersen R ps\n"
63 63
64#include "libbb.h" 64#include "libbb.h"
65#include "common_bufsiz.h"
65#ifdef __linux__ 66#ifdef __linux__
66# include <sys/sysinfo.h> 67# include <sys/sysinfo.h>
67#endif 68#endif
@@ -144,7 +145,7 @@ struct globals {
144 unsigned long seconds_since_boot; 145 unsigned long seconds_since_boot;
145#endif 146#endif
146} FIX_ALIASING; 147} FIX_ALIASING;
147#define G (*(struct globals*)&bb_common_bufsiz1) 148#define G (*(struct globals*)bb_common_bufsiz1)
148#define out (G.out ) 149#define out (G.out )
149#define out_cnt (G.out_cnt ) 150#define out_cnt (G.out_cnt )
150#define print_header (G.print_header ) 151#define print_header (G.print_header )
@@ -152,7 +153,7 @@ struct globals {
152#define buffer (G.buffer ) 153#define buffer (G.buffer )
153#define terminal_width (G.terminal_width ) 154#define terminal_width (G.terminal_width )
154#define kernel_HZ (G.kernel_HZ ) 155#define kernel_HZ (G.kernel_HZ )
155#define INIT_G() do { } while (0) 156#define INIT_G() do { setup_common_bufsiz(); } while (0)
156 157
157#if ENABLE_FEATURE_PS_TIME 158#if ENABLE_FEATURE_PS_TIME
158/* for ELF executables, notes are pushed before environment and args */ 159/* for ELF executables, notes are pushed before environment and args */
diff --git a/procps/top.c b/procps/top.c
index ddf794d7d..73cd285f0 100644
--- a/procps/top.c
+++ b/procps/top.c
@@ -105,6 +105,7 @@
105//config: Enable 's' in top (gives lots of memory info). 105//config: Enable 's' in top (gives lots of memory info).
106 106
107#include "libbb.h" 107#include "libbb.h"
108#include "common_bufsiz.h"
108 109
109 110
110typedef struct top_status_t { 111typedef struct top_status_t {
@@ -183,7 +184,7 @@ struct globals {
183 char line_buf[80]; 184 char line_buf[80];
184}; //FIX_ALIASING; - large code growth 185}; //FIX_ALIASING; - large code growth
185enum { LINE_BUF_SIZE = COMMON_BUFSIZE - offsetof(struct globals, line_buf) }; 186enum { LINE_BUF_SIZE = COMMON_BUFSIZE - offsetof(struct globals, line_buf) };
186#define G (*(struct globals*)&bb_common_bufsiz1) 187#define G (*(struct globals*)bb_common_bufsiz1)
187#define top (G.top ) 188#define top (G.top )
188#define ntop (G.ntop ) 189#define ntop (G.ntop )
189#define sort_field (G.sort_field ) 190#define sort_field (G.sort_field )
@@ -201,6 +202,7 @@ enum { LINE_BUF_SIZE = COMMON_BUFSIZE - offsetof(struct globals, line_buf) };
201#define total_pcpu (G.total_pcpu ) 202#define total_pcpu (G.total_pcpu )
202#define line_buf (G.line_buf ) 203#define line_buf (G.line_buf )
203#define INIT_G() do { \ 204#define INIT_G() do { \
205 setup_common_bufsiz(); \
204 BUILD_BUG_ON(sizeof(G) > COMMON_BUFSIZE); \ 206 BUILD_BUG_ON(sizeof(G) > COMMON_BUFSIZE); \
205 BUILD_BUG_ON(LINE_BUF_SIZE <= 80); \ 207 BUILD_BUG_ON(LINE_BUF_SIZE <= 80); \
206} while (0) 208} while (0)
@@ -263,9 +265,9 @@ static int mult_lvl_cmp(void* a, void* b)
263static NOINLINE int read_cpu_jiffy(FILE *fp, jiffy_counts_t *p_jif) 265static NOINLINE int read_cpu_jiffy(FILE *fp, jiffy_counts_t *p_jif)
264{ 266{
265#if !ENABLE_FEATURE_TOP_SMP_CPU 267#if !ENABLE_FEATURE_TOP_SMP_CPU
266 static const char fmt[] = "cpu %llu %llu %llu %llu %llu %llu %llu %llu"; 268 static const char fmt[] ALIGN1 = "cpu %llu %llu %llu %llu %llu %llu %llu %llu";
267#else 269#else
268 static const char fmt[] = "cp%*s %llu %llu %llu %llu %llu %llu %llu %llu"; 270 static const char fmt[] ALIGN1 = "cp%*s %llu %llu %llu %llu %llu %llu %llu %llu";
269#endif 271#endif
270 int ret; 272 int ret;
271 273
@@ -517,7 +519,7 @@ enum {
517 519
518static void parse_meminfo(unsigned long meminfo[MI_MAX]) 520static void parse_meminfo(unsigned long meminfo[MI_MAX])
519{ 521{
520 static const char fields[] = 522 static const char fields[] ALIGN1 =
521 "MemTotal\0" 523 "MemTotal\0"
522 "MemFree\0" 524 "MemFree\0"
523 "MemShared\0" 525 "MemShared\0"