summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Config.in9
-rw-r--r--configs/TEST_nommu_defconfig1
-rw-r--r--configs/TEST_noprintf_defconfig1
-rw-r--r--configs/TEST_rh9_defconfig1
-rw-r--r--configs/android2_defconfig1
-rw-r--r--configs/android_502_defconfig1
-rw-r--r--configs/android_defconfig1
-rw-r--r--configs/android_ndk_defconfig1
-rw-r--r--configs/cygwin_defconfig1
-rw-r--r--configs/freebsd_defconfig1
-rw-r--r--procps/powertop.c18
-rw-r--r--procps/top.c28
12 files changed, 31 insertions, 33 deletions
diff --git a/Config.in b/Config.in
index db15871..ec302ff 100644
--- a/Config.in
+++ b/Config.in
@@ -61,15 +61,6 @@ config FEATURE_AUTOWIDTH
If you leave this disabled, your utilities will be especially
primitive and will be unable to determine the current screen width.
-#fixme: delete, create suboptions for applets which use this
-config FEATURE_USE_TERMIOS
- bool "Use termios for one-stroke input"
- default y
- help
- This option allows utilities such as 'top' to accept keyboard
- commands. Without this option, they simply refresh display
- after a fixed period.
-
config SHOW_USAGE
bool "Show applet usage messages"
default y
diff --git a/configs/TEST_nommu_defconfig b/configs/TEST_nommu_defconfig
index d7a9cfe..37f3df0 100644
--- a/configs/TEST_nommu_defconfig
+++ b/configs/TEST_nommu_defconfig
@@ -524,7 +524,6 @@ CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y
CONFIG_MKSWAP=y
CONFIG_FEATURE_MKSWAP_UUID=y
CONFIG_MORE=y
-CONFIG_FEATURE_USE_TERMIOS=y
CONFIG_VOLUMEID=y
CONFIG_FEATURE_VOLUMEID_EXT=y
CONFIG_FEATURE_VOLUMEID_BTRFS=y
diff --git a/configs/TEST_noprintf_defconfig b/configs/TEST_noprintf_defconfig
index adb6b70..b03f625 100644
--- a/configs/TEST_noprintf_defconfig
+++ b/configs/TEST_noprintf_defconfig
@@ -527,7 +527,6 @@ CONFIG_FDISK_SUPPORT_LARGE_DISKS=y
# CONFIG_MKSWAP is not set
# CONFIG_FEATURE_MKSWAP_UUID is not set
# CONFIG_MORE is not set
-# CONFIG_FEATURE_USE_TERMIOS is not set
CONFIG_VOLUMEID=y
# CONFIG_FEATURE_VOLUMEID_EXT is not set
# CONFIG_FEATURE_VOLUMEID_BTRFS is not set
diff --git a/configs/TEST_rh9_defconfig b/configs/TEST_rh9_defconfig
index 0d72cda..3fc1377 100644
--- a/configs/TEST_rh9_defconfig
+++ b/configs/TEST_rh9_defconfig
@@ -540,7 +540,6 @@ CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y
CONFIG_MKSWAP=y
CONFIG_FEATURE_MKSWAP_UUID=y
CONFIG_MORE=y
-CONFIG_FEATURE_USE_TERMIOS=y
CONFIG_VOLUMEID=y
CONFIG_FEATURE_VOLUMEID_EXT=y
CONFIG_FEATURE_VOLUMEID_BTRFS=y
diff --git a/configs/android2_defconfig b/configs/android2_defconfig
index 866a879..1846bb7 100644
--- a/configs/android2_defconfig
+++ b/configs/android2_defconfig
@@ -94,7 +94,6 @@ CONFIG_PASSWORD_MINLEN=6
CONFIG_MD5_SMALL=1
# CONFIG_FEATURE_FAST_TOP is not set
# CONFIG_FEATURE_ETC_NETWORKS is not set
-CONFIG_FEATURE_USE_TERMIOS=y
# CONFIG_FEATURE_EDITING is not set
CONFIG_FEATURE_EDITING_MAX_LEN=0
# CONFIG_FEATURE_EDITING_VI is not set
diff --git a/configs/android_502_defconfig b/configs/android_502_defconfig
index 8d8dd25..2cf4cd8 100644
--- a/configs/android_502_defconfig
+++ b/configs/android_502_defconfig
@@ -174,7 +174,6 @@ CONFIG_MD5_SMALL=1
CONFIG_SHA3_SMALL=1
# CONFIG_FEATURE_FAST_TOP is not set
# CONFIG_FEATURE_ETC_NETWORKS is not set
-CONFIG_FEATURE_USE_TERMIOS=y
CONFIG_FEATURE_EDITING=y
CONFIG_FEATURE_EDITING_MAX_LEN=1024
# CONFIG_FEATURE_EDITING_VI is not set
diff --git a/configs/android_defconfig b/configs/android_defconfig
index 1eaab9e..8316b2e 100644
--- a/configs/android_defconfig
+++ b/configs/android_defconfig
@@ -112,7 +112,6 @@ CONFIG_PASSWORD_MINLEN=6
CONFIG_MD5_SMALL=1
# CONFIG_FEATURE_FAST_TOP is not set
# CONFIG_FEATURE_ETC_NETWORKS is not set
-CONFIG_FEATURE_USE_TERMIOS=y
# CONFIG_FEATURE_EDITING is not set
CONFIG_FEATURE_EDITING_MAX_LEN=0
# CONFIG_FEATURE_EDITING_VI is not set
diff --git a/configs/android_ndk_defconfig b/configs/android_ndk_defconfig
index dc9d21c..d8b994e 100644
--- a/configs/android_ndk_defconfig
+++ b/configs/android_ndk_defconfig
@@ -102,7 +102,6 @@ CONFIG_MD5_SMALL=1
CONFIG_SHA3_SMALL=1
# CONFIG_FEATURE_FAST_TOP is not set
# CONFIG_FEATURE_ETC_NETWORKS is not set
-CONFIG_FEATURE_USE_TERMIOS=y
# CONFIG_FEATURE_EDITING is not set
CONFIG_FEATURE_EDITING_MAX_LEN=0
# CONFIG_FEATURE_EDITING_VI is not set
diff --git a/configs/cygwin_defconfig b/configs/cygwin_defconfig
index 37e3e21..352ed90 100644
--- a/configs/cygwin_defconfig
+++ b/configs/cygwin_defconfig
@@ -94,7 +94,6 @@ CONFIG_PASSWORD_MINLEN=6
CONFIG_MD5_SMALL=1
CONFIG_FEATURE_FAST_TOP=y
# CONFIG_FEATURE_ETC_NETWORKS is not set
-CONFIG_FEATURE_USE_TERMIOS=y
CONFIG_FEATURE_EDITING=y
CONFIG_FEATURE_EDITING_MAX_LEN=1024
# CONFIG_FEATURE_EDITING_VI is not set
diff --git a/configs/freebsd_defconfig b/configs/freebsd_defconfig
index 90e0a8b..b19a9fd 100644
--- a/configs/freebsd_defconfig
+++ b/configs/freebsd_defconfig
@@ -93,7 +93,6 @@ CONFIG_PASSWORD_MINLEN=6
CONFIG_MD5_SMALL=1
CONFIG_FEATURE_FAST_TOP=y
# CONFIG_FEATURE_ETC_NETWORKS is not set
-CONFIG_FEATURE_USE_TERMIOS=y
CONFIG_FEATURE_EDITING=y
CONFIG_FEATURE_EDITING_MAX_LEN=1024
# CONFIG_FEATURE_EDITING_VI is not set
diff --git a/procps/powertop.c b/procps/powertop.c
index ee80616..4138068 100644
--- a/procps/powertop.c
+++ b/procps/powertop.c
@@ -18,6 +18,14 @@
//config: default y
//config: help
//config: Analyze power consumption on Intel-based laptops
+//config:
+//config:config FEATURE_POWERTOP_INTERACTIVE
+//config: bool "Accept keyboard commands"
+//config: default y
+//config: depends on POWERTOP
+//config: help
+//config: Without this, powertop will only refresh display every 10 seconds.
+//config: No keyboard commands will work, only ^C to terminate.
// XXX This should be configurable
#define ENABLE_FEATURE_POWERTOP_PROCIRQ 1
@@ -82,7 +90,7 @@ struct globals {
ullong last_usage[MAX_CSTATE_COUNT];
ullong start_duration[MAX_CSTATE_COUNT];
ullong last_duration[MAX_CSTATE_COUNT];
-#if ENABLE_FEATURE_USE_TERMIOS
+#if ENABLE_FEATURE_POWERTOP_INTERACTIVE
struct termios init_settings;
#endif
};
@@ -91,7 +99,7 @@ struct globals {
SET_PTR_TO_GLOBALS(xzalloc(sizeof(G))); \
} while (0)
-#if ENABLE_FEATURE_USE_TERMIOS
+#if ENABLE_FEATURE_POWERTOP_INTERACTIVE
static void reset_term(void)
{
tcsetattr_stdin_TCSANOW(&G.init_settings);
@@ -682,7 +690,7 @@ int powertop_main(int UNUSED_PARAM argc, char UNUSED_PARAM **argv)
ullong cur_usage[MAX_CSTATE_COUNT];
ullong cur_duration[MAX_CSTATE_COUNT];
char cstate_lines[MAX_CSTATE_COUNT + 2][64];
-#if ENABLE_FEATURE_USE_TERMIOS
+#if ENABLE_FEATURE_POWERTOP_INTERACTIVE
struct pollfd pfd[1];
pfd[0].fd = 0;
@@ -705,7 +713,7 @@ int powertop_main(int UNUSED_PARAM argc, char UNUSED_PARAM **argv)
puts("Collecting data for "DEFAULT_SLEEP_STR" seconds");
-#if ENABLE_FEATURE_USE_TERMIOS
+#if ENABLE_FEATURE_POWERTOP_INTERACTIVE
/* Turn on unbuffered input; turn off echoing, ^C ^Z etc */
set_termios_to_raw(STDIN_FILENO, &G.init_settings, TERMIOS_CLEAR_ISIG);
bb_signals(BB_FATAL_SIGS, sig_handler);
@@ -735,7 +743,7 @@ int powertop_main(int UNUSED_PARAM argc, char UNUSED_PARAM **argv)
int i;
G.cant_enable_timer_stats |= start_timer(); /* 1 on error */
-#if !ENABLE_FEATURE_USE_TERMIOS
+#if !ENABLE_FEATURE_POWERTOP_INTERACTIVE
sleep(DEFAULT_SLEEP);
#else
if (safe_poll(pfd, 1, DEFAULT_SLEEP * 1000) > 0) {
diff --git a/procps/top.c b/procps/top.c
index 91bb8a8..ff2fdde 100644
--- a/procps/top.c
+++ b/procps/top.c
@@ -56,6 +56,14 @@
//config: The top program provides a dynamic real-time view of a running
//config: system.
//config:
+//config:config FEATURE_TOP_INTERACTIVE
+//config: bool "Accept keyboard commands"
+//config: default y
+//config: depends on TOP
+//config: help
+//config: Without this, top will only refresh display every 5 seconds.
+//config: No keyboard commands will work, only ^C to terminate.
+//config:
//config:config FEATURE_TOP_CPU_USAGE_PERCENTAGE
//config: bool "Show CPU per-process usage percentage"
//config: default y
@@ -158,7 +166,7 @@ struct globals {
smallint smp_cpu_info; /* one/many cpu info lines? */
#endif
unsigned lines; /* screen height */
-#if ENABLE_FEATURE_USE_TERMIOS
+#if ENABLE_FEATURE_TOP_INTERACTIVE
struct termios initial_settings;
int scroll_ofs;
#define G_scroll_ofs G.scroll_ofs
@@ -181,7 +189,7 @@ struct globals {
jiffy_counts_t *cpu_jif, *cpu_prev_jif;
int num_cpus;
#endif
-#if ENABLE_FEATURE_USE_TERMIOS
+#if ENABLE_FEATURE_TOP_INTERACTIVE
char kbd_input[KEYCODE_BUFFER_SIZE];
#endif
char line_buf[80];
@@ -220,7 +228,7 @@ enum {
#define OPT_BATCH_MODE (option_mask32 & OPT_b)
-#if ENABLE_FEATURE_USE_TERMIOS
+#if ENABLE_FEATURE_TOP_INTERACTIVE
static int pid_sort(top_status_t *P, top_status_t *Q)
{
/* Buggy wrt pids with high bit set */
@@ -725,7 +733,7 @@ static void clearmems(void)
top = NULL;
}
-#if ENABLE_FEATURE_USE_TERMIOS
+#if ENABLE_FEATURE_TOP_INTERACTIVE
static void reset_term(void)
{
if (!OPT_BATCH_MODE)
@@ -737,7 +745,7 @@ static void sig_catcher(int sig)
reset_term();
kill_myself_with_sig(sig);
}
-#endif /* FEATURE_USE_TERMIOS */
+#endif /* FEATURE_TOP_INTERACTIVE */
/*
* TOPMEM support
@@ -892,7 +900,7 @@ enum {
EXIT_MASK = (unsigned)-1,
};
-#if ENABLE_FEATURE_USE_TERMIOS
+#if ENABLE_FEATURE_TOP_INTERACTIVE
static unsigned handle_input(unsigned scan_mask, unsigned interval)
{
if (option_mask32 & OPT_EOF) {
@@ -1041,7 +1049,7 @@ static unsigned handle_input(unsigned scan_mask, unsigned interval)
//usage: "\n""Read the status of all processes from /proc each SECONDS"
//usage: "\n""and display a screenful of them."
//usage: "\n"
-//usage: IF_FEATURE_USE_TERMIOS(
+//usage: IF_FEATURE_TOP_INTERACTIVE(
//usage: "Keys:"
//usage: "\n"" N/M"
//usage: IF_FEATURE_TOP_CPU_USAGE_PERCENTAGE("/P")
@@ -1136,7 +1144,7 @@ int top_main(int argc UNUSED_PARAM, char **argv)
if (OPT_BATCH_MODE) {
option_mask32 |= OPT_EOF;
}
-#if ENABLE_FEATURE_USE_TERMIOS
+#if ENABLE_FEATURE_TOP_INTERACTIVE
else {
/* Turn on unbuffered input; turn off echoing, ^C ^Z etc */
set_termios_to_raw(STDIN_FILENO, &initial_settings, TERMIOS_CLEAR_ISIG);
@@ -1237,7 +1245,7 @@ int top_main(int argc UNUSED_PARAM, char **argv)
clearmems();
if (iterations >= 0 && !--iterations)
break;
-#if !ENABLE_FEATURE_USE_TERMIOS
+#if !ENABLE_FEATURE_TOP_INTERACTIVE
sleep(interval);
#else
scan_mask = handle_input(scan_mask, interval);
@@ -1245,7 +1253,7 @@ int top_main(int argc UNUSED_PARAM, char **argv)
} /* end of "while (not Q)" */
bb_putchar('\n');
-#if ENABLE_FEATURE_USE_TERMIOS
+#if ENABLE_FEATURE_TOP_INTERACTIVE
reset_term();
#endif
if (ENABLE_FEATURE_CLEAN_UP) {