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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
db3e0a2fda2f 2003-04-12 Andrew Lunn <andrew.lunn@ascom.ch>
asl
parents: 208
diff changeset
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
db3e0a2fda2f 2003-04-12 Andrew Lunn <andrew.lunn@ascom.ch>
asl
parents: 208
diff changeset
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
db3e0a2fda2f 2003-04-12 Andrew Lunn <andrew.lunn@ascom.ch>
asl
parents: 208
diff changeset
92
db3e0a2fda2f 2003-04-12 Andrew Lunn <andrew.lunn@ascom.ch>
asl
parents: 208
diff changeset
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_