From 1b4607ab436b7b6e61f3ec2fa27e51e5bc15a9e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cenk=20G=C3=BCndo=C4=9Fan?= <cnkgndgn@gmail.com> Date: Sat, 14 May 2016 12:46:14 +0200 Subject: [PATCH] auto_init: initialize gnrc_rpl --- Makefile.pseudomodules | 1 + sys/auto_init/auto_init.c | 9 ++++ sys/net/gnrc/routing/rpl/gnrc_rpl_auto_init.c | 54 +++++++++++++++++++ 3 files changed, 64 insertions(+) create mode 100644 sys/net/gnrc/routing/rpl/gnrc_rpl_auto_init.c diff --git a/Makefile.pseudomodules b/Makefile.pseudomodules index 2bc202a645..743ea5ee2e 100644 --- a/Makefile.pseudomodules +++ b/Makefile.pseudomodules @@ -1,3 +1,4 @@ +PSEUDOMODULES += auto_init_gnrc_rpl PSEUDOMODULES += conn PSEUDOMODULES += conn_ip PSEUDOMODULES += conn_tcp diff --git a/sys/auto_init/auto_init.c b/sys/auto_init/auto_init.c index d9ca369481..9ac9b6fd58 100644 --- a/sys/auto_init/auto_init.c +++ b/sys/auto_init/auto_init.c @@ -256,4 +256,13 @@ void auto_init(void) #endif #endif /* MODULE_AUTO_INIT_SAUL */ + +#ifdef MODULE_AUTO_INIT_GNRC_RPL + +#ifdef MODULE_GNRC_RPL + extern void auto_init_gnrc_rpl(void); + auto_init_gnrc_rpl(); +#endif + +#endif /* MODULE_AUTO_INIT_GNRC_RPL */ } diff --git a/sys/net/gnrc/routing/rpl/gnrc_rpl_auto_init.c b/sys/net/gnrc/routing/rpl/gnrc_rpl_auto_init.c new file mode 100644 index 0000000000..4997cb570c --- /dev/null +++ b/sys/net/gnrc/routing/rpl/gnrc_rpl_auto_init.c @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2016 Cenk GĆ¼ndoÄan <mail@cgundogan.de> + * + * This file is subject to the terms and conditions of the GNU Lesser + * General Public License v2.1. See the file LICENSE in the top level + * directory for more details. + * + */ + +/* + * @ingroup gnrc_rpl + * @{ + * + * @file + * @brief Auto initialization for gnrc_rpl + * + * @author Cenk GĆ¼ndoÄan <mail@cgundogan.de> + */ + +#ifdef MODULE_AUTO_INIT_GNRC_RPL + +#include "net/gnrc.h" +#include "net/gnrc/rpl.h" + +#define ENABLE_DEBUG (0) +#include "debug.h" + +void auto_init_gnrc_rpl(void) +{ +#if (GNRC_NETIF_NUMOF == 1) + kernel_pid_t ifs[GNRC_NETIF_NUMOF]; + gnrc_netif_get(ifs); + DEBUG("auto_init_gnrc_rpl: initializing RPL on interface %" PRIkernel_pid "\n", ifs[0]); + gnrc_rpl_init(ifs[0]); + return; +#elif defined(GNRC_RPL_DEFAULT_NETIF) + if (gnrc_netif_exist(GNRC_RPL_DEFAULT_NETIF)) { + DEBUG("auto_init_gnrc_rpl: initializing RPL on interface %" PRIkernel_pid "\n", + GNRC_RPL_DEFAULT_NETIF); + gnrc_rpl_init(GNRC_RPL_DEFAULT_NETIF); + return; + } + DEBUG("auto_init_gnrc_rpl: could not initialize RPL on interface %" PRIkernel_pid" - " + "interface does not exist\n", GNRC_RPL_DEFAULT_NETIF); + return; +#else + DEBUG("auto_init_gnrc_rpl: please specify an interface by setting GNRC_RPL_DEFAULT_NETIF\n"); +#endif +} +#else +typedef int dont_be_pedantic; +#endif /* MODULE_AUTO_INIT_GNRC_RPL */ + +/** @} */ -- GitLab