[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RTAPE getting stuck? (UX400 accessing remote Sun)



    Date: Fri, 5 Jan 90 16:45:31 EST
    From: barmar@Think.COM

    Are you using my Unix RTAPE or Symbolics's UX400S interface to /etc/rmt?  I
    never have managed to get RTAPE working under SunOS (but Lamson claims he
    did).

Yes.  You need to patch the tape_struct declaration as follows (sorry I
don't have the original so you can see the source comparison, but it
should be obvious what I did: the #IFDEF SUN through #ELSE, plus the
#ENDIF is what I added).

struct tape_status	{
	char	t_version;	/* protocol version */
	char	t_probeid[2];	/* Id in corresponding PROBE */
	char	t_read[3];	/* Number of blocks read */
	char	t_skipped[3];	/* Number of blocks skipped */
	char	t_discarded[3];	/* Numbert of writes discarded */
	char	t_lastop;	/* last opcode received */
	char	t_density[2];	/* Density in BPI */
	char	t_retries[2];	/* number of retries in last op. */
	char	t_namelength;	/* length of next string */
	char	t_drive[DLEN];	/* Drive name in use. */
#ifdef sun  /* The Sun is big-endian */
	char	t_harderr:1;	/* Hard error encountered */
	char	t_message:1;	/* Error message follows */
	char	t_mounted:1;	/* Tape is mounted */
	char	t_nli:1;	/* Not logged in */
	char	t_eof:1;	/* Last op reached EOF */
	char	t_pasteot:1;	/* Past EOT */
	char	t_bot:1;	/* At BOT */
	char	t_solicited:1;	/* This status was asked for */
	char	t_bits_unused:6;/* Bits not used. */
	char	t_offline:1;	/* Drive is offline */
	char	t_softerr:1;	/* Soft errors encountered */
#else	   /* Everything else is assumed to be little-endian */
	char	t_solicited:1;	/* This status was asked for */
	char	t_bot:1;	/* At BOT */
	char	t_pasteot:1;	/* Past EOT */
	char	t_eof:1;	/* Last op reached EOF */
	char	t_nli:1;	/* Not logged in */
	char	t_mounted:1;	/* Tape is mounted */
	char	t_message:1;	/* Error message follows */
	char	t_harderr:1;	/* Hard error encountered */
	char	t_softerr:1;	/* Soft errors encountered */
	char	t_offline:1;	/* Drive is offline */
#endif
	char	t_string[MAXSTRING];	/* Error message */
} ts;