Home | History | Annotate | Download | only in common
      1 /*
      2  * CDDL HEADER START
      3  *
      4  * The contents of this file are subject to the terms of the
      5  * Common Development and Distribution License, Version 1.0 only
      6  * (the "License").  You may not use this file except in compliance
      7  * with the License.
      8  *
      9  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
     10  * or http://www.opensolaris.org/os/licensing.
     11  * See the License for the specific language governing permissions
     12  * and limitations under the License.
     13  *
     14  * When distributing Covered Code, include this CDDL HEADER in each
     15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
     16  * If applicable, add the following below this CDDL HEADER, with the
     17  * fields enclosed by brackets "[]" replaced with your own identifying
     18  * information: Portions Copyright [yyyy] [name of copyright owner]
     19  *
     20  * CDDL HEADER END
     21  */
     22 /*
     23  * Copyright 2001-2002 Sun Microsystems, Inc.  All rights reserved.
     24  * Use is subject to license terms.
     25  */
     26 
     27 #ifndef _TFTPCOMMON_H
     28 #define	_TFTPCOMMON_H
     29 
     30 #pragma ident	"%Z%%M%	%I%	%E% SMI"
     31 
     32 /*
     33  * Defines and function declarations common to tftp and in.tftpd.
     34  */
     35 
     36 #ifdef __cplusplus
     37 extern "C" {
     38 #endif
     39 
     40 #include <arpa/tftp.h>
     41 
     42 #define	MIN_BLKSIZE	8			/* RFC 2348 */
     43 #define	MAX_BLKSIZE	65464			/* RFC 2348 */
     44 #define	MIN_TIMEOUT	1			/* RFC 2349 */
     45 #define	MAX_TIMEOUT	255			/* RFC 2349 */
     46 #define	PKTSIZE		(MAX_BLKSIZE + 4)	/* DATA packet max size */
     47 #define	MAX_OPTVAL_LEN	32			/* Option value max length */
     48 
     49 /* Format when printing an off_t */
     50 #if _FILE_OFFSET_BITS == 64
     51 #define	OFF_T_FMT	"%lld"
     52 #else
     53 #define	OFF_T_FMT	"%ld"
     54 #endif
     55 
     56 typedef union {
     57 	struct tftphdr	tb_hdr;
     58 	char		tb_data[PKTSIZE];
     59 } tftpbuf;
     60 
     61 struct errmsg {
     62 	int	e_code;
     63 	char	*e_msg;
     64 };
     65 extern struct errmsg	errmsgs[];
     66 
     67 /* Declarations for shared functions in tftpsubs.c */
     68 extern struct tftphdr	*w_init(void);
     69 extern struct tftphdr	*r_init(void);
     70 extern int		readit(FILE *, struct tftphdr **, int);
     71 extern void		read_ahead(FILE *, int);
     72 extern int		writeit(FILE *, struct tftphdr **, int, int);
     73 extern int		write_behind(FILE *, int);
     74 extern int		synchnet(int);
     75 extern char		*next_field(const char *, const char *);
     76 extern void		print_options(FILE *, char *, int);
     77 extern void		cancel_alarm(void);
     78 
     79 #ifdef __cplusplus
     80 }
     81 #endif
     82 
     83 #endif /* _TFTPCOMMON_H */
     84