?? drv_tftp.h
字號:
#ifndef __LOAD_TFTP_H__
#define __LOAD_TFTP_H__
/* 創建文件類型 */
#define FILE_O_RDONLY 0
#define FILE_O_WRONLY 1
#define FILE_O_RDWR 2
#define FILE_O_CREATE 200
/* tftp操作類型 */
#define TFTP_PUT "put"
#define TFTP_GET "get"
/* 文件類型 */
#define FILE_ASCII "ascii"
#define FILE_NETASCII "netascii"
#define FILE_BINARY "binary"
#define FILE_IMAGE "image"
#define FILE_OCTET "octet"
#define LOAD_TFTP_GLOBALALLOC_FAILED 1 /* out of memory*/
#define LOAD_TFTP_ILLEGAL_REQUEST 2 /* unable to build request packet*/
#define LOAD_TFTP_SOCKET_FAILURE 3 /* unable to open socket*/
#define LOAD_TFTP_BIND_FAILURE 4 /* unable to bind socket*/
#define LOAD_TFTP_ILLEGAL_FILE_MODE 5 /* illegal file mode*/
#define LOAD_TFTP_FILE_ERROR 6 /* part of file was transferred*/
#define LOAD_TFTP_SENDTO_ERROR 7 /* unable to send data to server*/
#define LOAD_TFTP_FAILURE 11 /* unable to setup socket*/
#define LOAD_TFTP_READ_ERROR 12 /* unable to read file*/
#define LOAD_TFTP_CANNOT_RESOLVE_HN 13 /* cannot resolve host name*/
#define LOAD_TFTP_CANNOT_OPEN_FILE 14 /* cannot open local file */
#define LOAD_TFTP_INVALID_PARAVALUE 15 /* invalid parameter value */
#define LOAD_TFTP_PROTO_ERROR 16 /* receive incorrect packet*/
#define LOAD_TFTP_SYNC_FAILURE 17 /* synchronization failure*/
#define LOAD_TFTP_CFGFLE_W_ERROR 18 /* write config file failure*/
#define LOAD_TFTP_CFGFLE_R_ERROR 19 /* read config file failure*/
#define LOAD_TFTP_CFFL_SIMUL_W 20 /* write config file at the same time*/
#define LOAD_TFTP_MALLOC_ERROR 21 /* mem malloc error*/
#define LOAD_TFTP_FILE_TOO_BIG 22 /* file is too big*/
#define LOAD_TFTP_TRANSFER_MODE_ASCII 61 /* convert CR and LF to LF and vice versa*/
#define LOAD_TFTP_TRANSFER_MODE_BINARY 62 /* transfer files without conversion*/
/* TFTP包類型 */
#define LOAD_TFTP_RRQ 01 /* 讀請求包 */
#define LOAD_TFTP_WRQ 02 /* 寫請求包 */
#define LOAD_TFTP_DATA 03 /* 數據包 */
#define LOAD_TFTP_ACK 04 /* 確認包 */
#define LOAD_TFTP_ERROR 05 /* 錯誤包 */
#define LOAD_TFTP_OPT 06 /* 選項包 */
#define LOAD_TFTP_BLKSIZE 512 /* 數據塊大小 */
#define LOAD_TFTP_HDRSIZE 4 /* TFTP header size */
#define LOAD_TFTP_PKTSIZE (LOAD_TFTP_BLKSIZE + LOAD_TFTP_HDRSIZE)
#define LOAD_TFTP_MAX_NAME_SIZE 47 /* 文件名字符串最大長度 */
#define LOAD_TFTP_MAX_ERRSTR_SIZE 100 /* 錯誤消息串的最大長度*/
#define LOAD_TFTP_MAXQUEUEDEPTH 512 /* max queue depth*/
#define LOAD_TFTP_SERVER_PORT 69
#define LOAD_TFTP_MAX_BLK_NUM 10000 /* max block number*/
#define LOAD_TFTP_TIMEOUT_TIME 5
#define LOAD_TFTP_ATTEMPTS 5
/*TFTP數據包的結構 */
typedef struct tagLOAD_TFTP_DATA
{
_U16 blknum; /* 包的序號 */
char buf[LOAD_TFTP_BLKSIZE]; /* 數據 */
}LOAD_TFTP_DATA_S;
/*TFTP錯誤包的結構*/
typedef struct tagTFTP_ERROR
{
_U16 errnum; /* 錯誤碼 */
char errmess[LOAD_TFTP_MAX_ERRSTR_SIZE]; /* 錯誤消息 */
}LOAD_TFTP_ERROR_S;
/* 接收緩沖區結構 */
typedef struct tagTFTP_RCV_BUF
{
char *blkPtr; /* 接收緩沖區指針 */
long len; /* 接收數據的長度 */
}LOAD_TFTP_RCV_BUF_S;
/* TFTP各種類型包的聯合結構 */
typedef struct tagTFTP_PACKET
{
_U16 usOpcode; /* 操作碼 */
union
{
char szName_Mode[2*LOAD_TFTP_MAX_NAME_SIZE]; /* 文件名 */
_U16 usBlkNum; /* 確認包序號 */
LOAD_TFTP_DATA_S stData; /* 數據包內容 */
LOAD_TFTP_ERROR_S stErr; /* 錯誤包內容 */
}uMsg;
}LOAD_TFTP_PACKET_S;
_U32 LOAD_TftpGet(_U8 *szRmtHost, _U8 *szRmtFile, _U8 *szRamAddr, long lTransMode);
_U32 LOAD_TftpPut(_U8* szRamAddr, long lFileLen, _U8 *szRmtHost, _U8 *szRmtFile,long lTransMode);
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -