1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/drivers/at86rf215/Makefile.dep
Marian Buschsieweke 276ad5716a
sys/net/gnrc/netif: allow checking if a netdev is legacy or new API
A if `netdev_driver_t::confirm_send()` is provided, it provides the
new netdev API. However, detecting the API at runtime and handling
both API styles comes at a cost. This can be optimized in case only
new or only old style netdevs are in use.

To do so, this adds the pseudo modules `netdev_legacy_api` and
`netdev_new_api`. As right now no netdev actually implements the new
API, all netdevs pull in `netdev_legacy_api`. If `netdev_legacy_api` is
in used but `netdev_new_api` is not, we can safely assume at compile
time that only legacy netdevs are in use. Similar, if only
`netdev_new_api` is used, only support for the new API is needed. Only
when both are in use, run time checks are needed.

This provides two helper function to check for a netif if the
corresponding netdev implements the old or the new API. (With one
being the inverse of the other.) They are suitable for constant folding
when only new or only legacy devices are in use. Consequently, dead
branches should be eliminated by the optimizer.
2022-08-17 12:56:07 +02:00

37 lines
928 B
Makefile

DEFAULT_MODULE += auto_init_at86rf215
ifneq (,$(filter at86rf215m,$(USEMODULE)))
USEMODULE += at86rf215_subghz
endif
ifeq (,$(filter at86rf215_subghz at86rf215_24ghz,$(USEMODULE)))
DEFAULT_MODULE += at86rf215_subghz
DEFAULT_MODULE += at86rf215_24ghz
endif
ifneq (,$(filter at86rf215_batmon,$(USEMODULE)))
USEMODULE += sys_bus_power
endif
DEFAULT_MODULE += netdev_ieee802154_multimode
DEFAULT_MODULE += netdev_ieee802154_oqpsk
DEFAULT_MODULE += netdev_ieee802154_mr_oqpsk
DEFAULT_MODULE += netdev_ieee802154_mr_ofdm
DEFAULT_MODULE += netdev_ieee802154_mr_fsk
FEATURES_REQUIRED += periph_gpio
FEATURES_REQUIRED += periph_gpio_irq
FEATURES_REQUIRED += periph_spi
ifneq (,$(filter gnrc,$(USEMODULE)))
ifeq (,$(filter gnrc_netif_pktq,$(USEMODULE)))
DEFAULT_MODULE += at86rf215_blocking_send
endif
endif
USEMODULE += xtimer
USEMODULE += ieee802154
USEMODULE += netdev_ieee802154
USEMODULE += netdev_legacy_api