Zephyr API Documentation 4.0.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
tftp.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2020 InnBlue
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
18#ifndef ZEPHYR_INCLUDE_NET_TFTP_H_
19#define ZEPHYR_INCLUDE_NET_TFTP_H_
20
21#include <zephyr/kernel.h>
22#include <zephyr/net/socket.h>
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
34#define TFTP_BLOCK_SIZE 512
35
40#define TFTP_HEADER_SIZE 4
41
43#define TFTPC_MAX_BUF_SIZE (TFTP_BLOCK_SIZE + TFTP_HEADER_SIZE)
44
49#define TFTPC_SUCCESS 0
50#define TFTPC_DUPLICATE_DATA -1
51#define TFTPC_BUFFER_OVERFLOW -2
52#define TFTPC_UNKNOWN_FAILURE -3
53#define TFTPC_REMOTE_ERROR -4
54#define TFTPC_RETRIES_EXHAUSTED -5
78
84
87 char *msg;
88 int code;
89};
90
102
111
120typedef void (*tftp_callback_t)(const struct tftp_evt *evt);
121
139
156int tftp_get(struct tftpc *client,
157 const char *remote_file, const char *mode);
158
176int tftp_put(struct tftpc *client,
177 const char *remote_file, const char *mode,
178 const uint8_t *user_buf, uint32_t user_buf_size);
179
180#ifdef __cplusplus
181}
182#endif
183
184#endif /* ZEPHYR_INCLUDE_NET_TFTP_H_ */
185
int tftp_get(struct tftpc *client, const char *remote_file, const char *mode)
This function gets data from a "file" on the remote server.
tftp_evt_type
TFTP Asynchronous Events notified to the application from the module through the callback registered ...
Definition tftp.h:63
#define TFTPC_MAX_BUF_SIZE
Maximum amount of data that can be sent or received.
Definition tftp.h:43
int tftp_put(struct tftpc *client, const char *remote_file, const char *mode, const uint8_t *user_buf, uint32_t user_buf_size)
This function puts data to a "file" on the remote server.
void(* tftp_callback_t)(const struct tftp_evt *evt)
TFTP event notification callback registered by the application.
Definition tftp.h:120
@ TFTP_EVT_ERROR
ERROR event when error is received from remote server.
Definition tftp.h:76
@ TFTP_EVT_DATA
DATA event when data is received from remote server.
Definition tftp.h:69
Public kernel APIs.
BSD Sockets compatible API definitions.
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
Generic sockaddr struct.
Definition net_ip.h:388
Parameters for data event.
Definition tftp.h:80
uint32_t len
Length of binary data.
Definition tftp.h:82
uint8_t * data_ptr
Pointer to binary data.
Definition tftp.h:81
Parameters for error event.
Definition tftp.h:86
char * msg
Error message.
Definition tftp.h:87
int code
Error code.
Definition tftp.h:88
Defines TFTP asynchronous event notified to the application.
Definition tftp.h:104
enum tftp_evt_type type
Identifies the event.
Definition tftp.h:106
union tftp_evt_param param
Contains parameters (if any) accompanying the event.
Definition tftp.h:109
TFTP client definition to maintain information relevant to the client.
Definition tftp.h:129
uint8_t tftp_buf[(512+4)]
Buffer for internal usage.
Definition tftp.h:137
tftp_callback_t callback
Event notification callback.
Definition tftp.h:134
struct sockaddr server
Socket address pointing to the remote TFTP server.
Definition tftp.h:131
Defines event parameters notified along with asynchronous events to the application.
Definition tftp.h:95
struct tftp_error_param error
Parameters accompanying TFTP_EVT_ERROR event.
Definition tftp.h:100
struct tftp_data_param data
Parameters accompanying TFTP_EVT_DATA event.
Definition tftp.h:97