/*
 *	$Source: /u1/jis/gw/cgw/gw/in/RCS/rvd.h,v $
 *	$Author: jon $
 *	$Locker:  $
 *	$Header: rvd.h,v 1.1 87/06/24 14:20:15 jon Exp $
 */


/* Include (header) file for remote virtual disk protocol */
/* Written by M. Greenwald April 1982 */
/* Grabed from <netinet/rvd.h> and <netinet/rvdconst.h> by JR 
   for C Gateway RVD flushing ... only what we need */

/* RVD packet format */

#define FLUSH_RVD_ALL ~0
#define FLUSH_RVD_NOTHING 0

#define u_char byte
#define u_long unsl

struct rvdhdr {		/* RVD header */
	u_char	rvd_type;		/* RVD packet type */
	u_char  mode;                   /* mode for spinups */
	u_char	padding;		/* Padding */
	u_char	version;		/* RVD version */
	u_long	drive;			/* Drive number */
	u_long	nonce;			/* Packet UID */
	u_long	index;			/* Servers connection index */
	u_long	cksum;			/* Packet checksum */
	u_long	reserved;		/* Reserved for future use */
	};

#define RVDVERSION	4	/* This implements protocol version 4 */

/* Packet types */
#define	RVDSPIN		1	/* SPIN-UP packet */
#define	RVDSDOWN	2	/* SPIN-DOWN packet */
#define	RVDREAD		3	/* READ packet */
#define	RVDWRITE	4	/* WRITE packet */
#define	RVDSTAT		5	/* Host requests server status */
#define	RVDHOST		6	/* Hosts status */
#define	RVDRESPIN	7	/* RESPIN-UP packet */
#define	RVDAUTHSPIN	8	/* AUTHSPIN-UP packet */
#define	RVDSPACK	17	/* Ack for SPIN-UP */
#define	RVDERROR	18	/* ERROR packet */
#define	RVDACK		19	/* Ack for SPIN-DOWN */
#define	RVDBLOCK	20	/* Block of data */
#define	RVDWACK		21	/* Ack for WRITE */
#define	RVDSSTAT	22	/* Servers status */
#define RVDHOSTR	23	/* Server requests host status */

#define RVDLAST         23

/* Opening modes */
#define	RVDMRO		0001	/* Read-only mode */
#define RVDMSHR		0002	/* Shared mode */
#define	RVDMEXC		0004	/* Exclusive mode */

#define	RVDHARD		0200	/* Hard spinup: Ored with one of other modes */
