Expand description
§Bindings for RIOT system calls
This crate contains dynamically generated Rust FFI bindings to the RIOT Operating System.
Those bindings are inherently unsafe; it is recommended that their safe abstractions in the riot-wrappers crate are used in most applications.
For a newcomer’s starting point, see RIOT’s documentation on using it with Rust. This also contains installation instructions / dependencies.
§RIOT integration
Which functions and structs are present in this crate, and sometimes their
details, inherently depends on the RIOT configuration this will be used with.
For example, RIOT’s thread_t
only has a member name
if DEVHELP
is
set for a build, and its flags
member is only present if the thread_flags
module is in use.
All the relevant information – including the location of the actually used
RIOT header files and flags influencing the ABI – is conveyed to riot-sys
by passing on the
compiler and the CFLAGS. This can either be done by passing in the path to a “compile commads”
file through the RIOT_COMPILE_COMMANDS
environment variable (accompanied by a
RIOT_USEMODULES
, as that part of CFLAGS
is missing from the compile commands), or
alternatively by passing in the C compiler as RIOT_CC
and the CFLAGS (both their
CFLAGS_WITH_MACROS
and the INCLUDES
part from RIOT’s build system) in. When called from
within RIOT’s build system, care must be taken to clear CC
and CFLAGS
, as these would be
interpreted by Cargo (Rust’s build system) to refer to the host compiler and flags.
The flags will be interpreted by libclang based tools; care must be taken to pass in flags
suitable for clang and not for GCC.
These steps are automated in RIOT’s build system.
The RIOT_CC
and RIOT_CFLAGS
are made available to dependent crates through
Cargo (as DEP_RIOT_SYS_CC
etc); see riot-wrappers’s build.sh for an example. Similarly,
custom markers are made available based on the presence of certain defines or features in RIOT
as downstream crates require that information (typically to allow a crate to work across a
wider range of RIOT versions); see the section below for details.
§Extension
Currently, only a subset of all the RIOT headers is processed; all the relevant
header files are included in this crate’s riot-headers.h
header file. If you
need access to more RIOT APIs, more includes can be added there.
§Versioning
riot-sys
is versioned using SemVer,
and efforts are made to not make breaking changes even while in the 0.x phase.
Note that as it passes on RIOT internals,
any of the SemVer guarantees only hold when built on the same RIOT –
once the underlying C code is changed, all bets are off.
Users of riot-rs
can introspect the DEP_RIOT_SYS_...
variables
that are available to crates that set links = "riot-sys"
to affect the symbols those crates use.
Typical variables to inspect are DEP_RIOT_SYS_BINDGEN_OUTPUT_FILE
(to determine whether a symbol is imported in the first place, eg. when RIOT renames something)
and DEP_RIOT_SYS_CFLAGS
which includes the enabled modules.
§Markers
Deprecated, see below.
Some decisions of downstream crates need to depend on whether some feature is around in RIOT. For many things that’s best checked on module level, but some minor items have no module to mark the feature, and checking for versions by numers is not fine-grained enough, so it’s easiest to check for concrete strings in the bindgen output.
The build.rs
of this crate contains a list of marker conditions. These lead to MARKER_foo=1
items emitted that are usable as DEP_RIOT_SYS_MARKER_foo=1
by crates that explicitly links = "riot-sys"
. They are stable in that they’ll only go away in a breaking riot-sys version;
downstream users likely stop using them earlier because they sooner or later stop supporting
old RIOT versions.
For example, in PR #17957, an argument to a
particular handler function changed fundamentally; no amount of .into()
would allow writing
sensible abstractions. The marker coap_request_ctx_t
was introduced, and is present
automatically on all RIOT versions that have that particular pull request merged. Code in
riot-wrappers
uses conditions like #[cfg(marker_coap_request_ctx_t)]
to decide whether to
use the old or the new conventions.
These markers are currently checked against bindgen’s output, but could query any property that riot-sys has access to. The markers are defined in terms of some change having happened in RIOT; the way they are tested for can change. (In particular, when riot-sys stops supporting an older RIOT version, it can just always emit that marker).
Crates building on this should preferably not alter their own APIs depending on these,
because that would add extra (and hard-to-track) dimensions to them. If they can, they
should provide a unified view and degrade gracefully. (For example, riot-wrappers has the
unit T
of the phydat_unit_t
in its enum, but converts it to the generic unspecified unit
on RIOT versions that don’t have the T type yet – at least for as long as it supports
2022.01).
Deprecation note / successor: As of 2023-02, no new markers will be added, because
implementing this mechanism here has shown to be impracitcal: Changes need to go into riot-sys
first before they can be use (and tested in) with riot-wrappers. Instead, BINDGEN_OUTPUT_FILE
is exported (usable as DEP_RIOT_SYS_BINDGEN_OUTPUT_FILE
), which points to the Rust file
generated by bindgen. Downstream crates can inspect that file, possibly using the same
string-based methods as riot-sys uses, but without any cross-crate dependencies.
Crates accessing the BINDGEN_OUTPUT_FILE
should exercise the same caution that is recommended
above for the use of markers.
The types and constants of RIOT are translated in two forms: through bindgen (to be linked together), and through C2Rust (transpiled, to be inlined). This is necessary because neither can express the full set of useful RIOT APIs.
All bindgen types are reexported in the main module and exclusively public through there. The C2Rust types largely reside in the inline module, with some pub used into the root module as necessary or convenient.
Re-exports§
pub use inline::bluetil_ad_add_flags;
pub use inline::coap_get_code_raw;
pub use inline::coap_get_total_hdr_len;
pub use inline::gnrc_netapi_dispatch_send;
pub use inline::gnrc_netif_ipv6_addrs_get;
pub use inline::gnrc_netreg_entry_init_pid;
pub use inline::gpio_is_valid;
pub use inline::irq_disable;
pub use inline::irq_is_enabled;
pub use inline::irq_is_in;
pub use inline::irq_restore;
pub use inline::mutex_trylock;
pub use inline::mutex_lock;
pub use inline::pid_is_valid;
pub use inline::shell_run_forever;
pub use inline::sock_udp_recv;
pub use inline::sock_udp_send;
pub use inline::thread_get;
pub use inline::thread_getpid;
pub use inline::thread_get_unchecked;
pub use inline::ztimer_spin;
pub use inline::AF_UNSPEC;
pub use inline::AF_UNIX;
pub use inline::AF_PACKET;
pub use inline::AF_INET;
pub use inline::AF_INET6;
pub use inline::macro_SOCK_IPV4_EP_ANY;
pub use inline::macro_SOCK_IPV6_EP_ANY;
pub use inline::macro_MUTEX_INIT;
pub use inline::macro_STATUS_NOT_FOUND;
pub use inline::macro_GPIO_PIN;
pub use inline::macro_I2C_DEV;
pub use inline::macro_SPI_DEV;
pub use inline::macro_UART_DEV;
pub use inline::macro_PWM_DEV;
pub use inline::macro_ADC_LINE;
pub use inline::macro_TIMER_DEV;
pub use inline::macro_LED0_ON;
pub use inline::macro_LED0_OFF;
pub use inline::macro_LED0_TOGGLE;
pub use inline::macro_LED0_IS_PRESENT;
pub use inline::macro_LED1_ON;
pub use inline::macro_LED1_OFF;
pub use inline::macro_LED1_TOGGLE;
pub use inline::macro_LED1_IS_PRESENT;
pub use inline::macro_LED2_ON;
pub use inline::macro_LED2_OFF;
pub use inline::macro_LED2_TOGGLE;
pub use inline::macro_LED2_IS_PRESENT;
pub use inline::macro_LED3_ON;
pub use inline::macro_LED3_OFF;
pub use inline::macro_LED3_TOGGLE;
pub use inline::macro_LED3_IS_PRESENT;
pub use inline::macro_LED4_ON;
pub use inline::macro_LED4_OFF;
pub use inline::macro_LED4_TOGGLE;
pub use inline::macro_LED4_IS_PRESENT;
pub use inline::macro_LED5_ON;
pub use inline::macro_LED5_OFF;
pub use inline::macro_LED5_TOGGLE;
pub use inline::macro_LED5_IS_PRESENT;
pub use inline::macro_LED6_ON;
pub use inline::macro_LED6_OFF;
pub use inline::macro_LED6_TOGGLE;
pub use inline::macro_LED6_IS_PRESENT;
pub use inline::macro_LED7_ON;
pub use inline::macro_LED7_OFF;
pub use inline::macro_LED7_TOGGLE;
pub use inline::macro_LED7_IS_PRESENT;
Modules§
- bindgen 🔒The bindgen generated definitions
- C2Rust transpiled header contents (static inline functions
- Replacements for core::intrinsics to work around https://github.com/immunant/c2rust/issues/372
- Types used around and with the exported functions
Structs§
- @brief ACL_ACL [ACL] (Unspecified)
- @brief FICR_INFO [INFO] (Device info)
- @brief FICR_NFC [NFC] (Unspecified)
- @brief FICR_TEMP [TEMP] (Registers storing factory TEMP module linearization coefficients)
- @brief FICR_TRNG90B [TRNG90B] (NIST800-90B RNG calibration data)
- @brief I2S_CONFIG [CONFIG] (Unspecified)
- @brief I2S_PSEL [PSEL] (Unspecified)
- @brief I2S_RXD [RXD] (Unspecified)
- @brief I2S_RXTXD [RXTXD] (Unspecified)
- @brief I2S_TXD [TXD] (Unspecified)
- @brief MWU_EVENTS_PREGION [EVENTS_PREGION] (Peripheral events.)
- @brief MWU_EVENTS_REGION [EVENTS_REGION] (Peripheral events.)
- @brief MWU_PERREGION [PERREGION] (Unspecified)
- @brief MWU_PREGION [PREGION] (Unspecified)
- @brief MWU_REGION [REGION] (Unspecified)
- @brief NFCT_FRAMESTATUS [FRAMESTATUS] (Unspecified)
- @brief NFCT_RXD [RXD] (Unspecified)
- @brief NFCT_TXD [TXD] (Unspecified)
- @brief Accelerated Address Resolver (AAR)
- @brief Access control lists (ACL)
- @brief AES CCM Mode Encryption (CCM)
- @brief CRYPTOCELL HOST_RGF interface (CC_HOST_RGF)
- @brief Clock control (CLOCK)
- @brief Comparator (COMP)
- @brief ARM TrustZone CryptoCell register interface (CRYPTOCELL)
- @brief AES ECB Mode Encryption (ECB)
- @brief Event Generator Unit 0 (EGU0)
- @brief Factory information configuration registers (FICR)
- @brief FPU (FPU)
- @brief GPIO Tasks and Events (GPIOTE)
- @brief GPIO Port 1 (P0)
- @brief Inter-IC Sound (I2S)
- @brief Low Power Comparator (LPCOMP)
- @brief Memory Watch Unit (MWU)
- @brief NFC-A compatible radio (NFCT)
- @brief Non Volatile Memory Controller (NVMC)
- @brief Pulse Density Modulation (Digital Microphone) Interface (PDM)
- @brief Power control (POWER)
- @brief Programmable Peripheral Interconnect (PPI)
- @brief Pulse width modulation unit 0 (PWM0)
- @brief Quadrature Decoder (QDEC)
- @brief External flash interface (QSPI)
- @brief 2.4 GHz radio (RADIO)
- @brief Random Number Generator (RNG)
- @brief Real time counter 0 (RTC0)
- @brief Successive approximation register (SAR) analog-to-digital converter (SAADC)
- @brief Serial Peripheral Interface Master with EasyDMA 0 (SPIM0)
- @brief SPI Slave 0 (SPIS0)
- @brief Serial Peripheral Interface 0 (SPI0)
- @brief Software interrupt 0 (SWI0)
- @brief Temperature Sensor (TEMP)
- @brief Timer/Counter 0 (TIMER0)
- @brief I2C compatible Two-Wire Master Interface with EasyDMA 0 (TWIM0)
- @brief I2C compatible Two-Wire Slave Interface with EasyDMA 0 (TWIS0)
- @brief I2C compatible Two-Wire Interface 0 (TWI0)
- @brief UART with EasyDMA 0 (UARTE0)
- @brief Universal Asynchronous Receiver/Transmitter (UART0)
- @brief User information configuration registers (UICR)
- @brief Universal serial bus device (USBD)
- @brief Watchdog Timer (WDT)
- @brief PDM_PSEL [PSEL] (Unspecified)
- @brief PDM_SAMPLE [SAMPLE] (Unspecified)
- @brief POWER_RAM [RAM] (Unspecified)
- @brief PPI_CH [CH] (PPI Channel)
- @brief PPI_FORK [FORK] (Fork)
- @brief PPI_TASKS_CHG [TASKS_CHG] (Channel group tasks)
- @brief PWM_PSEL [PSEL] (Unspecified)
- @brief PWM_SEQ [SEQ] (Unspecified)
- @brief QDEC_PSEL [PSEL] (Unspecified)
- @brief QSPI_ERASE [ERASE] (Unspecified)
- @brief QSPI_PSEL [PSEL] (Unspecified)
- @brief QSPI_READ [READ] (Unspecified)
- @brief QSPI_WRITE [WRITE] (Unspecified)
- @brief SAADC_CH [CH] (Unspecified)
- @brief SAADC_EVENTS_CH [EVENTS_CH] (Peripheral events.)
- @brief SAADC_RESULT [RESULT] (RESULT EasyDMA channel)
- @brief SPIM_IFTIMING [IFTIMING] (Unspecified)
- @brief SPIM_PSEL [PSEL] (Unspecified)
- @brief SPIM_RXD [RXD] (RXD EasyDMA channel)
- @brief SPIM_TXD [TXD] (TXD EasyDMA channel)
- @brief SPIS_PSEL [PSEL] (Unspecified)
- @brief SPIS_RXD [RXD] (Unspecified)
- @brief SPIS_TXD [TXD] (Unspecified)
- @brief SPI_PSEL [PSEL] (Unspecified)
- @brief TWIM_PSEL [PSEL] (Unspecified)
- @brief TWIM_RXD [RXD] (RXD EasyDMA channel)
- @brief TWIM_TXD [TXD] (TXD EasyDMA channel)
- @brief TWIS_PSEL [PSEL] (Unspecified)
- @brief TWIS_RXD [RXD] (RXD EasyDMA channel)
- @brief TWIS_TXD [TXD] (TXD EasyDMA channel)
- @brief TWI_PSEL [PSEL] (Unspecified)
- @brief UARTE_PSEL [PSEL] (Unspecified)
- @brief UARTE_RXD [RXD] (RXD EasyDMA channel)
- @brief UARTE_TXD [TXD] (TXD EasyDMA channel)
- @brief UART_PSEL [PSEL] (Unspecified)
- @brief USBD_EPIN [EPIN] (Unspecified)
- @brief USBD_EPOUT [EPOUT] (Unspecified)
- @brief USBD_HALTED [HALTED] (Unspecified)
- @brief USBD_ISOIN [ISOIN] (Unspecified)
- @brief USBD_ISOOUT [ISOOUT] (Unspecified)
- @brief USBD_SIZE [SIZE] (Unspecified)
- @brief Type for CoAP resource subtrees
- @brief CoAP resource request handler context @internal
- @brief Common IP-based transport layer end point
- @brief @c thread_t holds thread’s context data.
- @brief AES128_CMAC calculation context
- @brief Type to represent a module to be auto-initialized
- Advertising parameters
- @brief Connection descriptor
- @brief Connection parameters
- @brief Advertising report
- @brief Discovery parameters
- Represents a GAP-related event. When such an event occurs, the host notifies the application by passing an instance of this structure to an application-specified callback.
- Represents a connection attempt. Valid for the following event types: o BLE_GAP_EVENT_CONNECT
- Represents a terminated connection. Valid for the following event types: o BLE_GAP_EVENT_DISCONNECT
- Represents a completed discovery procedure. Valid for the following event types: o BLE_GAP_EVENT_DISC_COMPLETE
- Represents a completed advertise procedure. Valid for the following event types: o BLE_GAP_EVENT_ADV_COMPLETE
- Represents an attempt to update a connection’s parameters. If the attempt was successful, the connection’s descriptor reflects the updated parameters.
- Represents a peer’s request to update the connection parameters. This event is generated when a peer performs any of the following procedures: o L2CAP Connection Parameter Update Procedure o Link-Layer Connection Parameters Request Procedure
- Represents a failed attempt to terminate an established connection. Valid for the following event types: o BLE_GAP_EVENT_TERM_FAILURE
- Represents an attempt to change the encrypted state of a connection. If the attempt was successful, the connection descriptor reflects the updated encrypted state.
- Represents a passkey query needed to complete a pairing procedure.
- Represents a received ATT notification or indication.
- Represents a transmitted ATT notification or indication, or a completed indication transaction.
- Represents a state change in a peer’s subscription status. In this comment, the term “update” is used to refer to either a notification or an indication. This event is triggered by any of the following occurrences: o Peer enables or disables updates via a CCCD write. o Connection is about to be terminated and the peer is subscribed to updates. o Peer is now subscribed to updates after its state was restored from persistence. This happens when bonding is restored.
- Represents a change in an L2CAP channel’s MTU.
- Represents a change in peer’s identity. This is issued after successful pairing when Identity Address Information was received.
- Represents a change of PHY. This is issue after successful change on PHY.
- Event listener structure
- @brief Extended discovery parameters
- @brief Passkey query
- Connection security state
- @brief Connection parameters update parameters
- @server.
- @client.
- Context passed to the registration callback; represents the GATT service, characteristic, or descriptor being registered.
- Service; valid if op == BLE_GATT_REGISTER_OP_SVC.
- Characteristic; valid if op == BLE_GATT_REGISTER_OP_CHR.
- Descriptor; valid if op == BLE_GATT_REGISTER_OP_DSC.
- @brief Bluetooth Host main configuration structure
- @brief Used to report the result of a stop procedure.
- Represents a L2CAP-related event. When such an event occurs, the host notifies the application by passing an instance of this structure to an application-specified callback.
- Represents a connection attempt. Valid for the following event types: o BLE_L2CAP_EVENT_COC_CONNECTED
- Represents a terminated connection. Valid for the following event types: o BLE_L2CAP_EVENT_COC_DISCONNECTED
- Represents connection accept. Valid for the following event types: o BLE_L2CAP_EVENT_COC_ACCEPT
- Represents received data. Valid for the following event types: o BLE_L2CAP_EVENT_COC_DATA_RECEIVED
- Represents tx_unstalled data. Valid for the following event types: o BLE_L2CAP_EVENT_COC_TX_UNSTALLED
- Represents reconfiguration done. Valid for the following event types: o BLE_L2CAP_EVENT_COC_RECONFIG_COMPLETED o BLE_L2CAP_EVENT_COC_PEER_RECONFIGURED
- Used as a key for lookups of stored client characteristic configuration descriptors (CCCDs). This struct corresponds to the BLE_STORE_OBJ_TYPE_CCCD store object type.
- Used as a key for lookups of security material. This struct corresponds to the following store object types: o BLE_STORE_OBJ_TYPE_OUR_SEC o BLE_STORE_OBJ_TYPE_PEER_SEC
- Represents a write that failed due to storage exhaustion. Valid for the following event types: o BLE_STORE_EVENT_OVERFLOW
- Represents the possibility that a scheduled write will fail due to storage exhaustion. Valid for the following event types: o BLE_STORE_EVENT_FULL
- Represents a stored client characteristic configuration descriptor (CCCD). This struct corresponds to the BLE_STORE_OBJ_TYPE_CCCD store object type.
- Represents stored security material. This struct corresponds to the following store object types: o BLE_STORE_OBJ_TYPE_OUR_SEC o BLE_STORE_OBJ_TYPE_PEER_SEC
- 16-bit UUID
- 32-bit UUID
- 128-bit UUID
- Generic UUID type, to be used only as a pointer
- @brief Struct used for returning the contents of a selected field
- @brief Descriptor for a buffer containing advertising data
- @brief circular integer buffer structure
- @brief the context for cipher-operations
- @brief BlockCipher-Interface for the Cipher-Algorithms
- @brief basic struct for using block ciphers contains the cipher interface and the context
- @brief Block1 helper struct
- @brief Blockwise request helper struct
- @brief Blockwise transfer helper struct
- @brief Raw CoAP PDU header structure
- @brief Context information required to write a resource link
- @brief CoAP option array entry
- @brief CoAP PDU parsing context structure
- @brief Type for CoAP resource entry
- @name COSE header struct @{
- @name COSE header pack
- @name COSE key object
- @name COSE sign, https://tools.ietf.org/html/rfc8152#section-4
- @name COSE sign decoding struct
- @name Signature struct @brief Contains signature and headers related to the signatures @{
- @name Signature decoder struct @brief Contains the buffer information required for decoding a signature @{
- @name DHCPv6 unique identifier (DUID) definitions @see RFC 8415, section 11 @{ / /** @brief DUID based on link-layer address plus time
- @brief Ethernet header
- @brief event structure
- @brief Callback Event structure definition
- @brief event queue structure
- @brief Timeout Event structure
- @brief Generic event
- @brief Message box event definition.
- @brief IPC-message event @extends evtimer_event_t
- @brief Event timer
- @brief A modular collection of resources for a server
- @brief Memo for Observe registration and notifications
- @brief Memo to handle a response for a request
- @brief Extends request memo for resending a confirmable request.
- @brief CoAP socket to handle multiple transport types
- @brief Authoritative border router list entry view on NIB
- @brief Forwarding table entry view on NIB
- @brief Neighbor cache entry view on NIB
- @brief Prefix list entry view on NIB
- @brief Data structure to be send for setting (@ref GNRC_NETAPI_MSG_TYPE_SET) and getting (@ref GNRC_NETAPI_MSG_TYPE_GET) options
- @brief Generic network interface header
- @brief IPv6 component for @ref gnrc_netif_t
- @see gnrc_netif_ops_t
- @brief Representation of a network interface
- @brief Entry to the @ref net_gnrc_netreg
- @brief Callback + Context descriptor @note Only available with @ref net_gnrc_netapi_callbacks.
- @brief Type to represent parts (either headers or payload) of a packet, called snips. @details The idea behind the packet snips is that they either can represent protocol-specific headers or payload. A packet can be comprised of multiple pktsnip_t elements.
- @brief sock @ref net_gnrc_netreg info @internal
- @brief Context for HMAC operations based on sha256
- @brief I2C (TWI) configuration options @{
- @brief Echo request and response message format. @extends icmpv6_hdr_t
- @brief Destination unreachable message format. @extends icmpv6_hdr_t
- @brief Parameter problem message format. @extends icmpv6_hdr_t
- @brief Packet too big message format. @extends icmpv6_hdr_t
- @brief Time exceeded message format. @extends icmpv6_hdr_t
- @brief General ICMPv6 message format.
- @brief iolist structure definition
- @brief struct iovec anonymous declaration
- @brief Fragment header definition
- @brief IPv6 routing extension header.
- @brief IPv6 extension headers.
- @brief Data type to represent an IPv6 packet header
- @brief Context structure for isrpipe
- @brief Context for operations on a sponge with keccak permutation
- @brief Forward declaration of a list of network scan results
- @brief List node structure
- @brief Mailbox struct definition
- @brief MD5 calculation context
- @brief Describes a message object which can be sent between threads.
- @brief MTD driver interface
- @brief MTD device descriptor
- @brief A cancellation structure for use with @ref mutex_lock_cancelable and @ref mutex_cancel
- @brief Mutex structure. Must never be modified by the user.
- @brief encoder context
- @brief decoder context
- @brief Cache container that holds a @p coap_pkt_t struct.
- @brief Context from CoAP request for separate response
- @brief NanoCoAP socket struct
- @brief Neighbor advertisement message format. @extends icmpv6_hdr_t
- @brief Neighbor solicitation message format. @extends icmpv6_hdr_t
- @brief MTU option format @extends ndp_opt_t
- @brief Prefix information option format @extends ndp_opt_t
- @brief Recursive DNS server option format with payload @extends ndp_opt_rdnss_t @details Auxiliary struct that contains a zero-length array as convenience pointer to the addresses. Only for use in C, invalid in ISO-C++.
- @brief Recursive DNS server option format without payload @extends ndp_opt_t
- @brief Redirected header option format @extends ndp_opt_t
- @brief Route information option format @extends ndp_opt_t
- @brief General NDP option format @see RFC 4861, section 4.6
- @brief Redirect message format. @extends icmpv6_hdr_t
- @brief Router advertisement message format. @extends icmpv6_hdr_t
- @brief Router solicitation message format. @extends icmpv6_hdr_t
- @brief Structure to hold driver state
- @brief Structure to hold driver interface -> function mapping
- @brief Received frame status information for most radios
- @brief Network interface descriptor.
- @brief Basic network connect request
- @brief Basic network connect result
- @brief Basic network disconnect request
- @brief Basic disconnect result
- @brief Basic network scan request
- @brief Basic network scan result
- Chained memory buffer.
- A packet header structure that preceeds the mbuf packet headers.
- A mbuf pool from which to allocate mbufs. This contains a pointer to the os mempool to allocate mbufs out of, the total number of elements in the pool, and the amount of “user” data in a non-packet header mbuf. The total pool size, in bytes, should be: os_mbuf_count * (omp_databuf_len + sizeof(struct os_mbuf))
- A memory block structure. This simply contains a pointer to the free list chain and is only used when the block is on the free list. When the block has been removed from the free list the entire memory block is usable by the caller.
- Memory pool
- Information describing a memory pool, used to return OS information to the management layer.
- Structure representing a queue of mbufs.
- @brief Generic data structure for expressing physical values
- @brief Quadrature decoder configuration struct
- @brief Ringbuffer. @details Non thread-safe FIFO ringbuffer implementation around a
char
array. - @brief Mutex structure. Must never be modified by the user.
- @brief Definition of the RIOT actuator/sensor interface
- @brief SAUL registry entry
- @brief Additional data to collect for each entry
- @brief A Semaphore.
- @brief SHA-1 algorithm context @internal
- @brief Structure to hold the SHA-2XX context.
- @brief sha256-chain indexed element
- @brief Structure to hold the SHA-512 context.
- @brief A single command in the list of the supported commands. @details The list of commands is NULL terminated, i.e. the last element must be
{ NULL, NULL, NULL }
. - @brief A single command in the list of the supported commands.
- @brief Asynchronous context for @ref net_sock_async_event
- @brief Event definition for context scope
- @brief Raw IP sock type @internal
- @brief Auxiliary data provided when receiving using an IP sock object
- @brief Auxiliary data provided when sending using an IP sock object
- @brief Abstract IP end point and end point for a raw IP sock object
- @brief Transmission control block of GNRC TCP.
- @brief Transmission control block queue.
- @brief UDP sock type @internal
- @brief Auxiliary data provided when receiving using an UDP sock object
- @brief Auxiliary data provided when sending using an UDP sock object
- @brief SPI configuration values
- @brief SPI gpio mode
- @brief File system information
- @brief stdio provider struct
- @brief SUIT component struct as decoded from the manifest
- @brief SUIT condition parameters
- @brief SUIT manifest struct
- @brief SUIT parameter reference
- @brief Timer configuration options
- @brief A timex timestamp
- @brief thread-safe ringbuffer struct
- @brief Structure for UART configuration data
- @brief UDP header
- @brief Unaligned access helper struct (uint16_t version)
- @brief Unaligned access helper struct (uint32_t version)
- @brief Unaligned access helper struct (uint64_t version)
- @brief UUID layout
- @brief Internal representation of a file system directory entry
- @brief Operations on open directories
- @brief User facing directory entry
- @brief Operations on open files
- @brief Operations on mounted file systems
- @brief A file system driver
- @brief Information about an open file
- @brief A mounted file system
- @brief Minimum information for each timer
- @brief ztimer device structure
- @brief ztimer backend method structure
- @brief ztimer periodic structure
- @brief ztimer structure
Constants§
- 16-bit UUID (BT SIG assigned)
- 32-bit UUID (BT SIG assigned)
- 128-bit UUID
- < blocking mode
- < insufficient memory to write field
- < entry not found
- < everything went as expected
- @brief neighbor state change
- @brief route notification
- @brief reactive routing query
- < undefined
- < Use some automatic bootstrapping (e.g. SLAAC with IPv6)
- < Use DHCP(v6)
- < no configuration
- < no forward error correction
- < non-recursive and non-systematic code
- < recursive and systematic code
- < -11 Bus Fault, Pre-Fetch-, Memory Access Fault, other address/memory related Fault
- < 15 CCM_AAR
- < 19 COMP_LPCOMP
- < 42 CRYPTOCELL
- < -4 Debug Monitor
- < 14 ECB
- < 38 FPU
- < 6 GPIOTE
- < -13 Hard Fault, all classes of Fault
- < 37 I2S
- < 32 MWU
- < -12 Memory Management, MPU mismatch, including Access Violation and No Match
- < 5 NFCT
- < -14 Non maskable Interrupt, cannot be stopped or preempted
- < 29 PDM
- < 0 POWER_CLOCK
- < 28 PWM0
- < 33 PWM1
- < 34 PWM2
- < 45 PWM3
- < -2 Pendable request for system service
- < 18 QDEC
- < 41 QSPI
- < 1 RADIO
- < 13 RNG
- < 11 RTC0
- < 17 RTC1
- < 36 RTC2
- < -15 Reset Vector, invoked on Power up and warm reset
- < 7 SAADC
- < 3 SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0
- < 4 SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1
- < 35 SPIM2_SPIS2_SPI2
- < 47 SPIM3
- < -5 System Service Call via SVC instruction
- < 20 SWI0_EGU0
- < 21 SWI1_EGU1
- < 22 SWI2_EGU2
- < 23 SWI3_EGU3
- < 24 SWI4_EGU4
- < 25 SWI5_EGU5
- < -1 System Tick Timer
- < 12 TEMP
- < 8 TIMER0
- < 9 TIMER1
- < 10 TIMER2
- < 26 TIMER3
- < 27 TIMER4
- < 2 UARTE0_UART0
- < 40 UARTE1
- < 39 USBD
- < -10 Usage Fault, i.e. Undef Instruction, Illegal State Transition
- < 16 WDT
- < non-blocking mode
- < Analog Input 0
- < Analog Input 1
- < Analog Input 2
- < Analog Input 3
- < Analog Input 4
- < Analog Input 5
- < Analog Input 6
- < Analog Input 7
- < VDD, not useful if VDD is reference…
- < VDDH divided by 5
- any actuator - wildcard
- actuator: dimmable switch
- < any actuator - wildcard
- < actuator: dimmable switch
- < actuator: RGB LED
- < actuator: motor
- < actuator: servo motor
- < actuator: simple on/off switch
- actuator: RGB LED
- actuator: motor
- < Number of actuators supported
- actuator: servo motor
- actuator: simple on/off switch
- < Actuator device class
- < Bitmask to obtain the category ID
- < Sensor device class
- < device class undefined
- any device - wildcard
- < Bitmask to obtain the intra-category ID
- sensor: accelerometer
- sensor: raw analog value
- any sensor - wildcard
- sensor: simple button
- sensor: capacitance
- sensor: coulomb counter
- sensor: CO2 Gas
- sensor: (light) color
- sensor: pulse counter
- sensor: ammeter
- sensor: distance
- sensor: Gas common
- sensor: gyroscope
- sensor: humidity
- < sensor: accelerometer
- < sensor: raw analog value
- < any sensor - wildcard
- < sensor: simple button
- < sensor: capacitance
- < sensor: coulomb counter
- < sensor: CO2 Gas
- < sensor: (light) color
- < sensor: pulse counter
- < sensor: ammeter
- < sensor: distance
- < sensor: Gas common
- < sensor: gyroscope
- < sensor: humidity
- < sensor: light
- < sensor: magnetometer
- < sensor: object temperature
- < sensor: occupancy
- < sensor: pH
- < sensor: particulate matter
- < sensor: power
- < sensor: pressure
- < sensor: proximity
- < sensor: RSSI
- < sensor: size
- < sensor: temperature
- < sensor: TVOC Gas
- < sensor: UV index
- < sensor: voltage
- sensor: light
- sensor: magnetometer
- < Number of actuators supported
- sensor: object temperature
- sensor: occupancy
- sensor: pH
- sensor: particulate matter
- sensor: power
- sensor: pressure
- sensor: proximity
- sensor: RSSI
- sensor: size
- sensor: temperature
- sensor: TVOC Gas
- sensor: UV index
- sensor: voltage
- @brief Flag to request the local address/endpoint
- @brief Flag to request the RSSI value of received frame
- @brief Flag to request the time stamp of transmission / reception
- @brief Flag to request the TTL value of received frame
- @brief Flag to set the local address/endpoint
- < selected clock value is not supported
- < invalid chip select line specified
- < invalid SPI bus specified
- < selected mode is not supported
- < everything went as planned
- < stdio via ESP32 debug Serial/JTAG
- < stdio via ethos (mutiplex)
- < stdio via BLE (NimBLE)
- < dummy stdio
- < stdio via Segger RTT
- < stdio via Semihosting
- < stdio via telnet
- < tdio via USB CDC ACM (TinyUSB)
- < stdio via UART
- < stdio via UDP
- < stdio via USB CDC ACM (usbus)
- < Digest component
- < Identifier component
- < Size component
- < Best before conditional
- < Class ID match conditional
- < Device ID match conditional
- < Vendor ID match conditional
- < all other internal errors
- < given symbol rate is not applicable
- < invalid UART device given
- < given mode is not applicable
- < everything in order
- < Ampere
- < Beer?
- < boolean value [0|1]
- < Candela
- < coulomb
- < count per cubic meter
- < counts
- < the 3 dimensions contain days, months and years
- < decibel-milliwatts
- < degree per second
- < Farad
- < @deprecated, use UNIT_G_FORCE instead
- < gauss
- < grams per cubic meter
- < @deprecated, use UNIT_GRAM instead
- < grams - not using the SI unit (kg) here to make scale handling simpler
- < @deprecated, use UNIT_GAUSS instead
- < gravitational force equivalent
- < Lux (lx)
- < meters
- < square meters
- < cubic meters
- < data has no physical unit
- < Ohm
- < Pascal
- < out of 100
- < out of 1000
- < pH
- < part per billion
- < part per million
- < Tesla
- < degree Celsius
- < degree Fahrenheit
- < Kelvin
- < the three dimensions contain sec, min, and hours
- < unit undefined
- < Volts
- < Watt
- < not supported by hardware
- < ADC resolution: 8 bit
- < ADC resolution: 10 bit
- < ADC resolution: 12 bit
- < supported with oversampling, not implemented
- < not supported by hardware
- < DELETE request (no payload, remove resource)
- < FETCH request (RFC 8132)
- < GET request (no paylod)
- < iPATCH request (RFC 8132)
- < PATCH request (RFC 8132)
- < POST request (resource processes payload)
- < PUT request (update resource with payload)
- < bus fault
- < debug interrupt
- < unhandled interrupt
- < hard fault
- < memory management fault
- < non maskable interrupt
- < stack smashing protector failure
- < stack overflow detected
- < undefined instruction or unaligned access
- < AES-GCM mode w/ 128-bit key, 128-bit tag
- < AES-GCM mode w/ 192-bit key, 128-bit tag
- < AES-GCM mode w/ 256-bit key, 128-bit tag
- < AES-CCM w/ 128-bit key, 64-bit tag and 13-byte nonce
- < AES-CCM w/ 256-bit key, 64-bit tag and 13-byte nonce
- < AES-CCM w/ 128-bit key, 128-bit tag and 13-byte nonce
- < AES-CCM w/ 256-bit key, 128-bit tag and 13-byte nonce
- < AES-CCM w/ 128-bit key, 64-bit tag and 7-byte nonce
- < AES-CCM w/ 256-bit key, 64-bit tag and 7-byte nonce
- < AES-CCM w/ 128-bit key, 128-bit tag and 7-byte nonce
- < AES-CCM w/ 256-bit key, 128-bit tag and 7-byte nonce
- < IETF ChaCha20/Poly1305 w/ 256-bit key, 128-bit tag
- < Direct use of CEK
- < EdDSA
- < ECDSA w/ SHA256
- < ECDSA w/ SHA384
- < ECDSA w/ SHA512
- < HMAC w/ SHA-256
- < HSS-LMS signature algo
- < Invalid algo
- < Encrypt
- < Encrypt0
- < MAC
- < MAC0
- < Sign
- < Sign1
- < Unknown tag number
- < Ed448 for EdDSA only
- < Ed25519 for EdDSA only
- < secp256r1
- < secp384r1
- < secp521r1
- < X448, ECDH only
- < X25519, ECDH only
- < Not an EC key
- < CBOR unsupported error
- < Crypto error, e.g. invalid signature
- < CBOR related error
- < Invalid parameter passed to function
- < Initialization error
- < No memory for operation, e.g. buffer depleted
- < Algorithm not implemented
- < Header not found
- < Everything okay
- < Byte string type header
- < CBOR type header
- < Integer type header
- < Text string type header
- < Unknown header type
- < Algo header
- < Content type header
- < Counter signature header
- < Counter signature 0 header
- < Critical options header
- < IV header
- < Key ID header
- < Partial IV header
- < Unassigned header number
- < Key algorithm
- < Base IV
- < Key identifier
- < Key type identifier
- < Key options
- < Elliptic curve
- < HSS-LMS type keys
- < Octet key pair (eddsa)
- < RSA
- < Symmetric key types
- < DTLS-over-UDP transport
- < Unencrypted UDP transport
- < undefined
- @brief Address becomes valid
- < provides @ref gnrc_ipv6_event_t messages to subscribers
- @brief Use function callbacks for [netapi](@ref net_gnrc_netapi) operations.
- @brief Use [default IPC](@ref core_msg) for [netapi](@ref net_gnrc_netapi) operations.
- @brief Use [centralized IPC](@ref core_mbox) for [netapi](@ref net_gnrc_netapi) operations.
- < Protocol is ICMPv6
- < Protocol is IPv6
- @brief Protocol is as defined in @ref gnrc_netif_hdr_t. Not usable with @ref net_gnrc_netreg
- < maximum number of available protocols
- < Protocol is TCP
- @brief TX synchronization data for passing up error data or auxiliary data
- < Protocol is UDP
- < Protocol is undefined
- < emit interrupt on both flanks
- < emit interrupt on falling flank
- < emit interrupt on rising flank
- < unsupported
- < unsupported
- < IN
- < IN with pull-up and open drain output
- < IN with pull-down
- < IN with pull-up
- < not supported by HW
- < not supported by HW
- < OUT (push-pull)
- < use 10-bit device addressing
- < skip START sequence, ignores address field
- < do not issue a STOP condition after transfer
- < use 16-bit register addressing, big-endian
- < 400kbit/s
- < not supported
- < not supported
- < not supported
- < 100kbit/s
- < Amplitude-Shift Keying
- < Binary Phase Shift Keying
- < PHY disabled, no mode selected
- < Multi-Rate Frequency Shift Keying
- < Multi-Rate Orthogonal Frequency-Division Multiplexing
- < Multi-Rate Offset Quadrature Phase-Shift Keying
- < Offset Quadrature Phase-Shift Keying
- < Power down
- < Power up
- @brief decoder is beyond the end of the buffer
- Decoder get function attempts to retrieve the wrong type
- @brief Overflow in the getter. This can happen due to retrieving a number size larger than the function provides
- @brief Decoder hits the recursion limit
- @brief Decoder could not find the requested entry
- @brief No error
- < transport is DTLS
- < transport is plain UDP
- < channel activity detection done
- < wrong CRC
- < channel changed
- < driver needs it’s ISR handled
- < link gone
- < link established
- < finished receiving a frame
- < started to receive a frame
- < timeout when receiving
- < transfer frame complete
- < started to transfer a frame
- < timeout when sending
- < Will match any device type
- < disable a given option
- < enable a given option
- < continuous rx mode
- < carrier wave continuous tx mode
- < PRBS9 continuous tx mode
- < idle mode, radio off
- < idle mode, the device listens to receive packets
- < powered off
- < triggers a hardware reset. The resulting state of the network device is @ref NETOPT_STATE_IDLE
- < receive mode, the device currently receives a packet
- < sleep mode
- < standby mode. The devices is awake but not listening to packets.
- < transmit mode, set: triggers transmission of a preloaded packet (see @ref NETOPT_PRELOADING*). The resulting state of the network device is @ref NETOPT_STATE_IDLE get: the network device is in the process of transmitting a packet
- @brief (@ref netopt_enable_t) 6Lo support
- @brief (@ref netopt_enable_t) header compression
- @brief (@ref netopt_enable_t) frame pending bit of ACKs
- @brief (@ref netopt_enable_t) acknowledgement request on outgoing frames
- @brief (@ref netopt_enable_t) network interface status.
- @brief (byte array, see below) link layer address in network byte order
- @brief (byte array, see below) long link layer address in network byte order
- @brief (uint16_t) get the default address length a network device expects
- @brief (@ref netopt_enable_t) automatic link layer ACKs
- @brief (@ref netopt_enable_t) perform channel clear assessment before transmitting
- @brief (uint8_t) radio modulation bandwidth
- @brief (uint16_t) Set the battery monitor voltage (in mV).
- @brief (netdev_ble_ctx_t) set BLE radio context (channel, CRC, AA)
- @brief (uint8_t) CCA mode for the radio transceiver
- @brief (int8_t) CCA threshold for the radio transceiver
- @brief (uint16_t) channel number
- @brief (uint32_t) channel center frequency
- @brief (@ref netopt_enable_t) channel hopping
- @brief (uint8_t) channel hopping period
- @brief (uint16_t) channel page as defined by IEEE 802.15.4
- @brief (uint8_t) PHY Channel Spacing (kHz)
- @brief (@ref netopt_enable_t) enable hardware checksumming
- @brief (uint8_t) radio coding rate
- @brief (@ref netopt_connect_request_t) Instructs the interface to connect to a network
- @brief (@ref netopt_enable_t) CSMA/CA support
- @brief (uint8_t) maximum backoff exponent for the CSMA-CA algorithm
- @brief (uint8_t) minimum backoff exponent for the CSMA-CA algorithm
- @brief (uint8_t) maximum number of CSMA retries
- @brief (uint8_t) Get the demodulation margin of the last Link Check request.
- @brief (uint16_t) device type
- @brief (@ref netopt_disconnect_request_t) Instructs the interface to disconnect from a network
- @brief (@ref netopt_enable_t) link layer encryption.
- @brief (byte array) set encryption key
- @brief (@ref netopt_enable_t) fixed header mode
- @brief (ieee802154_dsme_alloc_t) Allocate DSME GTS slot
- @brief (netopt_enable_t) Transmit frames using GTS transmission
- @brief (uint8_t) hop limit
- @brief (uint8_t) 802.15.4 PHY mode
- @brief (@ref netopt_enable_t) frame integrity check (e.g CRC)
- @brief (@ref ipv6_addr_t[]) get IPv6 addresses of an interface as array of @ref ipv6_addr_t or add an IPv6 address as @ref ipv6_addr_t to an interface
- @brief (array of uint8_t) get the flags to the addresses returned by @ref NETOPT_IPV6_ADDR as array
- @brief (@ref ipv6_addr_t) Removes an IPv6 address from an interface
- @brief (@ref netopt_enable_t) IPv6 forwarding state
- @brief (@ref ipv6_addr_t) get IPv6 multicast groups of an interface as array of @ref ipv6_addr_t or join an IPv6 multicast group as @ref ipv6_addr_t on an interface
- @brief (@ref ipv6_addr_t) Leave an IPv6 multicast group on an interface
- @brief (@ref eui64_t) get the IPv6 interface identifier of a network interface
- @brief (@ref netopt_enable_t) sending of IPv6 router advertisements
- @brief (@ref netopt_enable_t) IQ inverted
- @brief (@ref netopt_enable_t) check whether the network medium is clear
- @brief (@ref netopt_enable_t) read-only check for a wired interface.
- @experimental @brief (@ref l2filter_t) add an address to a link layer filter list
- @experimental @brief (@ref l2filter_t) remove an address from a link layer filter list
- @brief (array of byte array) get link layer multicast groups as array of byte arrays (length of each byte array corresponds to the length of @ref NETOPT_ADDRESS) or join a link layer multicast group as byte array on an interface
- @brief (array of byte arrays) Leave an link layer multicast group
- @brief (int8_t) Energy level during the last performed CCA or RX frame
- @brief (@ref netopt_enable_t) network interface link status.
- @brief (@ref netopt_enable_t) Perform a Link Check request (LoRaWAN)
- @brief (@ref netopt_enable_t) LoRaWAN adaptive datarate
- @brief (uint8_t*) LoRaWAN application EUI (8 bytes length)
- @brief (uint8_t*) LoRaWAN application key (16 bytes length)
- @brief (uint8_t*) LoRaWAN application session key (16 bytes length)
- @brief (uint8_t) LoRaWAN device class (A, B, C)
- @brief (uint8_t) LoRaWAN datarate
- @brief (uint8_t*) LoRaWAN forwarding network session integrity key (16 bytes length)
- @brief (uint8_t*) LoRaWAN join EUI (8 bytes length)
- @brief (uint32_t) LoRaWAN maximum system overall timing error (ms)
- @brief (uint8_t) LoRaWAN maximum system overall timing error (symbols)
- @brief (uint8_t*) LoRaWAN network key (16 bytes length)
- @brief (uint8_t*) LoRaWAN network session encryption key buffer (16 bytes length)
- @brief (uint8_t*) LoRaWAN network session key (16 bytes length)
- @brief (@ref netopt_enable_t) LoRaWAN public network
- @brief (loramac_dr_idx_t) LoRaWAN datarate for second RX window
- @brief (uint32_t) LoRaWAN frequency used for second RX window
- @brief (uint8_t*) LoRaWAN serving network session integrity key (16 bytes length)
- @brief (@ref netopt_enable_t) block transceiver sleep
- @brief (uint16_t) maximum protocol data unit
- @brief (uint8_t) MR-FSK PHY Forward Error Correction
- @brief (uint8_t) MR-FSK PHY Modulation Index (x 64)
- @brief (uint8_t) MR-FSK Modulation Order
- @brief (uint8_t) MR-FSK PHY Symbol Rate (kHz)
- @brief (uint8_t) MR-OFDM PHY Modulation and Coding Scheme (Values: 0-6)
- @brief (uint8_t) MR-OFDM PHY Option (Values: 1-4)
- @brief (uint8_t) MR-O-QPSK Chip Rate (kchip/s)
- @brief (uint8_t) MR-O-QPSK Rate Mode
- @brief (uint16_t) network ID
- @brief maximum number of options defined here.
- @brief (uint8_t) Get the number of gateways of the last Link Check request.
- @brief (uint8_t) legacy O-QPSK proprietary mode Allows to select higher data rates than standard 250 kbit/s Not compatible across vendors, only use with radios of the same type.
- @brief (@ref netopt_enable_t) Enable or disable OTAA activation (LoRaWAN)
- @brief (netopt_enable_t) Set/Get PAN coordinator role
- @brief (uint16_t) protocol data unit size
- @brief (@ref netopt_enable_t) enable busy mode
- @brief (uint16_t) preamble length
- @brief (@ref netopt_enable_t) frame preloading
- @brief (@ref netopt_enable_t) promiscuous mode
- @brief (@ref gnrc_nettype_t) the protocol for the layer
- @brief (uint32_t) Get a random value from the device
- @brief (@ref netopt_enable_t) when enabled, bypass protocol processing of incoming frames
- @brief (uint8_t) maximum number of retransmissions
- @brief (@ref netopt_rf_testmode_t) Test mode for the radio, e.g. for CE or FCC certification
- @brief (int16_t) Received Signal Strength Indicator (RSSI)
- @brief (@ref netopt_enable_t) Used to check if the driver generates NETDEV_EVENT_RX_STARTED events
- @brief (uint16_t) Get or set the number of PHY symbols before assuming there’s no data
- @brief (uint32_t) reception timeout of a frame
- @brief (@ref netopt_scan_request_t) Instruct the interface to do a network scan
- @brief (@ref netopt_enable_t) single frame reception
- @brief (uint8_t) radio spreading factor
- @brief (uint16_t) address length to use for the link layer source address
- @brief (@ref netopt_state_t) state of network device
- @brief (@ref netstats_t) get statistics about sent and received packets and data of the device or protocol
- @brief (uint8_t*) phy layer syncword
- @brief (@ref netopt_enable_t) Used to check if the driver generates NETDEV_EVENT_TX_COMPLETE events
- @brief (int16_t) transmit power for radio devices in dBm
- @brief (uint8_t) retry amount from missing ACKs of the last transmission
- @brief (@ref netopt_enable_t) Used to check if the driver generates NETDEV_EVENT_TX_STARTED events
- @brief (uint32_t) transmission timeout of a frame
- < not supported
- < not supported
- < left aligned PWM
- < right aligned PWM
- < Connection finished event
- < Connection ready event
- < Listener received connection event
- < Message received event
- < Message sent event
- < Path property changed event
- < 1MHz
- < 5MHz
- < 10MHz
- < 100KHz
- < 400KHz
- < CPOL=0, CPHA=0
- < CPOL=0, CPHA=1
- < CPOL=1, CPHA=0
- < CPOL=1, CPHA=1
- < No digest algo supplied
- < SHA256
- < SHA384
- < SHA512
- < Ciphertext digest
- < Installed firmware digest
- < Pre-image digest
- < Raw payload digest
- < Conditionals evaluate to false
- < Digest mismatch with COSE and SUIT
- < Unexpected CBOR structure detected
- < Unsupported features detected
- < Out of memory condition
- < Denied because of policy mismatch
- < Sequence number less or equal to current sequence number
- < Unable to verify signature
- < Backend returned an error
- < Backend out of space
- < Backend location not available
- < Unsupported SUIT feature detected
- < Manifest parsed and validated
- < waiting for a condition variable
- < waiting for all flags in flag_mask
- < waiting for any flag from flag_mask
- < waiting for get/put on mbox
- < waiting for a locked mutex
- < number of supported thread states
- < waiting to be scheduled to run
- < waiting for a message
- < waiting for a message response
- < currently running
- < waiting for message to be delivered
- < sleeping
- < has terminated
- < has terminated & keeps thread’s thread_t
- < 5 data bits
- < 6 data bits
- < 7 data bits
- < 8 data bits
- < even parity
- < mark parity
- < no parity
- < odd parity
- < space parity
- < 1 stop bit
- < 2 stop bits
- < internetwork address family: UDP, TCP, etc.
- < internetwork address family with IPv6: UDP, TCP, etc.
- < maximum number of address families on this system
- < packet family
- < local to host (pipes, portals) address family.
- < unspecified address family
Statics§
- @brief AES cipher id
- @brief String constant used for signing COSE countersignatures
- @brief String constant used for signing COSE signature objects
- @brief String constant used for signing COSE signature1 objects
- @brief Default ztimer millisecond clock
- @brief Base ztimer for the millisecond clock (ZTIMER_MSEC)
- @brief Default ztimer second clock
- @brief Default ztimer microsecond clock
- @brief Base ztimer for the microsecond clock (ZTIMER_USEC)
- @private
- @brief Global CoAP resource list @deprecated Use @ref NANOCOAP_RESOURCE instead. The function will be removed after the 2024.01 release.
- @brief Number of entries in global CoAP resource list @deprecated Use @ref NANOCOAP_RESOURCE instead. The function will be removed after the 2024.01 release.
- @brief The PID to the IPv6 thread.
- @name I2C configuration @{
- @brief Broadcast address
- @see @ref IPV6_ADDR_ALL_NODES_IF_LOCAL
- @see @ref IPV6_ADDR_ALL_NODES_LINK_LOCAL
- @see @ref IPV6_ADDR_ALL_ROUTERS_IF_LOCAL
- @see @ref IPV6_ADDR_ALL_ROUTERS_LINK_LOCAL
- @see @ref IPV6_ADDR_ALL_ROUTERS_SITE_LOCAL
- @see @ref IPV6_ADDR_LINK_LOCAL_PREFIX
- @see @ref IPV6_ADDR_LOOPBACK
- @see @ref IPV6_ADDR_SOLICITED_NODE_PREFIX
- @brief In-memory constants of defined addresses and prefixes @{ / /** @see @ref IPV6_ADDR_UNSPECIFIED
- @brief MTD driver for VFS
- @name PWM configuration
- @brief Export the SAUL registry as global variable
- Flag indicating whether a context switch is necessary after handling an interrupt. Supposed to be set in an ISR.
- Number of running (non-terminated) threads
- List of runqueues per priority level
- Thread table
- @name SPI configuration @{
- @brief isrpipe for writing stdin input to
- @name Timer configuration @{ / /** @brief Configuration of the exposed timers
- @name UART configuration
- < DNS namespace UUID
- < ISO OID namespace UUID
- < URL namespace UUID
- < X.500 DN namespace UUID
Functions§
- @brief Squeeze data from a sponge
- @brief Initialise a sponge based on a keccak-1600 permutation
- @brief Absorbs data into a sponge. Can be called multiple times
- @brief List sorting helper function
- @brief event callback handler function (used internally)
- @brief Shortcut function for sending @ref GNRC_NETAPI_MSG_TYPE_GET or @ref GNRC_NETAPI_MSG_TYPE_SET messages and parsing the returned @ref GNRC_NETAPI_MSG_TYPE_ACK message
- @brief Shortcut function for sending @ref GNRC_NETAPI_MSG_TYPE_SND or @ref GNRC_NETAPI_MSG_TYPE_RCV messages
- @brief Get message from mailbox
- @brief Add message to mailbox
- @brief Wait for a semaphore, blocking or non-blocking.
- @brief asserts the given clock to be active
- @brief ztimer_now() for extending timers
- abs⚠
- @brief Configure the ADC with a given resolution for continuous sampling
- @brief Sample an ADC line without powering off the ADC afterward
- @brief Disable the ADC to save power
- @brief Initialize the given ADC line
- @brief Sample a value from the given ADC line
- @brief Finalizes the CMAC message digest
- @brief Initialize AES128 CMAC message digest context
- @brief Update the AES128 CMAC context with a portion of the message being hashed
- atof⚠
- atoi⚠
- atol⚠
- @brief Clear all bits in the bitfield to 0
- @brief Get the index of the first set bit in the field
- @brief Get the index of the zero bit in the field
- @brief Atomically get the number of an unset bit and set it
- @brief Count set bits in the bitfield
- @brief Set all bits in the bitfield to 1
- @brief Returns the number of the highest ‘1’ bit in a value
- @brief Returns the number of bits set in a value @param[in] v Input value with platform-dependent word size @return Number of set bits
- Retrieves the ATT MTU of the specified connection. If an MTU exchange for this connection has occurred, the MTU is the lower of the two peers’ preferred values. Otherwise, the MTU is the default value of 23.
- Retrieves the preferred ATT MTU. This is the value indicated by the device during an ATT MTU exchange.
- Sets the preferred ATT MTU; the device will indicate this value in all subsequent ATT MTU exchanges. The ATT MTU of a connection is equal to the lower of the two peers’ preferred MTU values. The ATT MTU is what dictates the maximum size of any message sent during a GATT procedure.
- Reads a locally registered attribute. If the specified attribute handle corresponds to a GATT characteristic value or descriptor, the read is performed by calling the registered GATT access callback.
- Writes a locally registered attribute. This function consumes the supplied mbuf regardless of the outcome. If the specified attribute handle corresponds to a GATT characteristic value or descriptor, the write is performed by calling the registered GATT access callback.
- Configures the device to advertise Eddystone UID beacons.
- Configures the device to advertise Eddystone URL beacons.
- Indicates whether an advertisement procedure is currently in progress.
- Configures the data to include in subsequent scan responses.
- Configures the fields to include in subsequent scan responses. This is a convenience wrapper for ble_gap_adv_rsp_set_data().
- Configures the data to include in subsequent advertisements.
- Configures the fields to include in subsequent advertisements. This is a convenience wrapper for ble_gap_adv_set_data().
- @brief Start advertising
- Stops the currently-active advertising procedure. A success return code indicates that advertising has been fully aborted and a new advertising procedure can be initiated immediately.
- Indicates whether a connect procedure is currently in progress.
- Aborts a connect procedure in progress.
- Searches for a connection with the specified handle. If a matching connection is found, the supplied connection descriptor is filled correspondingly.
- Searches for a connection with a peer with the specified address. If a matching connection is found, the supplied connection descriptor is filled correspondingly.
- Retrieves the most-recently measured RSSI for the specified connection. A connection’s RSSI is updated whenever a data channel PDU is received.
- Initiates a connect procedure.
- Performs the Limited or General Discovery Procedures.
- Indicates whether a discovery procedure is currently in progress.
- Cancels the discovery procedure currently in progress. A success return code indicates that scanning has been fully aborted; a new discovery or connect procedure can be initiated immediately.
- Initiates the GAP encryption procedure as a master. This is for testing only and should not be used by application. Use ble_gap_security_initiate() instead.
- Registers listener for GAP events
- Unregisters listener for GAP events
- Initiates an extended connect procedure.
- Performs the Limited or General Extended Discovery Procedures.
- Initiates the GAP pairing procedure as a master. This is for testing only and should not be used by application. Use ble_gap_security_initiate() instead.
- Read PHYs used for specified connection.
- Initiates the GAP security procedure.
- Configure LE Data Length in controller (OGF = 0x08, OCF = 0x0022).
- Configures a connection to use the specified GAP event callback. A connection’s GAP event callback is first specified when the connection is created, either via advertising or initiation. This function replaces the callback that was last configured.
- Set preferred default PHYs to be used for connections.
- Set preferred PHYs to be used for connection.
- Set privacy mode for specified peer device
- Terminates an established connection.
- Unpairs a device with the specified address. The keys related to that peer device are removed from storage and peer address is removed from the resolve list from the controller. If a peer is connected, the connection is terminated.
- Similar to
ble_gap_unpair_oldest_peer()
, except it makes sure that the peer received in input parameters is not deleted. - Unpairs the oldest bonded peer device. The keys related to that peer device are removed from storage and peer address is removed from the resolve list from the controller. If a peer is connected, the connection is terminated.
- Initiates a connection parameter update procedure.
- Overwrites the controller’s white list with the specified contents.
- Initiates GATT procedure: Discover All Characteristics of a Service.
- Initiates GATT procedure: Discover All Characteristic Descriptors.
- Initiates GATT procedure: Discover All Primary Services.
- Initiates GATT procedure: Discover Characteristics by UUID.
- Initiates GATT procedure: Discover Primary Service by Service UUID.
- Initiates GATT procedure: Exchange MTU.
- Initiates GATT procedure: Find Included Services.
- Deprecated. Should not be used. Use ble_gatts_indicate instead.
- Deprecated. Should not be used. Use ble_gatts_indicate_custom instead.