home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / files / diskutil / tapebios / error.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-08-06  |  2.7 KB  |  52 lines

  1. /* Error reporting routines through Request Sense call  */
  2. /* This code is part of the TapeBIOS distribution       */
  3. /* Written by Alan Hourihane 1992                       */
  4.  
  5. #include <errno.h>
  6. #include "tapebind.h"
  7.  
  8. int 
  9. Request_Sense()
  10. {
  11.         int status;
  12.         char sense[512];
  13.     
  14.         bzero(sense, 32L);
  15.         status = Trsense(&sense[0], 64L);
  16.         switch ((int)(sense[2]) & 0xFF) {
  17.         
  18.         case -1:                                /* General Error */
  19.                         return(-ERROR);         /* return General Error (-1) */
  20.         case 2:                                 /* Tape drive not ready */
  21.                         return(-EDRVNR);        /* return Drive not ready */
  22.         case 3:                                 /* Medium Error */
  23.                         return(-E_CRC);         /* return CRC error */
  24.         case 4:                                 /* Hardware Error */
  25.                         return(-ERROR);         /* return General Error */
  26.         case 5:                                 /* Illegal Request */
  27.                         return(-EBADRQ);        /* return Bad Request */
  28.         case 6:                                 /* Unit Attention */
  29.                         return(-E_CHNG);        /* return Diskette was changed */
  30.         case 7:                                 /* Data Protect */
  31.                         return(-EROFS);         /* return Diskette write protected */
  32.         case 8:                                 /* Blank Check */
  33.                         return(-E_SEEK);        /* return Seek error, track not found */
  34.         case 9:                                 /* Vendor Unique */
  35.                         return(-ERROR);         /* return General Error */
  36.         case 10:                                /* Copy aborted */
  37.                         return(-ERROR);         /* return General Error */
  38.         case 11:                                /* Aborted Command */
  39.                         return(-ERROR);         /* return General Error */
  40.         case 12:                                /* Equal */
  41.                         return(-ERROR);         /* return General Error */
  42.         case 13:                                /* Volume Overflow */
  43.                         return(-EPAPER);        /* return (No paper) */
  44.         case 14:                                /* Miscompare */
  45.                         return(-ERROR);         /* return General Error */
  46.         case 15:                                /* Reserved (shouldn't happen) */
  47.                         return(-ERROR);         /* return General Error  */
  48.         default:                                /* If not known */
  49.                         return(-ERROR);         /* return General Error */
  50.         }
  51. }
  52.