Mercurial > nand-ecoscentric
annotate packages/net/common/current/include/tftp_support.h @ 3403:8c8767bb9a62 default tip
devs/nand/micron_mt29: Remove defunct references (in comments) to mt29f2g08_oob_ecc.
| author | Ross Younger <wry@ecoscentric.com> |
|---|---|
| date | Sun, 18 Jan 2015 17:59:01 +1300 |
| parents | 74dbf4c3f2e1 |
| children |
| rev | line source |
|---|---|
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
1 //========================================================================== |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
2 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
3 // include/tftp_support.h |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
4 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
5 // TFTP support |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
6 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
7 //========================================================================== |
|
2729
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
2069
diff
changeset
|
8 // ####BSDALTCOPYRIGHTBEGIN#### |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
2069
diff
changeset
|
9 // ------------------------------------------- |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
2069
diff
changeset
|
10 // Portions of this software may have been derived from FreeBSD, OpenBSD, |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
2069
diff
changeset
|
11 // or other sources, and if so are covered by the appropriate copyright |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
2069
diff
changeset
|
12 // and license included herein. |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
2069
diff
changeset
|
13 // ------------------------------------------- |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
2069
diff
changeset
|
14 // ####BSDALTCOPYRIGHTEND#### |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
15 //========================================================================== |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
16 //#####DESCRIPTIONBEGIN#### |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
17 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
18 // Author(s): gthomas |
| 957 | 19 // Contributors: gthomas, andrew.lunn@ascom.ch |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
20 // Date: 2000-04-06 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
21 // Purpose: |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
22 // Description: |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
23 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
24 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
25 //####DESCRIPTIONEND#### |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
26 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
27 //========================================================================== |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
28 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
29 #ifndef _TFTP_SUPPORT_H_ |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
30 #define _TFTP_SUPPORT_H_ |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
31 |
|
1791
79abc4aecdb7
* include/tftp_support.h: Use the definitions of O_RDONLY and
asl
parents:
957
diff
changeset
|
32 #include <fcntl.h> // O_RDONLY |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
33 /* |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
34 * File transfer modes |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
35 */ |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
36 #define TFTP_NETASCII 0 // Text files |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
37 #define TFTP_OCTET 1 // Binary files |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
38 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
39 /* |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
40 * Errors |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
41 */ |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
42 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
43 // These initial 7 are passed across the net in "ERROR" packets. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
44 #define TFTP_ENOTFOUND 1 /* file not found */ |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
45 #define TFTP_EACCESS 2 /* access violation */ |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
46 #define TFTP_ENOSPACE 3 /* disk full or allocation exceeded */ |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
47 #define TFTP_EBADOP 4 /* illegal TFTP operation */ |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
48 #define TFTP_EBADID 5 /* unknown transfer ID */ |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
49 #define TFTP_EEXISTS 6 /* file already exists */ |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
50 #define TFTP_ENOUSER 7 /* no such user */ |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
51 // These extensions are return codes in our API, *never* passed on the net. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
52 #define TFTP_TIMEOUT 8 /* operation timed out */ |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
53 #define TFTP_NETERR 9 /* some sort of network error */ |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
54 #define TFTP_INVALID 10 /* invalid parameter */ |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
55 #define TFTP_PROTOCOL 11 /* protocol violation */ |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
56 #define TFTP_TOOLARGE 12 /* file is larger than buffer */ |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
57 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
58 /* |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
59 * Server support |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
60 */ |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
61 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
62 struct tftpd_fileops { |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
63 int (*open)(const char *, int); |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
64 int (*close)(int); |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
65 int (*write)(int, const void *, int); |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
66 int (*read)(int, void *, int); |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
67 }; |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
68 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
69 __externC int tftpd_start(int, struct tftpd_fileops *); |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
70 __externC int tftpd_stop(int); |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
71 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
72 /* |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
73 * Client support |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
74 */ |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
75 |
| 957 | 76 /* IPv4 and IPv6 */ |
|
2069
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
77 __externC int tftp_client_get(const char * const filename, |
|
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
78 const char * const server, |
|
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
79 const int port, |
|
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
80 char * buff, |
|
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
81 int len, |
|
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
82 const int mode, |
|
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
83 int * const err); |
|
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
84 |
|
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
85 __externC int tftp_client_put(const char * const filename, |
|
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
86 const char * const server, |
|
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
87 const int port, |
|
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
88 const char * buf, |
|
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
89 int len, |
|
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
90 const int mode, |
|
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
91 int * const err); |
| 957 | 92 |
| 93 /* IPv4 only */ | |
|
2069
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
94 __externC int tftp_get(const char * const filename, |
|
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
95 const struct sockaddr_in * const server, |
|
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
96 char * buf, |
|
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
97 int len, |
|
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
98 const int mode, |
|
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
99 int * const error); |
|
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
100 |
|
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
101 __externC int tftp_put(const char * const filename, |
|
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
102 const struct sockaddr_in * const server, |
|
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
103 const char * buffer, |
|
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
104 int len, |
|
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
105 const int mode, |
|
e400ce1dbe07
* src/tftp_client.c, include/tftp_support.h: const parameters
asl
parents:
1791
diff
changeset
|
106 int * const err); |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
107 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
108 #define TFTP_TIMEOUT_PERIOD 5 // Seconds between retries |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
109 #define TFTP_TIMEOUT_MAX 50 // Max timeouts over all blocks |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
110 #define TFTP_RETRIES_MAX 5 // retries per block before giving up |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
111 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
112 #endif // _TFTP_SUPPORT_H_ |
