*
* Licensed under GPLv2, see file LICENSE in this source tree.
*/
-
//config:config UEVENT
-//config: bool "uevent"
+//config: bool "uevent (3.2 kb)"
//config: default y
//config: select PLATFORM_LINUX
//config: help
-//config: uevent is a netlink listener for kernel uevent notifications
-//config: sent via netlink. It is usually used for dynamic device creation.
+//config: uevent is a netlink listener for kernel uevent notifications
+//config: sent via netlink. It is usually used for dynamic device creation.
//applet:IF_UEVENT(APPLET(uevent, BB_DIR_SBIN, BB_SUID_DROP))
//usage: "\n"" # uevent mdev & mdev -s"
#include "libbb.h"
+#include "common_bufsiz.h"
#include <linux/netlink.h>
#define BUFFER_SIZE 16*1024
-#define env ((char **)&bb_common_bufsiz1)
+#define env ((char **)bb_common_bufsiz1)
+#define INIT_G() do { setup_common_bufsiz(); } while (0)
enum {
- MAX_ENV = COMMON_BUFSIZE / sizeof(env[0]) - 1,
+ MAX_ENV = COMMON_BUFSIZE / sizeof(char*) - 1,
+ /* sizeof(env[0]) instead of sizeof(char*)
+ * makes gcc-6.3.0 emit "strict-aliasing" warning.
+ */
};
#ifndef SO_RCVBUFFORCE
struct sockaddr_nl sa;
int fd;
+ INIT_G();
+
argv++;
// Subscribe for UEVENT kernel messages