Project

General

Profile

Statistics
| Revision:

root / lab4 / .minix-src / include / arpa / tftp.h @ 14

History | View | Annotate | Download (2.97 KB)

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