mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
276ad5716a
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.
67 lines
2.1 KiB
Plaintext
67 lines
2.1 KiB
Plaintext
# Copyright (c) 2020 Freie Universitaet Berlin
|
|
#
|
|
# 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.
|
|
#
|
|
menuconfig KCONFIG_USEMODULE_DOSE
|
|
bool "Configure DOSE driver"
|
|
depends on USEMODULE_DOSE
|
|
help
|
|
Configure the Differentially Operated Serial Ethernet (DOSE)
|
|
driver using Kconfig.
|
|
|
|
if KCONFIG_USEMODULE_DOSE
|
|
|
|
config DOSE_TIMEOUT_BYTES
|
|
int "Transaction timeout in bytes"
|
|
default 50
|
|
help
|
|
Timeout, in bytes at the set baudrate, to bring the driver back into idle state if
|
|
the remote side died within a transaction.
|
|
|
|
endif # KCONFIG_USEMODULE_DOSE
|
|
|
|
menuconfig MODULE_DOSE
|
|
bool "Differentially Operated Serial Ethernet (DOSE)"
|
|
depends on TEST_KCONFIG
|
|
depends on HAS_PERIPH_GPIO
|
|
depends on HAS_PERIPH_GPIO_IRQ
|
|
depends on HAS_PERIPH_UART
|
|
select MODULE_CHUNKED_RINGBUFFER
|
|
select MODULE_EUI_PROVIDER
|
|
select MODULE_IOLIST
|
|
select MODULE_NETDEV_ETH
|
|
select MODULE_NETDEV_LEGACY_API
|
|
select MODULE_PERIPH_GPIO
|
|
select MODULE_PERIPH_GPIO_IRQ
|
|
select MODULE_PERIPH_UART
|
|
select MODULE_PERIPH_UART_COLLISION if HAS_PERIPH_UART_COLLISION
|
|
select MODULE_PERIPH_UART_RXSTART_IRQ if HAS_PERIPH_UART_RXSTART_IRQ
|
|
select MODULE_RANDOM
|
|
select MODULE_ZTIMER
|
|
select ZTIMER_USEC
|
|
help
|
|
Allows RIOT nodes to communicate by Ethernet over a serial bus.
|
|
|
|
if MODULE_DOSE
|
|
|
|
config MODULE_DOSE_WATCHDOG
|
|
bool "Use a watchdog timer"
|
|
depends on HAS_PERIPH_TIMER_PERIODIC
|
|
select MODULE_PERIPH_TIMER_PERIODIC
|
|
help
|
|
Say y to utilize a dedicated hardware timer (DOSE_TIMER_DEV which should
|
|
be configured in board.h) to periodically check if any interface does
|
|
not make progress receiving a frame and abort the RX process. This
|
|
speeds up the more critical RX path.
|
|
|
|
config DOSE_TIMEOUT_BYTES
|
|
int "Transaction timeout in bytes"
|
|
default 50
|
|
help
|
|
Timeout, in bytes at the set baudrate, to bring the driver back into idle state if
|
|
the remote side died within a transaction.
|
|
|
|
endif # MODULE_DOSE
|