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