Mercurial > flash_v2
view packages/net/tcpip/current/include/tftp_support.h @ 156:b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
| author | jlarmour |
|---|---|
| date | Fri, 06 Apr 2001 17:20:13 +0000 |
| parents | 0c2b7be0d798 |
| children |
line wrap: on
line source
//========================================================================== // // include/tftp_support.h // // TFTP support // //========================================================================== //####COPYRIGHTBEGIN#### // // ------------------------------------------- // The contents of this file are subject to the Red Hat eCos Public License // Version 1.1 (the "License"); you may not use this file except in // compliance with the License. You may obtain a copy of the License at // http://www.redhat.com/ // // Software distributed under the License is distributed on an "AS IS" // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the // License for the specific language governing rights and limitations under // the License. // // The Original Code is eCos - Embedded Configurable Operating System, // released September 30, 1998. // // The Initial Developer of the Original Code is Red Hat. // Portions created by Red Hat are // Copyright (C) 1998, 1999, 2000 Red Hat, Inc. // All Rights Reserved. // ------------------------------------------- // //####COPYRIGHTEND#### //####BSDCOPYRIGHTBEGIN#### // // ------------------------------------------- // // Portions of this software may have been derived from OpenBSD or other sources, // and are covered by the appropriate copyright disclaimers included herein. // // ------------------------------------------- // //####BSDCOPYRIGHTEND#### //========================================================================== //#####DESCRIPTIONBEGIN#### // // Author(s): gthomas // Contributors: gthomas // Date: 2000-04-06 // Purpose: // Description: // // //####DESCRIPTIONEND#### // //========================================================================== #ifndef _TFTP_SUPPORT_H_ #define _TFTP_SUPPORT_H_ /* * File transfer modes */ #define TFTP_NETASCII 0 // Text files #define TFTP_OCTET 1 // Binary files /* * Errors */ // These initial 7 are passed across the net in "ERROR" packets. #define TFTP_ENOTFOUND 1 /* file not found */ #define TFTP_EACCESS 2 /* access violation */ #define TFTP_ENOSPACE 3 /* disk full or allocation exceeded */ #define TFTP_EBADOP 4 /* illegal TFTP operation */ #define TFTP_EBADID 5 /* unknown transfer ID */ #define TFTP_EEXISTS 6 /* file already exists */ #define TFTP_ENOUSER 7 /* no such user */ // These extensions are return codes in our API, *never* passed on the net. #define TFTP_TIMEOUT 8 /* operation timed out */ #define TFTP_NETERR 9 /* some sort of network error */ #define TFTP_INVALID 10 /* invalid parameter */ #define TFTP_PROTOCOL 11 /* protocol violation */ #define TFTP_TOOLARGE 12 /* file is larger than buffer */ /* * Server support */ struct tftpd_fileops { int (*open)(const char *, int); int (*close)(int); int (*write)(int, const void *, int); int (*read)(int, void *, int); }; // Flags - passed to "open" #ifndef O_RDONLY #define O_RDONLY 1 #define O_WRONLY 2 #endif __externC int tftpd_start(int, struct tftpd_fileops *); __externC int tftpd_stop(int); /* * Client support */ __externC int tftp_get(char *, struct sockaddr_in *, char *, int, int, int *); __externC int tftp_put(char *, struct sockaddr_in *, char *, int, int, int *); #define TFTP_TIMEOUT_PERIOD 5 // Seconds between retries #define TFTP_TIMEOUT_MAX 50 // Max timeouts over all blocks #define TFTP_RETRIES_MAX 5 // retries per block before giving up #endif // _TFTP_SUPPORT_H_
