|
|
1.1 ! root 1: /* tftp.h 4.2 83/06/11 */ ! 2: ! 3: /* ! 4: * Trivial File Transfer Protocol (IEN-133) ! 5: */ ! 6: #define SEGSIZE 512 /* data segment size */ ! 7: ! 8: /* ! 9: * Packet types. ! 10: */ ! 11: #define RRQ 01 /* read request */ ! 12: #define WRQ 02 /* write request */ ! 13: #define DATA 03 /* data packet */ ! 14: #define ACK 04 /* acknowledgement */ ! 15: #define ERROR 05 /* error code */ ! 16: ! 17: ! 18: #if defined(vax) ! 19: struct tftphdr { ! 20: short th_opcode; /* packet type */ ! 21: union { ! 22: short tu_block; /* block # */ ! 23: short tu_code; /* error code */ ! 24: char tu_stuff[1]; /* request packet stuff */ ! 25: } th_u; ! 26: char th_data[1]; /* data or error string */ ! 27: }; ! 28: ! 29: #define th_block th_u.tu_block ! 30: #define th_code th_u.tu_code ! 31: #define th_stuff th_u.tu_stuff ! 32: #define th_msg th_data ! 33: #endif ! 34: ! 35: #if defined(tahoe) ! 36: struct tftphdr { ! 37: union { ! 38: short opcode; /* packet type */ ! 39: struct { ! 40: short dummy; ! 41: short block; /* block # OR error code */ ! 42: }u1; ! 43: struct { ! 44: short dummy; ! 45: char stuff[1]; /* request packet stuff */ ! 46: }u2; ! 47: }u; ! 48: char th_data[1]; /* data or error string */ ! 49: }; ! 50: #define th_opcode u.opcode ! 51: #define th_block u.u1.block ! 52: #define th_code u.u1.block ! 53: #define th_stuff u.u2.stuff ! 54: #define th_msg th_data ! 55: #endif ! 56: ! 57: /* ! 58: * Error codes. ! 59: */ ! 60: #define EUNDEF 0 /* not defined */ ! 61: #define ENOTFOUND 1 /* file not found */ ! 62: #define EACCESS 2 /* access violation */ ! 63: #define ENOSPACE 3 /* disk full or allocation exceeded */ ! 64: #define EBADOP 4 /* illegal TFTP operation */ ! 65: #define EBADID 5 /* unknown transfer ID */ ! 66: #define EEXISTS 6 /* file already exists */ ! 67: #define ENOUSER 7 /* no such user */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.