diff options
Diffstat (limited to 'usr/src/lib/libast/common/string/strtape.c')
-rw-r--r-- | usr/src/lib/libast/common/string/strtape.c | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/usr/src/lib/libast/common/string/strtape.c b/usr/src/lib/libast/common/string/strtape.c deleted file mode 100644 index 00d40b701a..0000000000 --- a/usr/src/lib/libast/common/string/strtape.c +++ /dev/null @@ -1,148 +0,0 @@ -/*********************************************************************** -* * -* This software is part of the ast package * -* Copyright (c) 1985-2010 AT&T Intellectual Property * -* and is licensed under the * -* Common Public License, Version 1.0 * -* by AT&T Intellectual Property * -* * -* A copy of the License is available at * -* http://www.opensource.org/licenses/cpl1.0.txt * -* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * -* * -* Information and Software Systems Research * -* AT&T Research * -* Florham Park NJ * -* * -* Glenn Fowler <gsf@research.att.com> * -* David Korn <dgk@research.att.com> * -* Phong Vo <kpv@research.att.com> * -* * -***********************************************************************/ -#pragma prototyped -/* - * local device pathname for portable tape unit specification is returned - * if e is non-null then it is set to the next unused char in s - * - * <unit><density>[<no-rewind>] - * {0-7}[l,m,h,u,c][n] - */ - -#include <ast.h> - -char* -strtape(register const char* s, register char** e) -{ - int mtunit = '0'; - int mtdensity = 0; - char mtrewind[2]; - char mtbehavior[2]; - - static char tapefile[sizeof("/dev/Xrmt/123456789")]; - - mtrewind[0] = mtrewind[1] = mtbehavior[0] = mtbehavior[1] = 0; - for (;;) - { - switch (*s) - { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - mtunit = *s++; - continue; - case 'b': - case 'v': - mtbehavior[0] = *s++; - continue; - case 'l': - case 'm': - case 'h': - case 'u': - case 'c': - mtdensity = *s++; - continue; - case 'n': - mtrewind[0] = *s++; - continue; - } - break; - } - if (e) *e = (char*)s; - if (!access("/dev/rmt/.", F_OK)) - { - /* - * system V - */ - - if (!mtdensity) mtdensity = 'm'; - sfsprintf(tapefile, sizeof(tapefile), "/dev/rmt/ctape%c%s", mtunit, mtrewind); - if (!access(tapefile, F_OK)) return(tapefile); - for (;;) - { - sfsprintf(tapefile, sizeof(tapefile), "/dev/rmt/%c%c%s%s", mtunit, mtdensity, mtbehavior, mtrewind); - if (!access(tapefile, F_OK)) return(tapefile); - if (!mtbehavior[0]) break; - mtbehavior[0] = 0; - } - } - else if (!access("/dev/nst0", F_OK)) - { - /* - * linux - */ - - sfsprintf(tapefile, sizeof(tapefile), "/dev/%sst%c", mtrewind, mtunit); - } - else if (!access("/dev/nrmt0", F_OK)) - { - /* - * 9th edition - */ - - switch (mtdensity) - { - case 'l': - mtunit = '0'; - break; - case 'm': - mtunit = '1'; - break; - case 'h': - mtunit = '2'; - break; - } - sfsprintf(tapefile, sizeof(tapefile), "/dev/%srmt%c", mtrewind, mtunit); - } - else - { - /* - * BSD - */ - - mtunit -= '0'; - switch (mtdensity) - { - case 'l': - break; - case 'h': - mtunit |= 020; - break; - default: - mtunit |= 010; - break; - } - switch (mtrewind[0]) - { - case 'n': - mtunit |= 040; - break; - } - sfsprintf(tapefile, sizeof(tapefile), "/dev/rmt%d", mtunit); - } - return(tapefile); -} |