1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

sys/auto-init: added mechanism to init network ifs

This commit is contained in:
haukepetersen 2015-04-29 21:17:07 +02:00 committed by Hauke Petersen
parent 56cce19578
commit a4358bfdee
5 changed files with 44 additions and 1 deletions

View File

@ -1,3 +1,6 @@
ifneq (,$(filter auto_init,$(USEMODULE)))
include $(RIOTBASE)/sys/auto_init/Makefile.include
endif
ifneq (,$(filter nomac,$(USEMODULE)))
USEMODULE_INCLUDES += $(RIOTBASE)/sys/net/include
endif

View File

@ -6,4 +6,6 @@ ifneq (,$(filter nomac,$(USEMODULE)))
INCLUDES += -I$(RIOTBASE)/sys/net/include/
endif
DIRS += $(AUTO_INIT_MODULES)
include $(RIOTBASE)/Makefile.base

View File

@ -0,0 +1,13 @@
# try to find the ng_netif auto init implementation in the application or in
# the board, respectively. If it is not found, nothing is called.
ifneq (,$(filter ng_netif,$(USEMODULE)))
ifneq (,$(wildcard $(APPDIR)/auto_init_ng_netif/*))
export AUTO_INIT_MODULES += $(APPDIR)/auto_init_ng_netif
export USEMODULE += auto_init_ng_netif
else
ifneq (,$(wildcard $(RIOTBOARD)/$(BOARD)/auto_init_ng_netif/*))
export AUTO_INIT_MODULES += $(RIOTBOARD)/$(BOARD)/auto_init_ng_netif
export USEMODULE += auto_init_ng_netif
endif
endif
endif

View File

@ -12,6 +12,7 @@
* @file auto_init_c
* @brief initializes any used module that has a trivial init function
* @author Oliver Hahm <oliver.hahm@inria.fr>
* @author Hauke Petersen <hauke.petersen@fu-berlin.de>
* @}
*/
#include <stdint.h>
@ -304,4 +305,8 @@ void auto_init(void)
DEBUG("Auto init UDP module.\n");
ng_udp_init();
#endif
#ifdef MODULE_AUTO_INIT_NG_NETIF
DEBUG("Auto init network interfaces.\n");
auto_init_ng_netif();
#endif
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2010 Freie Universität Berlin
* Copyright (C) 2010,2015 Freie Universität Berlin
* Copyright (C) 2010 Kaspar Schleiser
* Copyright (C) 2013 INRIA
*
@ -27,6 +27,10 @@
* @{
*
* @file auto_init.h
*
* @author Kaspar Schleiser <kaspar@schleiser.de>
* @author Oliver Hahm <oliver.hahm@inria.fr>
* @author Hauke Petersen <hauke.petersen@fu-berlin.de>
*/
#ifndef AUTO_INIT_H
@ -45,6 +49,22 @@ extern "C" {
*/
void auto_init(void);
/**
* @brief Initialize network interfaces and register them with ng_netif
*
* This function must be implemented in the board or in the application,
* in a subfolder that must be named auto_init_ng_netif
* This function is called under two conditions:
* 1. the ng_netif module is used (USEMODULE contains ng_netif)
* 2. the board or the application contains a subfolder called
* auto_init_ng_netif
* If the board and the application both contain the mentioned subfolder,
* the contents from the applications subfolder have a higher priority
* and will be compiled and linked, while the board's subfolder is then
* ignored.
*/
void auto_init_ng_netif(void);
#ifdef __cplusplus
}
#endif