| /* |
| * Copyright (c) 2020 InnBlue |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| /** @file tftp.h |
| * |
| * @brief Zephyr TFTP Implementation |
| */ |
| |
| #ifndef ZEPHYR_INCLUDE_NET_TFTP_H_ |
| #define ZEPHYR_INCLUDE_NET_TFTP_H_ |
| |
| #include <zephyr.h> |
| #include <net/socket.h> |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| struct tftpc { |
| uint8_t *user_buf; |
| uint32_t user_buf_size; |
| }; |
| |
| /* TFTP Client Error codes. */ |
| #define TFTPC_SUCCESS 0 |
| #define TFTPC_DUPLICATE_DATA -1 |
| #define TFTPC_BUFFER_OVERFLOW -2 |
| #define TFTPC_UNKNOWN_FAILURE -3 |
| #define TFTPC_REMOTE_ERROR -4 |
| #define TFTPC_RETRIES_EXHAUSTED -5 |
| |
| /* @brief This function gets "file" from the remote server. |
| * |
| * If the file is successfully received its size will be returned in |
| * `client->user_buf_size` parameter. |
| * |
| * @param server Control Block that represents the remote server. |
| * @param client Client Buffer Information. |
| * @param remote_file Name of the remote file to get. |
| * @param mode TFTP Client "mode" setting |
| * |
| * @return TFTPC_SUCCESS if the operation completed successfully. |
| * TFTPC_BUFFER_OVERFLOW if the file is larger than the user buffer. |
| * TFTPC_REMOTE_ERROR if the server failed to process our request. |
| * TFTPC_RETRIES_EXHAUSTED if the client timed out waiting for server. |
| */ |
| int tftp_get(struct sockaddr *server, struct tftpc *client, |
| const char *remote_file, const char *mode); |
| |
| #endif /* ZEPHYR_INCLUDE_NET_TFTP_H_ */ |