Zephyr API Documentation 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
smp.h File Reference
#include <zephyr/kernel.h>
#include <zcbor_common.h>

Go to the source code of this file.

Data Structures

struct  smp_transport_api_t
 Function pointers of SMP transport functions, if a handler is NULL then it is not supported/implemented. More...
struct  smp_transport
 SMP transport object for sending SMP responses. More...
struct  smp_transport_bridge
 Bridged transport context. More...
struct  smp_client_transport_entry
 SMP Client transport structure. More...

Typedefs

typedef int(* smp_transport_out_fn) (struct net_buf *nb)
 SMP transmit callback for transport.
typedef uint16_t(* smp_transport_get_mtu_fn) (const struct net_buf *nb)
 SMP MTU query callback for transport.
typedef int(* smp_transport_ud_copy_fn) (struct net_buf *dst, const struct net_buf *src)
 SMP copy user_data callback.
typedef void(* smp_transport_ud_free_fn) (void *ud)
 SMP free user_data callback.
typedef bool(* smp_transport_query_valid_check_fn) (struct net_buf *nb, void *arg)
 Function for checking if queued data is still valid.
typedef void(* smp_transport_ud_req_init_fn) (struct net_buf *nb, void *priv)
 SMP init request buffer.
typedef bool(* smp_transport_bridge_connect_fn) (struct smp_transport_bridge *bridge, bool direction, uint32_t mode, bool same_transport, zcbor_state_t *input_data, zcbor_state_t *output_data)
 SMP transport bridge connect.
typedef void(* smp_transport_bridge_disconnect_fn) (struct smp_transport_bridge *bridge, bool direction)
 SMP transport bridge disconnect.
typedef int(* smp_transport_bridge_out_fn) (const struct smp_transport_bridge *bridge, struct net_buf *nb, bool direction)
 SMP transport bridge output data.
typedef bool(* mgmt_client_transport_cb_t) (const struct smp_client_transport_entry *transport, void *user_data)
 Callback for SMP client transports.
typedef bool(* smp_transport_bridge_modes_fn) (zcbor_state_t *output_data, int *rc)
 SMP transport bridge details.
typedef bool(* smp_transport_bridge_config_details_fn) (uint32_t mode, zcbor_state_t *output_data, int *rc)
 SMP transport bridge config details.

Enumerations

enum  smp_transport_type {
  SMP_SERIAL_TRANSPORT = 0 , SMP_RAW_SERIAL_TRANSPORT , SMP_BLUETOOTH_TRANSPORT , SMP_SHELL_TRANSPORT ,
  SMP_UDP_IPV4_TRANSPORT , SMP_UDP_IPV6_TRANSPORT , SMP_LORAWAN_TRANSPORT , SMP_SPI_TRANSPORT ,
  SMP_USER_DEFINED_TRANSPORT = 64
}
 SMP transport type for client registration. More...

Functions

int smp_transport_init (struct smp_transport *smpt)
 Initializes a Zephyr SMP transport object.
void smp_rx_remove_invalid (struct smp_transport *zst, void *arg)
 Used to remove queued requests for an SMP transport that are no longer valid.
void smp_rx_clear (struct smp_transport *zst)
 Used to clear pending queued requests for an SMP transport.
void smp_client_transport_register (struct smp_client_transport_entry *entry)
 Register a Zephyr SMP transport object for client.
struct smp_transportsmp_client_transport_get (int smpt_type)
 Discover a registered SMP transport client object.
bool smp_client_transport_foreach (mgmt_client_transport_cb_t user_cb, void *user_data)
 Iterate over SMP client/transports.