NetBSD/sys/arch/i386/netboot/tftp.h

44 lines
1.1 KiB
C

/* $NetBSD: tftp.h,v 1.3 1994/10/27 04:21:27 cgd Exp $ */
/*
* source in this file came from
* the Mach ethernet boot written by Leendert van Doorn.
*
* Trivial File Transfer Protocol (see RFC 783)
*/
#define SEGSIZE 512 /* data segment size */
/*
* Packet types
*/
#define TFTP_RRQ 01 /* read request */
#define TFTP_WRQ 02 /* write request */
#define TFTP_DATA 03 /* data packet */
#define TFTP_ACK 04 /* acknowledgement */
#define TFTP_ERROR 05 /* error code */
/*
* TFTP header structure
*/
typedef struct {
u_short th_op; /* packet type */
union {
u_short tu_block; /* block # */
u_short tu_code; /* error code */
char tu_stuff[1]; /* request packet stuff */
} th_u;
} tftphdr_t;
/* for ease of reference */
#define th_block th_u.tu_block
#define th_code th_u.tu_code
#define th_stuff th_u.tu_stuff
#define th_data th_stuff[2]
#define th_msg th_data
void SetTftpParms(ipaddr_t server, ipaddr_t gateway, char *file_name);
u_long Read(void *result, u_long nbytes);
u_long PhysRead(u_long addr, u_long nbytes);
void IpSend(packet_t *pkt, ipaddr_t dst, ipaddr_t gateway);