From: Bartosz Golaszewski <[email protected]>

Signed-off-by: Bartosz Golaszewski <[email protected]>
[ csokas.bence: Rebase and fix conflicts ]
Signed-off-by: Bence Csókás <[email protected]>
---
 util-linux/dmesg.c | 24 +++++++++++++++++++++---
 1 file changed, 21 insertions(+), 3 deletions(-)

diff --git a/util-linux/dmesg.c b/util-linux/dmesg.c
index 5d8f01a64..7a1b554c3 100644
--- a/util-linux/dmesg.c
+++ b/util-linux/dmesg.c
@@ -57,6 +57,20 @@
 #include <sys/klog.h>
 #include "libbb.h"
 
+enum {
+       SYSLOG_ACTION_CLOSE = 0,
+       SYSLOG_ACTION_OPEN,
+       SYSLOG_ACTION_READ,
+       SYSLOG_ACTION_READ_ALL,
+       SYSLOG_ACTION_READ_CLEAR,
+       SYSLOG_ACTION_CLEAR,
+       SYSLOG_ACTION_CONSOLE_OFF,
+       SYSLOG_ACTION_CONSOLE_ON,
+       SYSLOG_ACTION_CONSOLE_LEVEL,
+       SYSLOG_ACTION_SIZE_UNREAD,
+       SYSLOG_ACTION_SIZE_BUFFER,
+};
+
 int dmesg_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int dmesg_main(int argc UNUSED_PARAM, char **argv)
 {
@@ -72,20 +86,24 @@ int dmesg_main(int argc UNUSED_PARAM, char **argv)
 
        opts = getopt32(argv, "cs:+n:+r", &len, &level);
        if (opts & OPT_n) {
-               if (klogctl(8, NULL, (long) level))
+               if (klogctl(SYSLOG_ACTION_CONSOLE_LEVEL, NULL, (long) level))
                        bb_simple_perror_msg_and_die("klogctl");
                return EXIT_SUCCESS;
        }
 
        if (!(opts & OPT_s))
-               len = klogctl(10, NULL, 0); /* read ring buffer size */
+               /* read ring buffer size */
+               len = klogctl(SYSLOG_ACTION_SIZE_BUFFER, NULL, 0);
        if (len < 16*1024)
                len = 16*1024;
        if (len > 16*1024*1024)
                len = 16*1024*1024;
 
        buf = xmalloc(len);
-       len = klogctl(3 + (opts & OPT_c), buf, len); /* read ring buffer */
+       /* read ring buffer */
+       len = klogctl((opts & OPT_c) ? SYSLOG_ACTION_READ_CLEAR
+                                    : SYSLOG_ACTION_READ_ALL,
+                      buf, len);
        if (len < 0)
                bb_simple_perror_msg_and_die("klogctl");
        if (len == 0)
-- 
2.34.1


_______________________________________________
busybox mailing list
[email protected]
https://lists.busybox.net/mailman/listinfo/busybox

Reply via email to