Subversion Repositories SvarDOS

Rev

Rev 616 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
207 mateuszvis 1
/*!\file arpa/tftp.h
2
 * TFTP definitions.
3
 */
4
 
5
/*
6
 * Copyright (c) 1983, 1993
7
 *      The Regents of the University of California.  All rights reserved.
8
 *
9
 * Redistribution and use in source and binary forms, with or without
10
 * modification, are permitted provided that the following conditions
11
 * are met:
12
 * 1. Redistributions of source code must retain the above copyright
13
 *    notice, this list of conditions and the following disclaimer.
14
 * 2. Redistributions in binary form must reproduce the above copyright
15
 *    notice, this list of conditions and the following disclaimer in the
16
 *    documentation and/or other materials provided with the distribution.
17
 * 3. All advertising materials mentioning features or use of this software
18
 *    must display the following acknowledgement:
19
 *      This product includes software developed by the University of
20
 *      California, Berkeley and its contributors.
21
 * 4. Neither the name of the University nor the names of its contributors
22
 *    may be used to endorse or promote products derived from this software
23
 *    without specific prior written permission.
24
 *
25
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
26
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
29
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
30
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
31
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
32
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
34
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
35
 * SUCH DAMAGE.
36
 *
37
 *      @(#)tftp.h      8.1 (Berkeley) 6/2/93
38
 * $FreeBSD: /repoman/r/ncvs/src/include/arpa/tftp.h,v 1.3.6.1 2002/08/14 21:59:26 peter Exp $
39
 */
40
 
41
#ifndef __ARPA_TFTP_H
42
#define __ARPA_TFTP_H
43
 
44
/*
45
 * Trivial File Transfer Protocol (IEN-133)
46
 */
47
#define SEGSIZE         512             /* data segment size */
48
 
49
/*
50
 * Packet types.
51
 */
52
#define RRQ     01                      /* read request */
53
#define WRQ     02                      /* write request */
54
#define DATA    03                      /* data packet */
55
#define ACK     04                      /* acknowledgement */
56
#undef  ERROR                           /* In <wingdi.h> */
57
#define ERROR   05                      /* error code */
58
#define OACK    06                      /* option acknowledgement */
59
 
60
#include <sys/packon.h>
61
 
62
struct tftphdr {
63
       unsigned short   th_opcode;      /* packet type */
64
       union {
65
         unsigned short tu_block;       /* block # */
66
         unsigned short tu_code;        /* error code */
67
         char           tu_stuff[1];    /* request packet stuff */
68
       } th_u;
69
       char             th_data[1];     /* data or error string */
70
     };
71
 
72
#include <sys/packoff.h>
73
 
74
#define th_block        th_u.tu_block
75
#define th_code         th_u.tu_code
76
#define th_stuff        th_u.tu_stuff
77
#define th_msg          th_data
78
 
79
/*
80
 * Error codes.
81
 */
82
#define EUNDEF          0               /* not defined */
83
#define ENOTFOUND       1               /* file not found */
84
#define EACCESS         2               /* access violation */
85
#define ENOSPACE        3               /* disk full or allocation exceeded */
86
#define EBADOP          4               /* illegal TFTP operation */
87
#define EBADID          5               /* unknown transfer ID */
88
#define EEXISTS         6               /* file already exists */
89
#define ENOUSER         7               /* no such user */
90
#define EOPTNEG         8               /* option negotiation failed */
91
 
92
#endif