/* inout : decides on the direction of the dataflow and the meaning of the variables buffer: If inout==FALSE data is being written to it else read from it *start: If inout==FALSE start of the valid data in the buffer offset: If inout==FALSE offset from the beginning of the imaginary file from which we start writing into the buffer length: If inout==FALSE max number of bytes to be written into the buffer else number of bytes in the buffer  */
static int fd_mcs_proc_info(struct Scsi_Host *shpnt, char *buffer, char **start, off_t offset, int length, int inout)
/* inout : decides on the direction of the dataflow and the meaning of the variables buffer: If inout==FALSE data is being written to it else read from it *start: If inout==FALSE start of the valid data in the buffer offset: If inout==FALSE offset from the beginning of the imaginary file from which we start writing into the buffer length: If inout==FALSE max number of bytes to be written into the buffer else number of bytes in the buffer  */
static int fd_mcs_proc_info(struct Scsi_Host *shpnt, char *buffer, char **start, off_t offset, int length, int inout)
{
	int len = 0;
	if (inout)
		return (-ENOSYS);
	*start = buffer + offset;
	len += sprintf(buffer + len, "Future Domain MCS-600/700 Driver %s\n", DRIVER_VERSION);
	len += sprintf(buffer + len, "HOST #%d: %s\n", shpnt->host_no, adapter_name);
	len += sprintf(buffer + len, "FIFO Size=0x%x, FIFO Count=%d\n", FIFO_Size, FIFO_COUNT);
	len += sprintf(buffer + len, "DriverCalls=%d, Interrupts=%d, BytesRead=%d, BytesWrite=%d\n\n", TOTAL_INTR, INTR_Processed, Bytes_Read, Bytes_Written);
	if ((len -= offset) <= 0)
		return 0;
	if (len > length)
		len = length;
	return len;
}