home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.3 (Developer) / NeXT_Developer-3.3.iso / NextDeveloper / Examples / DriverKit / SCSITape / PreLoad.tproj / PreLoad.m < prev   
Encoding:
Text File  |  1994-07-13  |  1.3 KB  |  53 lines

  1. /*
  2.  *      Copyright (c) 1994 NeXT Computer, Inc.  All rights reserved. 
  3.  *
  4.  * PreLoad command for SCSI Tape.   Removes old SCSI Tape device nodes.
  5.  *
  6.  * HISTORY
  7.  * 1-Apr-94    Phillip Dibner at NeXT
  8.  *      Created. 
  9.  */
  10.  
  11. #import <errno.h>
  12. #import <libc.h>
  13. #import "SCSITapeTypes.h"
  14.  
  15. #define PATH_NAME_SIZE 10
  16. #define DEV_STRING "/dev/"
  17. #define ST_PRELOAD_ERR_STRING "SCSI Tape PreLoad"
  18. #define NTAPE_NAMES 4
  19. #define NST 4 /* XXX This is redundant, but avoids compilation errors */
  20.  
  21. char path [PATH_NAME_SIZE];
  22. char *scsiTapeNames[] = {"rst", "nrst", "rxt", "nrxt"};
  23. int scsiTapeDevFlags[] = {0, 1, 2, 3}; /* bit 0 = no rewind, bit 1 = Exabyte */
  24.  
  25. int
  26. main(int argc, char **argv)
  27. {
  28.     int                iUnit, iRet = 0;
  29.     int                i;
  30.  
  31.     for (iUnit = 0; iUnit < NST; iUnit ++) {
  32.     bzero (path, PATH_NAME_SIZE);
  33.     sprintf (path, "%s%s%d", DEV_STRING, "st", iUnit);
  34.  
  35.     /*
  36.      * Remove old devs and create new ones for this unit.
  37.      */
  38.     for (i = 0; i < NTAPE_NAMES; i++) {
  39.  
  40.         bzero (path, PATH_NAME_SIZE);
  41.         sprintf (path, "%s%s%d", DEV_STRING, scsiTapeNames [i], iUnit);
  42.  
  43.         if (unlink (path)) {
  44.         if (errno != ENOENT) {
  45.             printf ("%s: could not delete old %s.  Errno is %d\n",
  46.             ST_PRELOAD_ERR_STRING, path, errno);
  47.             iRet = -1; 
  48.         }
  49.         }
  50.     }
  51.     } /* for iUnit */
  52.     return iRet;
  53. }