103 lines · 2.3 KB · C
RawDownload
/*  * This file is part of the UCB release of Plan 9. It is subject to the license * terms in the LICENSE file found in the top-level directory of this * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No * part of the UCB release of Plan 9, including this file, may be copied, * modified, propagated, or distributed except according to the terms contained * in the LICENSE file. */ /* from <ip.h> */ enum{	ETHER_HDR	= 14,	ET_IP		= 0x800, 	IP_VER		= 0x40,	IP_HLEN		= 0x05,			 	IP_UDPPROTO	= 17, 	UDP_EHSIZE	= 22,	UDP_PHDRSIZE	= 12,	UDP_HDRSIZE	= 20, 	BPportsrc	= 68,	BPportdst	= 67,	Bootrequest 	= 1,	Bootreply   	= 2, 	TFTPport	= 69,//	Timeout		= 5000,	/* milliseconds */	Timeout		= 2000,	/* milliseconds */	Tftp_READ	= 1,	Tftp_WRITE	= 2,	Tftp_DATA	= 3,	Tftp_ACK	= 4,	Tftp_ERROR	= 5,	Tftp_OACK	= 6,		/* extension: option(s) ack */	Defsegsize	= 512, 	/* lengths of some bootp fields */	Maxhwlen=	16,	Maxfilelen=	128,	Maxoptlen=	312-4, 	/* bootp option types */	OBend=			255,	OBpad=			0,	OBmask=			1,}; /* *  user level udp headers with control message "headers" */enum {	Udphdrsize=	52,	/* size of a Udphdr */}; typedef struct Udphdr Udphdr;struct Udphdr{	uchar	raddr[IPaddrlen];	/* V6 remote address */	uchar	laddr[IPaddrlen];	/* V6 local address */	uchar	ifcaddr[IPaddrlen];	/* V6 ifc addr msg was received on */	uchar	rport[2];		/* remote port */	uchar	lport[2];		/* local port */}; /* * from 9load */typedef struct Bootp Bootp;struct Bootp{	uchar	op;		/* opcode */	uchar	htype;		/* hardware type */	uchar	hlen;		/* hardware address len */	uchar	hops;		/* hops */	uchar	xid[4];		/* a random number */	uchar	secs[2];	/* elapsed since client started booting */	uchar	flags[2];	/* unused in bootp, flags in dhcp */	uchar	ciaddr[4];	/* client IP address (client tells server) */	uchar	yiaddr[4];	/* client IP address (server tells client) */	uchar	siaddr[4];	/* server IP address */	uchar	giaddr[4];	/* gateway IP address */	uchar	chaddr[16];	/* client hardware address */	char	sname[64];	/* server host name (optional) */	char	file[128];	/* boot file name */ //	char	vend[128];	/* vendor-specific goo */	uchar	optmagic[4];	uchar	optdata[Maxoptlen];}; typedef struct Pxenetaddr Pxenetaddr;struct Pxenetaddr{	uchar	ip[IPaddrlen];	ushort	port;}; extern int chatty;