BOOTLOADER
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
ethernettftp.h
Go to the documentation of this file.
1 #ifndef ETHERNETTFTP_H
2 #define ETHERNETTFTP_H
3 
4 //******
5 // ETHERNET TRIVIAL FILE TRANSFER PROTOCOL (TFTP) (IEN-133)
6 //******
7 
8 #define SEGSIZE 512 // data segment size
9 
10 #define TFTP_READ_REQUEST 1 // Packet types
11 #define TFTP_WRITE_REQUEST 2
12 #define TFTP_DATA_PACKET 3
13 #define TFTP_ACKNOWLEDGE 4
14 #define TFTP_ERROR 5
15 
16  // Error code definition
17 #define EUNDEF 0 // not defined
18 #define ENOTFOUND 1 // file not found
19 #define EACCESS 2 // access violation
20 #define ENOSPACE 3 // disk full or allocation exceeded
21 #define EBADOP 4 // illegal TFTP operation
22 #define EBADID 5 // unknown transfer ID
23 #define EEXISTS 6 // file already exists
24 #define ENOUSER 7 // no such user
25 
26 typedef struct {
28  union{
31  INT8U Stuff[2];
32  }Un;
33 }TFTP_HEAD;
34 typedef struct {
48  INT8U ClientIp[4];
49  INT16U ClientPort; // as udp_head source
52 
54 extern void F_EthernetTftpInit(void);
55 extern void F_EthernetTftpSvc(void);
57 extern INT8U F_EthernetTftpAllocate(INT16U UserId);
58 extern INT8U F_EthernetTftpRelease(INT16U UserId);
59 extern INT8U F_EthernetTftpReset(INT16U UserId);
60 extern INT8U F_EthernetTftpRelease(INT16U UserId);
62 extern INT8U F_EthernetTftpAddressSet(INT16U UserId,INT32U DownloadAddress);
63 extern void F_EthernetTftpWrqReceive(ETHBUFFER *pBuffer);
65 extern void F_EthernetTftpPacketReceive(ETHBUFFER *pBuffer);
66 extern void F_EthernetTftpPut(INT8U *pData,INT32U Length);
67 extern void F_EthernetTftpAckSend(TFTP_HEAD *pTftpHead,INT16U Block);
68 
69 #endif