51 lines
1.3 KiB
C
51 lines
1.3 KiB
C
|
/*
|
||
|
* 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 {
|
||
|
u8_t *user_buf;
|
||
|
u32_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.
|
||
|
*
|
||
|
* @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_ */
|