%!PS-Adobe-1.0 %%Creator: devps (Pipeline Associates, Inc.) %%CreationDate: Fri Sep 13 13:08:04 1996 %%Pages: (atend) %%DocumentFonts: (atend) /devps 180 dict def devps begin /res 10.000000 def /y_offset 843 def /X{exch}bind def /mm {transform round X round X itransform} bind def /r{rmoveto}bind def /m{moveto}bind def /l{lineto}bind def /rl{rlineto}bind def /st{stroke}bind def /gs{gsave}bind def /gr{grestore}bind def /cp{currentpoint}bind def /np{newpath}bind def /ct{curveto}bind def systemdict /setpacking known { /savepacking currentpacking def true setpacking } if /m0{0 0 moveto}bind def /xc{//res div}bind def /yc{//res neg div //y_offset add}bind def /lc{yc X xc X l st}bind def /mc{yc X xc X m}bind def /el{gs /a X def a div 1 X scale cp np a xc 2 div 0 360 arc st gr}bind def /ar{cp 7 2 roll np xc 5 1 roll atan 3 1 roll atan X arc st}bind def /sp{yc X xc X 6 2 roll yc X xc X 6 2 roll yc X xc X 6 2 roll ct}bind def /V{//res neg div //y_offset add currentpoint pop X m}bind def /H{//res div 0 transform X round X itransform pop currentpoint X pop moveto}bind def /h{//res div 0 r}bind def /v{//res neg div 0 X r}bind def /S{X H show}bind def /A{H //res div 1 index stringwidth pop sub 1 index length div 0 3 2 roll ashow}bind def /psize 10 def /height 0 def /cheight { height 0 ne { height } { psize } ifelse } bind def /slant 0 def /FF{findfont X dup 30 div 0 mm pop setlinewidth /psize X def [psize 0 cheight slant sin slant cos div mul cheight 0 0] makefont setfont}bind def /shade{gs /dy X def /dx X def np m 0 /dy rl /dx 0 rl 0 /dy neg rl /dx neg 0 rl closepath .9 setgray fill gr}bind def 1 setlinecap /resolution res 72 mul def /startFig { /SavedState save def userdict maxlength dict begin currentpoint transform DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix itransform moveto /ury exch def /urx exch def /lly exch def /llx exch def /y exch 72 mul resolution div def /x exch 72 mul resolution div def currentpoint /cy exch def /cx exch def /sx x urx llx sub div def /sy y ury lly sub div def sx sy scale cx sx div llx sub cy sy div ury sub translate /DefFigCTM matrix currentmatrix def /initmatrix { DefFigCTM setmatrix } def /defaultmatrix { DefFigCTM exch copy } def /initgraphics { DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix DefFigCTM setmatrix } def /showpage { initgraphics } def }bind def /clipFig { currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll exch lineto exch lineto exch lineto closepath clip newpath moveto }bind def /doclip { llx lly urx ury clipFig } def /endFig { end SavedState restore }bind def /globalstart { fontnum psize slant height resolution currentpoint pagesave restore gsave }bind def /globalend { grestore moveto /resolution exch def /height exch def /slant exch def /psize exch def /fontnum exch def F /pagesave save def }bind def /fontnum 1 def systemdict /setpacking known { savepacking setpacking} if end /BP{ save mark devps begin m0 /DocumentInitState [ matrix currentmatrix currentlinewidth currentlinecap currentlinejoin currentdash currentgray currentmiterlimit ] cvx def }bind def /EP{ end cleartomark restore showpage}def /Encoding-1 256 array def 0 1 255 {Encoding-1 exch /.notdef put} for Encoding-1 8#301 StandardEncoding 8#101 26 getinterval putinterval %A-B Encoding-1 8#341 StandardEncoding 8#141 26 getinterval putinterval %a-b Encoding-1 8#241 StandardEncoding 8#301 16 getinterval putinterval %accents Encoding-1 8#373 StandardEncoding 8#365 1 getinterval putinterval %dotlessi Encoding-1 dup 8#41 /copyright put dup 8#42 /registered put dup 8#43 /trademark put dup 8#44 /logicalnot put dup 8#45 /Eth put dup 8#46 /eth put dup 8#47 /Thorn put dup 8#50 /thorn put dup 8#51 /brokenbar put dup 8#52 /degree put dup 8#53 /divide put dup 8#54 /multiply put dup 8#55 /minus put dup 8#56 /onehalf put dup 8#57 /onequarter put dup 8#60 /threequarters put dup 8#101 /Aacute put dup 8#102 /Acircumflex put dup 8#103 /Adieresis put dup 8#104 /Agrave put dup 8#105 /Aring put dup 8#106 /Atilde put dup 8#107 /Ccedilla put dup 8#110 /Eacute put dup 8#111 /Ecircumflex put dup 8#112 /Edieresis put dup 8#113 /Egrave put dup 8#114 /Iacute put dup 8#115 /Icircumflex put dup 8#116 /Idieresis put dup 8#117 /Igrave put dup 8#120 /Ntilde put dup 8#121 /Oacute put dup 8#122 /Ocircumflex put dup 8#123 /Odieresis put dup 8#124 /Ograve put dup 8#125 /Otilde put dup 8#126 /Scaron put dup 8#127 /Uacute put dup 8#130 /Ucircumflex put dup 8#131 /Udieresis put dup 8#132 /Ugrave put dup 8#133 /Ydieresis put dup 8#134 /Zcaron put dup 8#135 /aacute put dup 8#136 /acircumflex put dup 8#137 /adieresis put dup 8#140 /agrave put dup 8#141 /aring put dup 8#142 /atilde put dup 8#143 /ccedilla put dup 8#144 /eacute put dup 8#145 /ecircumflex put dup 8#146 /edieresis put dup 8#147 /egrave put dup 8#150 /iacute put dup 8#151 /icircumflex put dup 8#152 /idieresis put dup 8#153 /igrave put dup 8#154 /ntilde put dup 8#155 /oacute put dup 8#156 /ocircumflex put dup 8#157 /odieresis put dup 8#160 /ograve put dup 8#161 /otilde put dup 8#162 /scaron put dup 8#163 /uacute put dup 8#164 /ucircumflex put dup 8#165 /udieresis put dup 8#166 /ugrave put dup 8#167 /ydieresis put dup 8#170 /zcaron put pop /Enc-dict 30 dict def Enc-dict /tmpstr1 50 string put Enc-dict /tmpstr2 50 string put Enc-dict /tmpstr3 50 string dup (Encoding-) exch cvs pop put /AEnc-def { % arguments: the original font's name, encoding nr Enc-dict begin tmpstr2 cvs /Enc-no exch def % Remember the number in a string dup /OrigName exch def % remember the name findfont dup maxlength dict /newdict exch def % get dictionary for new font { exch dup /FID ne { exch newdict 3 1 roll put } { pop pop } % Ignore FID ifelse } forall newdict begin /Encoding tmpstr3 9 Enc-no putinterval tmpstr3 0 9 Enc-no length add getinterval cvn load def % Replace encoding currentdict /UniqueID known { /UniqueID UniqueID Enc-no cvi 49999 mul add def } if % Derive New UniqueID end % newdict /FNlength OrigName tmpstr1 cvs length def % convert name, remember length FNlength 1 add Enc-no length add string dup 0 OrigName tmpstr1 cvs putinterval dup FNlength (-) putinterval dup FNlength 1 add Enc-no putinterval dup 0 tmpstr1 0 FNlength getinterval putinterval % Add old name cvn dup newdict /FontName 3 2 roll put newdict definefont end % Enc-dict } def /Times-Roman 1 AEnc-def pop /R-1{/Times-Roman-1 FF}def /R{/Times-Roman FF}def /B{/Times-Bold FF}def /I{/Times-Italic FF}def %%EndProlog %%Page: 1 1 BP /slant 0 def /height 0 def 480 V 10 R 720(MTIO)S 986(\()S 1028(4)S 1086(\))S 2696(Eighth)S (Edition)296 2989 A 4861(MTIO)S 5127(\()S 5169(4)S 5227(\))S 960 V 9 R 720(N)S 722(NA)S 790(AM)S 858(ME)S 940(E)S 1080 V 10 R 1080(mtio)S 10 R-1 1289(-)S 10 R 1371(magnetic)S 1765(tape)S 1958(commands)S 1248 V 9 R 720(S)S 722(SY)S 774(YN)S 842(NO)S 910(OP)S 978(PS)S 1030(SI)S 1082(IS)S 1115(S)S 1368 V 10 B 1080(#include)S 1482()S 1488 V 1080(#include)S 1482()S 1608 V 1080(#include)S 1482()S 1776 V 9 R 720(D)S 722(DE)S 790(ES)S 848(SC)S 900(CR)S 962(RI)S 1024(IP)S 1057(PT)S 1109(TI)S 1167(IO)S 1200(ON)S 1268(N)S 1896 V 10 R 1080(The)S 1268(magnetic)S 1668(tape)S 1867(devices)S 2200(described)S 2618(in)S 10 B 2728(sd)S 10 R 2823(\(4\))S 2973(may)S 3178(be)S 3305(sent)S 3499(commands)S 3966(or)S 4082(queried)S 4416(for)S 4566(their)S 4783(status)S 5044(using)S 2016 V 1080(the)S 1228(following)S 1644(ioctl)S 1848(calls:)S 2184 V 10 B 1440(ioctl)S 10 R 1625(\()S 10 I 1659(fd)S 10 R 1737(,)S 10 B 1787(MTIOCTOP)S 10 R 2346(,)S 2396(&)S 10 B 2474(struct)S 2752(mtop)S 10 R 2976(\))S 2304 V 10 B 1440(ioctl)S 10 R 1625(\()S 10 I 1659(fd)S 10 R 1737(,)S 10 B 1787(MTIOCGET)S 10 R 2351(,)S 2401(&)S 10 B 2479(struct)S 2757(mtget)S 10 R 3004(\))S 2472 V 1080(The)S 1262(struct)S 1511(mtop,)S 1767(struct)S 2016(mtget)S 2270(and)S 2440(associated)S (de\256nitions)424 2879 A 3328(are)S 3477(de\256ned)S 3798(in)S 3901()S 4455(as)S 4564(follows:)S 2640 V 1080(/*)S 1183(Tape)S 1410(operations:)S 1882(ioctl\(fd,)S 2229(MTIOCTOP,)S 2795(&struct)S 3122(mtop\))S 3387(*/)S 2880 V 1080(struct)S 1329(mtop)S 1560({)S 3000 V 1280(short)S (mt_op;)284 1630 A 2380(/*)S 2483(Operation)S 2911(\(MTWEOF,)S 3432(etc.\))S 3634(*/)S 3120 V 1280(int)S (mt_count;)407 1630 A 2380(/*)S 2483(Repeat)S (count.)248 2788 A 3061(*/)S 3240 V 1080(};)S 3480 V 1080(#de\256ne)S 1401(MTWEOF)S 1930(0)S 2180(/*)S 2283(Write)S 2538(End-Of-File)S 3057(Marker)S 3379(*/)S 3600 V 1080(#de\256ne)S (MTFSF)319 1401 A 1930(1)S 2180(/*)S 2283(Forward)S (Space)241 2650 A 2916(File)S 3098(mark)S 3330(*/)S 3720 V 1080(#de\256ne)S 1401(MTBSF)S 1930(2)S 2180(/*)S 2283(Backward)S (Space)241 2717 A 2983(File)S 3165(mark)S 3397(*/)S 3840 V 1080(#de\256ne)S 1401(MTFSR)S 1930(3)S 2180(/*)S 2283(Forward)S (Space)241 2650 A 2916(Record)S 3232(*/)S 3960 V 1080(#de\256ne)S 1401(MTBSR)S 1930(4)S 2180(/*)S 2283(Backward)S (Space)241 2717 A 2983(Record)S 3299(*/)S 4080 V 1080(#de\256ne)S 1401(MTREW)S 1930(5)S 2180(/*)S 2283(Rewind)S 2621(tape)S 2814(*/)S 4200 V 1080(#de\256ne)S 1401(MTOFFL)S 1930(6)S 2180(/*)S 2283(Rewind)S 2621(and)S 2791(take)S 2984(Of\257ine)S 3295(*/)S 4320 V 1080(#de\256ne)S 1401(MTNOP)S 1930(7)S 2180(/*)S 2283(No-Operation,)S 2893(set)S 3030(status)S 3284(only)S 3487(*/)S 4440 V 1080(#de\256ne)S (MTRETEN)477 1401 A 1930(8)S 2180(/*)S 2283(Retension)S 2710(\(completely)S 3216(wind)S 3442(and)S 3612(rewind\))S 3951(*/)S 4560 V 1080(#de\256ne)S 1401(MTERASE)S 1930(9)S 2180(/*)S 2283(Erase)S 2533(the)S 2681(tape)S 2874(and)S 3044(rewind)S 3349(*/)S 4680 V 1080(#de\256ne)S 1401(MTEOM)S 1930(10)S 2180(/*)S (Position)329 2283 A 2637(at)S 2735(End-Of-Media)S 3354(*/)S 4800 V 1080(#de\256ne)S 1401(MTMODE)S 1930(11)S 2180(/*)S 2283(Select)S 2555(tape)S 2748(density)S 3063(*/)S 4920 V 1080(#de\256ne)S 1401(MTBLKZ)S 1930(12)S 2180(/*)S 2283(Select)S 2555(tape)S 2748(block)S 2996(size)S 3178(*/)S 5160 V 1080(/*)S 1183(Tape)S 1410(status:)S 1692(ioctl\(fd,)S 2039(MTIOCGET,)S 2611(&struct)S 2938(mtget\))S 3226(*/)S 5400 V 1080(struct)S 1329(mtget)S 1583({)S 5520 V 1280(short)S 1630(mt_type;)S 2380(/*)S 2483(Type)S 2715(of)S 2824(tape)S 3017(device.)S 3330(*/)S 5760 V 1280(/*)S 1383(Device)S 1694(dependent)S 2132("registers".)S 2606(*/)S 5880 V 1280(short)S 1630(mt_dsreg;)S 2380(/*)S 2483(Drive)S 2738(status)S 2992(register.)S 3345(*/)S 6000 V 1280(short)S 1630(mt_erreg;)S 2380(/*)S 2483(Error)S 2722(register.)S 3075(*/)S 6240 V 1280(/*)S 1383(Misc)S 1609(info.)S 1821(*/)S 6360 V 1280(off_t)S 1630(mt_resid;)S 2380(/*)S 2483(Residual)S (count.)248 2860 A 3133(*/)S 6480 V 1280(off_t)S 1630(mt_\256leno;)S 2380(/*)S 2483(Current)S 2816(File)S 2998(Number.)S 3378(*/)S 6600 V 1280(off_t)S (mt_blkno;)412 1630 A 2380(/*)S 2483(Current)S 2816(Block)S 3081(Number)S 3436(within)S 3718(\256le.)S 3897(*/)S 6720 V 1280(off_t)S 1630(mt_blksize;)S 2380(/*)S 2483(Current)S 2816(block)S 3064(size.)S 3271(*/)S 6840 V 1080(};)S 7128 V 1080(See)S 10 B 1261(mt)S 10 R 1379(\(1\))S 1532(for)S 1685(a)S 1765(detailed)S 2119(description)S 2601(on)S 2736(what)S (each)185 2967 A 3187(operation)S 3602(does.)S 3871(The)S 4063(mt_type)S 4428(\256eld)S 4643(is)S 4746(always)S 5062(zero,)S 7248 V 1080(there)S 1313(is)S 1411(no)S 1542(use)S 1707(for)S 1856(it)S 1943(yet.)S 2147(Mt_dsreg)S 2563(is)S 2661(0)S 2742(\(OK\),)S 3012(1)S 3093(\(Error\),)S 3431(or)S 3545(2)S 3625(\(EOF)S (encountered.\))551 3880 A 4486(Mt_erreg)S 4891(holds)S 5138(the)S 7368 V 1080(SCSI)S 1330(sense)S 1585(key)S 1767(of)S 1888(the)S 2048(last)S 2225(operation.)S 2693(Mt_blksize)S 3183(is)S 3288(the)S 3449(current)S 3773(tape)S 3979(block)S 4240(size)S 4435(in)S 4551(bytes,)S 4826(zero)S 5038(if)S 5138(the)S 7488 V 1080(block)S 1328(size)S 1510(is)S 1602(variable.)S 7903 V 720(Page)S 941(1)S 4455(September)S 4911(13,)S (1996)200 5061 A 8143 V EP %%Page: 2 2 BP /slant 0 def /height 0 def 480 V 10 R 720(MTIO)S 986(\()S 1028(4)S 1086(\))S 2696(Eighth)S (Edition)296 2989 A 4861(MTIO)S 5127(\()S 5169(4)S 5227(\))S 960 V 1080(Note)S 1306(that)S 1487(one)S 1662(can)S 1832(issue)S 2064(these)S 2302(commands)S 2768(on)S 2899(a)S 2975(\256le)S 3135(descriptor)S 3569(that)S 3751(is)S 3849(in)S 3958(use)S 4123(to)S 4232(read)S 4437(or)S 4552(write)S 4791(data,)S 5015(some-)S 1080 V 1080(thing)S 1315(that)S 10 B 1495(mt)S 10 R 1642(can't)S 1872(do.)S 2050(So)S (you)150 2184 A 2362(can)S 2530(add)S 2703(eof)S 2860(markers)S 3213(in)S 3319(the)S 3470(middle)S 3777(of)S 3889(an)S 4012(output)S 4296(stream,)S 4618(or)S 4730(get)S 4881(the)S 5032(status)S 1200 V 1080(of)S 1189(a)S 1259(device)S 1547(before)S 1830(a)S 1900(rewind-on-close)S 2580(tape)S 2773(rewinds.)S 1368 V 1080(The)S 1262(driver)S (will)157 1528 A 1710(automatically)S 2283(add)S 2453(an)S 2573(end)S 2743(of)S 2852(\256le)S 3006(marker)S 3317(to)S 3420(a)S 3490(tape)S 3683(that)S 3859(is)S (written)286 3952 A 4264(to)S 4368(if)S (you)150 4456 A 4632(execute)S 4966(a)S (space)224 5037 A 1488 V 1080(command.)S 1551(If)S (you)150 1644 A 1819(write)S 2052(eof)S 2206(markers)S (yourself)330 2556 A 2911(then)S 3109(the)S 3257(driver)S (will)157 3523 A 3705(not)S 3858(add)S 4028(one)S 4198(extra)S 4425(on)S 4550(close.)S 1656 V 9 R 720(S)S 722(SE)S 774(EE)S 832(E)S 913(A)S 915(AL)S 983(LS)S 1041(SO)S 1093(O)S 1776 V 10 B 1080(mt)S 10 R 1198(\(1\),)S 10 B 1366(sd)S 10 R 1461(\(4\).)S 1944 V 9 R 720(A)S 722(AU)S 790(UT)S 858(TH)S 916(HO)S 984(OR)S 1052(R)S 2064 V 10 R 1080(Kees)S 1307(J.)S 1396(Bot)S 1566(\(kjb@cs.vu.nl\))S 7903 V 720(September)S 1176(13,)S (1996)200 1326 A 4990(Page)S 5211(2)S 8143 V EP %%Trailer %%DocumentFonts: Times-Roman Times-Bold Times-Italic %%Pages: 2