|
|
1.1 root 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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.