Xinu7/include/rfile.h

/* rfile.h */

#include <file.h>

/* Remote file device control block and defined constants */

/* Constants for server device control functions */

#define	RFCLEAR		1		/* Clear incoming messages	*/

/* Constants for controlling retrys for server communication */

#define	RTIMOUT		5		/* Timeout for server response	*/
#define	RMAXTRY		2		/* Number of retrys per op.	*/

/* Constants for rf pseudo-device state variable */

#define	RFREE		-1		/* This pseudo-device is unused	*/
#define	RUSED		1		/* This pseudo-device is used	*/

/* Declaration of rf pseudo-device I/O control block */

struct	rfblk	{			/* Remote file control block	*/
	int	rf_dnum;		/* File's device num in devtab	*/
	char	rf_name[RNAMLEN];	/* Name of remote file		*/
	int	rf_state;		/* State of this pseudo device	*/
	int	rf_mode;		/* FLREAD, FLWRITE or both	*/
	int	rf_mutex;		/* exclusion for this file	*/
	long	rf_pos;			/* current byte offset in file	*/
};

#ifndef	Nrf
#define	Nrf	1
#endif
struct	rfinfo	{			/* all remote server info.	*/
	int	device;			/* device descriptor for server	*/
	int	rmutex;			/* mutual exclusion for server	*/
	struct	rfblk	rftab[Nrf];	/* remote file control blocks	*/
};

extern	struct	rfinfo	Rf;