Xinu7/src/cmd/download/OLD/eload/h/dlpack.h

/* dlpack.h */

/* Declarations and Constants for downloader protocol */

/* Protocol: downloader delivers packets over the Ethernet and		*/
/* expects ACKs back over the serial line.  Normal packet contains	*/
/* a real memory address, 0 <= address <= 48K, length, and data to	*/
/* be placed at that address.  Special command packet contains the	*/
/* address value DLCMD, and the data area contains register values	*/
/* delay, and autostart code.  All packets are ACKed.			*/

#define	DLMAXD	1024			/* max data in packet		*/
#define	DLCMD	-1			/* commands have this address	*/
#define	DLPS	8			/* index of PS in reg table	*/
#define	DLDELAY	9			/* index of delay in reg table	*/
#define	DLSTART	10			/* index of start addr in table	*/

struct	dlpack	{			/* format of download packet	*/
	short	dl_addr;		/* destination memory address	*/
	short	dl_len;			/* length of data area only	*/
	union	{			/* either data area or register	*/
		char	dl_data[DLMAXD];/* data to store in memory	*/
		short	dl_regs[11];	/* r0-r7, PS, delay, start addr	*/
	}	dl;
	short	dl_cksum;		/* checksum (now unused)	*/
};