diff options
Diffstat (limited to 'procps')
-rw-r--r-- | procps/free.c | 5 | ||||
-rw-r--r-- | procps/fuser.c | 4 | ||||
-rw-r--r-- | procps/nmeter.c | 10 | ||||
-rw-r--r-- | procps/ps.c | 5 | ||||
-rw-r--r-- | procps/top.c | 10 |
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 | ||
42 | static unsigned long long scale(unsigned long d) | 43 | static 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 | ||
57 | typedef unsigned long long ullong; | 58 | typedef 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 | |||
121 | static inline void reset_outbuf(void) | 121 | static inline void reset_outbuf(void) |
122 | { | 122 | { |
123 | cur_outbuf = outbuf; | 123 | cur_outbuf = outbuf; |
@@ -140,7 +140,7 @@ static void print_outbuf(void) | |||
140 | static void put(const char *s) | 140 | static 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 | ||
149 | static void put_c(char c) | 149 | static 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 | ||
110 | typedef struct top_status_t { | 111 | typedef 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 |
185 | enum { LINE_BUF_SIZE = COMMON_BUFSIZE - offsetof(struct globals, line_buf) }; | 186 | enum { 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) | |||
263 | static NOINLINE int read_cpu_jiffy(FILE *fp, jiffy_counts_t *p_jif) | 265 | static 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 | ||
518 | static void parse_meminfo(unsigned long meminfo[MI_MAX]) | 520 | static 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" |