% file: linker.mp input boxes %tracingall; numeric u; u=1cc; beginfig(1); boxjoin(a.se=b.ne); numeric ff; ff := defaultdy; defaultdy:=.5u; boxit.int(btex Interactive: file name etex); boxit.cmd(btex Command line etex); boxjoin(a.se=b.ne); drawunboxed(int,cmd); pair c,d,e,f; c:=cmd.e+(.25u,0); d:=int.e+(.25u,0); e:=.5[c,d]; f:=e+(1u,0); draw cmd.e--c--d--int.e; drawarrow e..f; defaultdy:= ff; show f; boxjoin(); boxjoin(tmp.nw=holdr.sw;tmp.ne=holdr.se); boxit.holdr(btex Holding file etex); boxit.tmp(btex ``linkercmd.tmp'' etex); boxit.linkr(btex Linker etex); boxit.fsc(btex ``First set file''.cpp etex); holdr.w=f; holdr.e = linkr.w-(1u,0); linkr.e = fsc.w-(1u,0); drawunboxed(holdr); drawunboxed(tmp); drawboxed(linkr); drawunboxed(fsc); drawarrow holdr.e--linkr.w; drawarrow linkr.e--fsc.w; label.bot(btex Figure 1: Linker run environment etex,linkr.s-(0,1u)); endfig; % bit maps beginfig(2); u:=.1in; picture c; for i=1 upto 1: x1:= (i-1)*32u; x2:= i*32u; draw (x1,0)--(x2,0)..(x2+.5u,.5u)..(x2,1u)..(x2-.5u,1.5u)..(x2,2u)--(x1,2u)--cycle; for j=1 upto 31: draw (x1+j*u,0)--(x1+j*u,.2u); endfor endfor % fill in the map contents for i=1 upto 32: if ( (i = 1) or (i = 9) or (i = 17) or (i = 25) or (i = 32) ): label("1",(x1+i*u-.5u,1u)); else: label("0",(x1+i*u-.5u,1u)); fi endfor label.llft("Thread ids:",(x1-.5u,0)); boxjoin(a.sw=b.nw;a.se=b.ne); boxit.aa("31");boxit.ba("23");boxit.ca("15");boxit.da("7");boxit.ea("0"); aa.ne = (x1-.5u,0) -(15bp,10bp); drawunboxed(aa,ba,ca,da,ea); label.top("word 0",(x1+15*u,2u)); numeric dlt; pair mp,bp; bp := (x1+.5u,0); dlt:= abs ((x1 + .5u) - xpart aa.e); mp:=aa.e+(dlt,0); draw aa.e -- mp; drawarrow mp--(x1+.5u,0); bp := (x1+.5u+8u,0); dlt:= abs ((x1+.5u+8u) - xpart ba.e); mp:=ba.e+(dlt,0); draw ba.e -- mp; drawarrow mp--bp; bp := (x1+.5u+16u,0); dlt:= abs ((x1+.5u+16u) - xpart ca.e); mp:=ca.e+(dlt,0); draw ca.e -- mp; drawarrow mp--bp; bp := (x1+.5u+24u,0); dlt:= abs ((x1+.5u+24u) - xpart da.e); mp:=da.e+(dlt,0); draw da.e -- mp; drawarrow mp--bp; bp := (x1+.5u+31u,0); dlt:= abs ((x1+.5u+31u) - xpart ea.e); mp:=ea.e+(dlt,0); draw ea.e -- mp; drawarrow mp--bp; endfig; % Tables beginfig(3); endfig; end;