%!PS-Adobe-2.0 EPSF-2.0 %%Title: erl_fix_alloc.fig %%Creator: fig2dev Version 3.1 Patchlevel 2 %%CreationDate: Tue May 20 11:10:33 1997 %%For: jocke@akvavit (Joakim Greben|,ETX/B/DUP) %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 506 462 %%Pages: 0 %%BeginSetup %%IncludeFeature: *PageSize A4 %%EndSetup %%EndComments /MyAppDict 100 dict dup begin def /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save -18.0 481.0 translate 1 -1 scale .9 .9 scale % to make patterns same scale as in xfig % This junk string is used by the show operators /PATsstr 1 string def /PATawidthshow { % cx cy cchar rx ry string % Loop over each character in the string { % cx cy cchar rx ry char % Show the character dup % cx cy cchar rx ry char char PATsstr dup 0 4 -1 roll put % cx cy cchar rx ry char (char) false charpath % cx cy cchar rx ry char /clip load PATdraw % Move past the character (charpath modified the % current point) currentpoint % cx cy cchar rx ry char x y newpath moveto % cx cy cchar rx ry char % Reposition by cx,cy if the character in the string is cchar 3 index eq { % cx cy cchar rx ry 4 index 4 index rmoveto } if % Reposition all characters by rx ry 2 copy rmoveto % cx cy cchar rx ry } forall pop pop pop pop pop % - currentpoint newpath moveto } bind def /PATcg { 7 dict dup begin /lw currentlinewidth def /lc currentlinecap def /lj currentlinejoin def /ml currentmiterlimit def /ds [ currentdash ] def /cc [ currentrgbcolor ] def /cm matrix currentmatrix def end } bind def % PATdraw - calculates the boundaries of the object and % fills it with the current pattern /PATdraw { % proc save exch PATpcalc % proc nw nh px py 5 -1 roll exec % nw nh px py newpath PATfill % - restore } bind def % PATfill - performs the tiling for the shape /PATfill { % nw nh px py PATfill - PATDict /CurrentPattern get dup begin setfont % Set the coordinate system to Pattern Space PatternGState PATsg % Set the color for uncolored pattezns PaintType 2 eq { PATDict /PColor get PATsc } if % Create the string for showing 3 index string % nw nh px py str % Loop for each of the pattern sources 0 1 Multi 1 sub { % nw nh px py str source % Move to the starting location 3 index 3 index % nw nh px py str source px py moveto % nw nh px py str source % For multiple sources, set the appropriate color Multi 1 ne { dup PC exch get PATsc } if % Set the appropriate string for the source 0 1 7 index 1 sub { 2 index exch 2 index put } for pop % Loop over the number of vertical cells 3 index % nw nh px py str nh { % nw nh px py str currentpoint % nw nh px py str cx cy 2 index show % nw nh px py str cx cy YStep add moveto % nw nh px py str } repeat % nw nh px py str } for 5 { pop } repeat end } bind def % PATkshow - kshow with the current pattezn /PATkshow { % proc string exch bind % string proc 1 index 0 get % string proc char % Loop over all but the last character in the string 0 1 4 index length 2 sub { % string proc char idx % Find the n+1th character in the string 3 index exch 1 add get % string proe char char+1 exch 2 copy % strinq proc char+1 char char+1 char % Now show the nth character PATsstr dup 0 4 -1 roll put % string proc chr+1 chr chr+1 (chr) false charpath % string proc char+1 char char+1 /clip load PATdraw % Move past the character (charpath modified the current point) currentpoint newpath moveto % Execute the user proc (should consume char and char+1) mark 3 1 roll % string proc char+1 mark char char+1 4 index exec % string proc char+1 mark... cleartomark % string proc char+1 } for % Now display the last character PATsstr dup 0 4 -1 roll put % string proc (char+1) false charpath % string proc /clip load PATdraw neewath pop pop % - } bind def % PATmp - the makepattern equivalent /PATmp { % patdict patmtx PATmp patinstance exch dup length 7 add % We will add 6 new entries plus 1 FID dict copy % Create a new dictionary begin % Matrix to install when painting the pattern TilingType PATtcalc /PatternGState PATcg def PatternGState /cm 3 -1 roll put % Check for multi pattern sources (Level 1 fast color patterns) currentdict /Multi known not { /Multi 1 def } if % Font dictionary definitions /FontType 3 def % Create a dummy encoding vector /Encoding 256 array def 3 string 0 1 255 { Encoding exch dup 3 index cvs cvn put } for pop /FontMatrix matrix def /FontBBox BBox def /BuildChar { mark 3 1 roll % mark dict char exch begin Multi 1 ne {PaintData exch get}{pop} ifelse % mark [paintdata] PaintType 2 eq Multi 1 ne or { XStep 0 FontBBox aload pop setcachedevice } { XStep 0 setcharwidth } ifelse currentdict % mark [paintdata] dict /PaintProc load % mark [paintdata] dict paintproc end gsave false PATredef exec true PATredef grestore cleartomark % - } bind def currentdict end % newdict /foo exch % /foo newlict definefont % newfont } bind def % PATpcalc - calculates the starting point and width/height % of the tile fill for the shape /PATpcalc { % - PATpcalc nw nh px py PATDict /CurrentPattern get begin gsave % Set up the coordinate system to Pattern Space % and lock down pattern PatternGState /cm get setmatrix BBox aload pop pop pop translate % Determine the bounding box of the shape pathbbox % llx lly urx ury grestore % Determine (nw, nh) the # of cells to paint width and height PatHeight div ceiling % llx lly urx qh 4 1 roll % qh llx lly urx PatWidth div ceiling % qh llx lly qw 4 1 roll % qw qh llx lly PatHeight div floor % qw qh llx ph 4 1 roll % ph qw qh llx PatWidth div floor % ph qw qh pw 4 1 roll % pw ph qw qh 2 index sub cvi abs % pw ph qs qh-ph exch 3 index sub cvi abs exch % pw ph nw=qw-pw nh=qh-ph % Determine the starting point of the pattern fill %(px, py) 4 2 roll % nw nh pw ph PatHeight mul % nw nh pw py exch % nw nh py pw PatWidth mul exch % nw nh px py end } bind def % Save the original routines so that we can use them later on /oldfill /fill load def /oldeofill /eofill load def /oldstroke /stroke load def /oldshow /show load def /oldashow /ashow load def /oldwidthshow /widthshow load def /oldawidthshow /awidthshow load def /oldkshow /kshow load def % These defs are necessary so that subsequent procs don't bind in % the originals /fill { oldfill } bind def /eofill { oldeofill } bind def /stroke { oldstroke } bind def /show { oldshow } bind def /ashow { oldashow } bind def /widthshow { oldwidthshow } bind def /awidthshow { oldawidthshow } bind def /kshow { oldkshow } bind def /PATredef { MyAppDict begin { /fill { /clip load PATdraw newpath } bind def /eofill { /eoclip load PATdraw newpath } bind def /stroke { PATstroke } bind def /show { 0 0 null 0 0 6 -1 roll PATawidthshow } bind def /ashow { 0 0 null 6 3 roll PATawidthshow } bind def /widthshow { 0 0 3 -1 roll PATawidthshow } bind def /awidthshow { PATawidthshow } bind def /kshow { PATkshow } bind def } { /fill { oldfill } bind def /eofill { oldeofill } bind def /stroke { oldstroke } bind def /show { oldshow } bind def /ashow { oldashow } bind def /widthshow { oldwidthshow } bind def /awidthshow { oldawidthshow } bind def /kshow { oldkshow } bind def } ifelse end } bind def false PATredef % Conditionally define setcmykcolor if not available /setcmykcolor where { pop } { /setcmykcolor { 1 sub 4 1 roll 3 { 3 index add neg dup 0 lt { pop 0 } if 3 1 roll } repeat setrgbcolor - pop } bind def } ifelse /PATsc { % colorarray aload length % c1 ... cn length dup 1 eq { pop setgray } { 3 eq { setrgbcolor } { setcmykcolor } ifelse } ifelse } bind def /PATsg { % dict begin lw setlinewidth lc setlinecap lj setlinejoin ml setmiterlimit ds aload pop setdash cc aload pop setrgbcolor cm setmatrix end } bind def /PATDict 3 dict def /PATsp { true PATredef PATDict begin /CurrentPattern exch def % If it's an uncolored pattern, save the color CurrentPattern /PaintType get 2 eq { /PColor exch def } if /CColor [ currentrgbcolor ] def end } bind def % PATstroke - stroke with the current pattern /PATstroke { countdictstack save mark { currentpoint strokepath moveto PATpcalc % proc nw nh px py clip newpath PATfill } stopped { (*** PATstroke Warning: Path is too complex, stroking with gray) = cleartomark restore countdictstack exch sub dup 0 gt { { end } repeat } { pop } ifelse gsave 0.5 setgray oldstroke grestore } { pop restore pop } ifelse newpath } bind def /PATtcalc { % modmtx tilingtype PATtcalc tilematrix % Note: tiling types 2 and 3 are not supported gsave exch concat % tilingtype matrix currentmatrix exch % cmtx tilingtype % Tiling type 1 and 3: constant spacing 2 ne { % Distort the pattern so that it occupies % an integral number of device pixels dup 4 get exch dup 5 get exch % tx ty cmtx XStep 0 dtransform round exch round exch % tx ty cmtx dx.x dx.y XStep div exch XStep div exch % tx ty cmtx a b 0 YStep dtransform round exch round exch % tx ty cmtx a b dy.x dy.y YStep div exch YStep div exch % tx ty cmtx a b c d 7 -3 roll astore % { a b c d tx ty } } if grestore } bind def /PATusp { false PATredef PATDict begin CColor PATsc end } bind def % right30 11 dict begin /PaintType 1 def /PatternType 1 def /TilingType 1 def /BBox [0 0 1 1] def /XStep 1 def /YStep 1 def /PatWidth 1 def /PatHeight 1 def /Multi 2 def /PaintData [ { clippath } bind { 32 16 true [ 32 0 0 -16 0 16 ] {<00030003000c000c0030003000c000c0030003000c000c00 30003000c000c00000030003000c000c0030003000c000c0 030003000c000c0030003000c000c000>} imagemask } bind ] def /PaintProc { pop exec fill } def currentdict end /P2 exch def 1.1111 1.1111 scale %restore scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawSplineSection { /y3 exch def /x3 exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def /xa x1 x2 x1 sub 0.666667 mul add def /ya y1 y2 y1 sub 0.666667 mul add def /xb x3 x2 x3 sub 0.666667 mul add def /yb y3 y2 y3 sub 0.666667 mul add def x1 y1 lineto xa ya xb yb x3 y3 curveto } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog $F2psBegin 10 setmiterlimit n 0 842 m 0 0 l 595 0 l 595 842 l cp clip 0.06000 0.06000 sc 7.500 slw % Polyline n 750 3600 m 750 1200 l 2325 1200 l 2325 3600 l gs col-1 s gr % Polyline n 750 1500 m 2325 1500 l gs col-1 s gr % Polyline n 750 1800 m 2325 1800 l gs col-1 s gr 15.000 slw % Polyline n 375 2100 m 2775 2100 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 900 2025 m gs 1 -1 sc (allocated_blocks) col-1 sh gr /Times-Roman ff 180.00 scf sf 1200 1725 m gs 1 -1 sc (free_list) col-1 sh gr /Times-Roman ff 180.00 scf sf 1200 1425 m gs 1 -1 sc (item_size) col-1 sh gr 7.500 slw % Polyline n 3525 1200 m 5025 1200 l 5025 1800 l 3525 1800 l cp gs col-1 s gr % Polyline n 3525 1500 m 5025 1500 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 4050 1425 m gs 1 -1 sc (next) col-1 sh gr /Times-Roman ff 180.00 scf sf 4050 1725 m gs 1 -1 sc (block) col-1 sh gr % Polyline n 5850 1200 m 7350 1200 l 7350 1800 l 5850 1800 l cp gs col-1 s gr % Polyline n 5850 1500 m 7350 1500 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 6375 1425 m gs 1 -1 sc (next) col-1 sh gr /Times-Roman ff 180.00 scf sf 6375 1725 m gs 1 -1 sc (block) col-1 sh gr 15.000 slw % Polyline [100.0] 0 sd n 3450 5700 m 5400 5700 l gs col-1 s gr [] 0 sd 7.500 slw % Polyline n 3600 8000 m 3600 3450 l 5175 3450 l 5175 8000 l gs col-1 s gr 15.000 slw % Polyline [100.0] 0 sd n 3525 6900 m 5325 6900 l gs col-1 s gr [] 0 sd 0.000 slw % Polyline [33.3] 0 sd n 3675 3525 m 5100 3525 l 5100 4425 l 3675 4425 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def 15.00 15.00 sc P2 [16 0 0 -8 245.00 235.00] PATmp PATsp ef gr PATusp [] 0 sd % Polyline [33.3] 0 sd n 3675 5775 m 5100 5775 l 5100 6825 l 3675 6825 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def 15.00 15.00 sc P2 [16 0 0 -8 245.00 385.00] PATmp PATsp ef gr PATusp [] 0 sd 7.500 slw % Polyline [15 50.0] 50.0 sd n 3600 4725 m 5250 4725 l gs col-1 s gr [] 0 sd % Polyline [15 50.0] 50.0 sd n 3600 4950 m 5175 4950 l gs col-1 s gr [] 0 sd 0.000 slw % Polyline [15 25.0] 25.0 sd n 6375 3750 m 6675 3750 l 6675 4050 l 6375 4050 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def 15.00 15.00 sc P2 [16 0 0 -8 425.00 250.00] PATmp PATsp ef gr PATusp [] 0 sd 7.500 slw % Polyline gs clippath 4305 3253 m 4275 3373 l 4245 3253 l 4245 3415 l 4305 3415 l cp clip n 4275 1800 m 4275 3400 l gs col-1 s gr gr % arrowhead n 4305 3253 m 4275 3373 l 4245 3253 l 4275 3253 l 4305 3253 l cp gs 0.00 setgray ef gr col-1 s 15.000 slw % Polyline [100.0] 0 sd n 3450 4500 m 5325 4500 l gs col-1 s gr [] 0 sd 7.500 slw % Polyline gs clippath 6630 2778 m 6600 2898 l 6570 2778 l 6570 2940 l 6630 2940 l cp clip n 6600 1800 m 6600 2925 l gs col-1 s gr gr % arrowhead n 6630 2778 m 6600 2898 l 6570 2778 l 6600 2778 l 6630 2778 l cp gs 0.00 setgray ef gr col-1 s 15.000 slw % Polyline gs clippath 656 840 m 723 1078 l 552 900 l 713 1181 l 817 1121 l cp clip n 450 600 m 750 1125 l gs col-1 s gr gr % arrowhead n 656 840 m 723 1078 l 552 900 l 604 870 l 656 840 l cp gs 0.00 setgray ef gr col-1 s % Open spline gs clippath 5627 1227 m 5749 1210 l 5650 1282 l 5800 1222 l 5778 1167 l cp clip 7.500 slw n 4875.0 1350.0 m 5137.5 1350.0 l 5137.5 1350.0 5400.0 1350.0 5587.5 1275.0 DrawSplineSection 5775.0 1200.0 l gs col-1 s gr gr % arrowhead n 5627 1227 m 5749 1210 l 5650 1282 l 5639 1255 l 5627 1227 l cp gs 0.00 setgray ef gr col-1 s % Open spline gs clippath 7877 1227 m 7999 1210 l 7900 1282 l 8050 1222 l 8028 1167 l cp clip n 7125.0 1350.0 m 7387.5 1350.0 l 7387.5 1350.0 7650.0 1350.0 7837.5 1275.0 DrawSplineSection 8025.0 1200.0 l gs col-1 s gr gr % arrowhead n 7877 1227 m 7999 1210 l 7900 1282 l 7889 1255 l 7877 1227 l cp gs 0.00 setgray ef gr col-1 s % Interp Spline gs clippath 3308 4453 m 3423 4496 l 3300 4512 l 3461 4532 l 3468 4472 l cp clip n 2175 1650 m 2346.9 1637.5 2421.9 1637.5 2475 1650 curveto 2514.6 1659.3 2593.0 1702.0 2625 1725 curveto 2665.4 1754.1 2753.1 1822.2 2775 1875 curveto 2790.5 1912.4 2775.0 1990.8 2775 2025 curveto 2775.0 2537.6 2542.8 3714.4 2775 4275 curveto 2785.9 4301.4 2829.8 4335.4 2850 4350 curveto 2882.0 4373.0 2962.7 4412.9 3000 4425 curveto 3076.1 4449.8 3188.6 4468.5 3450 4500 curveto gs col-1 s gr gr % arrowhead n 3308 4453 m 3423 4496 l 3300 4512 l 3304 4483 l 3308 4453 l cp gs 0.00 setgray ef gr col-1 s % Interp Spline gs clippath 5325 6973 m 5201 6969 l 5312 6914 l 5154 6949 l 5167 7007 l cp clip n 5100 4575 m 5270.9 4558.6 5345.9 4558.6 5400 4575 curveto 5465.1 4594.7 5582.7 4669.6 5625 4725 curveto 5662.1 4773.6 5691.1 4895.0 5700 4950 curveto 5764.9 5350.0 5796.1 6267.8 5700 6675 curveto 5690.7 6714.6 5655.4 6794.6 5625 6825 curveto 5594.6 6855.4 5511.4 6886.6 5475 6900 curveto 5424.7 6918.6 5349.7 6937.4 5175 6975 curveto gs col-1 s gr gr % arrowhead n 5325 6973 m 5201 6969 l 5312 6914 l 5319 6944 l 5325 6973 l cp gs 0.00 setgray ef gr col-1 s % Interp Spline gs clippath 3300 1202 m 3423 1205 l 3313 1261 l 3471 1226 l 3458 1168 l cp clip n 2250 1950 m 2378.9 1959.4 2435.2 1959.4 2475 1950 curveto 2514.6 1940.7 2593.0 1898.0 2625 1875 curveto 2665.4 1845.9 2745.9 1765.4 2775 1725 curveto 2821.1 1661.1 2878.9 1488.9 2925 1425 curveto 2939.6 1404.8 2979.8 1364.6 3000 1350 curveto 3032.0 1327.0 3113.7 1288.5 3150 1275 curveto 3200.3 1256.4 3275.3 1237.7 3450 1200 curveto gs col-1 s gr gr % arrowhead n 3300 1202 m 3423 1205 l 3313 1261 l 3306 1231 l 3300 1202 l cp gs 0.00 setgray ef gr col-1 s /Times-Roman ff 180.00 scf sf 3975 4650 m gs 1 -1 sc (next_free) col-1 sh gr /Times-Roman ff 180.00 scf sf 4050 4875 m gs 1 -1 sc (magic) col-1 sh gr /Times-Bold ff 210.00 scf sf 6825 3975 m gs 1 -1 sc (= allocated memory) col-1 sh gr /Helvetica-Bold ff 180.00 scf sf 3675 1125 m gs 1 -1 sc (AllocatedBlock) col-1 sh gr /Helvetica-Bold ff 180.00 scf sf 1575 1125 m gs 1 -1 sc (FixItem) col-1 sh gr /Helvetica-Bold ff 180.00 scf sf 2400 4650 m gs 1 -1 sc (FreeHeader) col-1 sh gr /Times-Bold ff 180.00 scf sf 5250 3600 m gs 1 -1 sc 270.0 rot (item_size) col-1 sh gr /Times-Bold ff 270.00 scf sf 300 525 m gs 1 -1 sc (fix_array) col-1 sh gr $F2psEnd rs end