Zephyr API Documentation  3.7.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
smp_client.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2023 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef H_SMP_CLIENT_
8#define H_SMP_CLIENT_
9
10#include <zephyr/kernel.h>
11#include <zephyr/net/buf.h>
12#include <mgmt/mcumgr/transport/smp_internal.h>
15
28 struct k_work work;
35};
36
37#ifdef __cplusplus
38extern "C" {
39#endif
40
50int smp_client_object_init(struct smp_client_object *smp_client, int smp_type);
51
61typedef int (*smp_client_res_fn)(struct net_buf *nb, void *user_data);
62
72int smp_client_single_response(struct net_buf *nb, const struct smp_hdr *res_hdr);
73
87 uint8_t command_id, uint8_t op,
88 enum smp_mcumgr_version_t version);
95
109int smp_client_send_cmd(struct smp_client_object *smp_client, struct net_buf *nb,
110 smp_client_res_fn cb, void *user_data, int timeout_in_sec);
111
116#ifdef __cplusplus
117}
118#endif
119
120#endif /* H_SMP_CLIENT_ */
int smp_client_object_init(struct smp_client_object *smp_client, int smp_type)
Initialize a SMP client object.
int smp_client_single_response(struct net_buf *nb, const struct smp_hdr *res_hdr)
SMP client response handler.
struct net_buf * smp_client_buf_allocation(struct smp_client_object *smp_client, uint16_t group, uint8_t command_id, uint8_t op, enum smp_mcumgr_version_t version)
Allocate buffer and initialize with SMP header.
void smp_client_buf_free(struct net_buf *nb)
Free a SMP client buffer.
int(* smp_client_res_fn)(struct net_buf *nb, void *user_data)
Response callback for SMP send.
Definition: smp_client.h:61
int smp_client_send_cmd(struct smp_client_object *smp_client, struct net_buf *nb, smp_client_res_fn cb, void *user_data, int timeout_in_sec)
SMP client data send request.
Public kernel APIs.
SMP - Simple Management Protocol.
smp_mcumgr_version_t
SMP MCUmgr protocol version, part of the SMP header.
Definition: smp.h:39
Buffer management.
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
Definition: kernel.h:2391
A structure used to submit work.
Definition: kernel.h:3880
Network buffer representation.
Definition: buf.h:1004
uint8_t user_data[]
System metadata for this buffer.
Definition: buf.h:1051
SMP client object.
Definition: smp_client.h:26
struct smp_transport * smpt
SMP transport object.
Definition: smp_client.h:32
uint8_t smp_seq
SMP SEQ.
Definition: smp_client.h:34
struct k_fifo tx_fifo
FIFO for client TX queue.
Definition: smp_client.h:30
struct k_work work
Must be the first member.
Definition: smp_client.h:28
SMP transport object for sending SMP responses.
Definition: smp.h:118