From 3a81fa153efe966d4a7566e9ef0efeea4fa8f1d5 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 6 Oct 1999 16:55:23 +0000 Subject: [PATCH] Renamed networking figure to networkflow and added PCIreg.pdf. --- doc/networking/PCIreg.pdf | Bin 0 -> 1906 bytes doc/networking/networkflow.eps | 1343 ++++++++++++++++++++++++++++++++ doc/networking/networkflow.pdf | Bin 0 -> 1231059 bytes doc/networking/networkflow.png | Bin 0 -> 12933 bytes 4 files changed, 1343 insertions(+) create mode 100644 doc/networking/PCIreg.pdf create mode 100644 doc/networking/networkflow.eps create mode 100644 doc/networking/networkflow.pdf create mode 100644 doc/networking/networkflow.png diff --git a/doc/networking/PCIreg.pdf b/doc/networking/PCIreg.pdf new file mode 100644 index 0000000000000000000000000000000000000000..bbe9bf8f8d5cd7bfb3e9a668fcd1a19eae76a3ca GIT binary patch literal 1906 zcmZuy3s4hB7?vqmdSEpwLoEnvAuS4cxjcD9REP*g9zuX(2sI>^kd!2lJ1kJOQmUd3 z51~LUmLfqA1r(|x3=w%LuVAH6K^m%7D1wN{L#tAHu~a*4cW&l(zWx7izx{URTXF!$ z(-B!ug~-<)q!&VTKmp1~8N_D8+faoBj{*z=34}eR(KxCCuxGRYM>(iaDMH=cAPiTb z0yz|aJUe7SVZmCq=Vs_5WG%>Pa{XBTW@(aPs^f`0Z!Igk@X4np6YW2d4?UmRa4&)r zR@LLabh-HLgEUE(DcK1jZJc{jc#Q3z(wlWd~)jBTV?IHmk_+Z?FojV1_7ls9i&<+PJMD(Qmy8%ks#b z0|7e>_uac6;0IY9Z+BmEEz<6cZFLuVsv%R|YNXY431@OF8AT`S9v?lTmZkz5U0!Dz z@IG*c23CD}ci6Jk@a{uPui6-9tgmO?DrwP2yj57c*F^eI(L{in?2)>1B63NNDWkYo zoo1g$HOSv2&UGoVnbK~4_p{vDQ<{LeYzgvx^7gjA(WT>+y`l25p`-}2c&lj{^xVL; zU$#7Dv}@miV@`qADK?qSUMeGv$Cn4Pt~j_RHOaszd!3KBRI9aEtJ^s+=X~ghzr~ub zZ-~_D`Rr)=yWtY!HCFSGf^^fKWnJ7oe<7-`W%uK;aw9C9Gd%nx>*4A}HGMXQgRP{{ z#>#{##YGLTzKj*zRB?9j`h33A{-EaKjGC&a2>gpKWK1@rS*PZmE2aPZLy{0GjdZps z{;G*geFj%Zrbc}F?X1jwI>oX}B?W!lJEr|BN3qGNfs)7-Hx}Rez&a!5{LS&|bh+fy zkyx&=D%6c1qf?yjl|85DC(CNF&+<#nVo1#U58cB2bkB{*q4g^ z8tkXVAG%Z|Sd%{I%4@=BihL*685zX+nzfM9E|`xUHbZMp|1@T}rU6}Kz&ABVtoOQ^ zjn_t8d@%duI*BuKrX}-SQb$E&*qnchTdzEOouR>pr;jIfL{5e>iVAE83)pQ5I_{au zH(WPt)7)JXb$(Oi;3GTyM95IfF75iWk_R1CX@>9by1UceeyhE(c*PdgE?GY|_M;-Z zX6f^)H@7prsX4+_>3N+>u${kh zzW1Fs^9~mL+=oT|@^l|6EeM`=i>QnKrqHpn-)eMb_!8GRv2iEf)5&aEyu594GNOb( zSYm&#`qW1`S1T+X6stRqCAOXP8hR08hMJq?ZSkt(B_LC|C45%%eTArOMz@Iulr06z z$6_6C#qu^N$AW{ucr<%?Z(qe>U(1FQ#q{z?>(JdMrtVPISMPD^=Z)bYubhY%KbGMF z*MYY=&URsmg5RKJ2b16HiTSSi*Ws+j{jSEtPre|#Nn7c8OA4F9OZ{z|>w8?}wxp{* zt6A?e_VpZ9KTFZ#6N?N>ZU5-Xxb|y~Xm*CLtE$@3<2(6uW>0nbIV`o;ffo|mF|HG~ z>~#nwe^RaGe{iU0Hm|Mz#Pfj&R3Tc3A!4SFE`4C>{|G{Nh88f|t5}0zZbA$S-~fRH zgkvk!s;QA`=95~3Jjvx!cXQW%8dfCm%N z31BW7j}sl9N}`_4CW@JW`Ld13N8*D$hy{WR1NvwU)I$rJ^i>N{tC#eW0rnHfQGx;v zii^bcpne5`-31t`-vH)H~Un13XB7_&|sc2q|%d zNaP>$VG_o(5XxG@ zMU_$%CnTN?yRCk~U~7~T!!e;s8iNDIdVRrb+ISTzhA6-ZqP!Y_$zaeJKnxZzgh3-5 z)DNI|h0$5WZT}0SGX7IXp&T>ImuEwmEDA&>Z}Inp{siQ*56l1n literal 0 HcmV?d00001 diff --git a/doc/networking/networkflow.eps b/doc/networking/networkflow.eps new file mode 100644 index 0000000000..8aba78d55f --- /dev/null +++ b/doc/networking/networkflow.eps @@ -0,0 +1,1343 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: +%%Creator: Diagram +%%CreationDate: Tue Aug 18 16:41:45 1998 +%%For: eric +%%DocumentFonts: (atend) +%%Pages: 0 0 +%%BoundingBox: 0 0 487 549 +%%NXNextStepVersion: 3.0 +%%EndComments + +%%BeginProcSet: /usr/lib/NextStep/printPackage.ps 3.0 +%! +% NeXT Printing Package +% Version: 3.1 +% Copyright: 1988, NeXT, Inc. + +/__NXdef{1 index where{pop pop pop}{def}ifelse}bind def +/__NXbdef{1 index where{pop pop pop}{bind def}ifelse}bind def +/UserObjects 10 array __NXdef +/defineuserobject{ + exch dup 1 add dup UserObjects length gt{ + array dup 0 UserObjects putinterval + /UserObjects exch def + }{pop}ifelse UserObjects exch 3 -1 roll put +}__NXbdef +/undefineuserobject{UserObjects exch null put}__NXbdef +/execuserobject{UserObjects exch get exec}__NXbdef +/__NXRectPath{4 2 roll moveto 1 index 0 rlineto +0 exch rlineto neg 0 rlineto closepath}__NXbdef +/__NXProcessRectArgs{ + 1 index type /arraytype eq{ + exch 0 4 2 index length 1 sub{ + dup 3 add 1 exch{1 index exch get exch}for + 5 1 roll 5 index exec + }for pop pop + }{exec}ifelse +}__NXbdef +/rectfill{gsave newpath {__NXRectPath fill} __NXProcessRectArgs grestore}__NXbdef +/rectclip{newpath {__NXRectPath} __NXProcessRectArgs clip newpath}__NXbdef +/rectstroke{ + gsave newpath dup type /arraytype eq{dup length 6 eq}{false}ifelse{ + {gsave __NXRectPath null concat stroke grestore} + dup length array cvx copy dup 2 4 -1 roll put __NXProcessRectArgs + }{{__NXRectPath stroke} __NXProcessRectArgs}ifelse grestore +}__NXbdef +/_NXLevel2 systemdict /languagelevel known {languagelevel 2 ge}{false}ifelse __NXdef +/xyshow{ + 0 1 3 index length 1 sub{ + currentpoint 4 index 3 index 1 getinterval show + 3 index 3 index 2 mul 1 add get add exch + 3 index 3 index 2 mul get add exch moveto pop + }for pop pop +}__NXbdef +/xshow{ + 0 1 3 index length 1 sub{ + currentpoint 4 index 3 index 1 getinterval show + exch 3 index 3 index get add exch moveto pop + }for pop pop +}__NXbdef +/yshow{ + 0 1 3 index length 1 sub{ + currentpoint 4 index 3 index 1 getinterval show + 3 index 3 index get add moveto pop + }for pop pop +}__NXbdef +/arct{arcto pop pop pop pop}__NXbdef +/setbbox{pop pop pop pop}__NXbdef +/ucache{}__NXbdef +/ucachestatus{mark 0 0 0 0 0}__NXbdef +/setucacheparams{cleartomark}__NXbdef +/uappend{systemdict begin cvx exec end}__NXbdef +/ueofill{gsave newpath uappend eofill grestore}__NXbdef +/ufill{gsave newpath uappend fill grestore}__NXbdef +/ustroke{ + gsave newpath dup length 6 eq + {exch uappend concat}{uappend}ifelse + stroke grestore +}__NXbdef +/__NXustrokepathMatrix dup where {pop pop}{matrix def}ifelse +/ustrokepath{ + newpath dup length 6 eq{ + exch uappend __NXustrokepathMatrix currentmatrix exch concat + strokepath setmatrix + }{uappend strokepath}ifelse +} __NXbdef +/upath{ + [exch {/ucache cvx}if pathbbox /setbbox cvx + {/moveto cvx}{/lineto cvx}{/curveto cvx}{/closepath cvx}pathforall]cvx +} __NXbdef +/setstrokeadjust{pop}__NXbdef +/currentstrokeadjust{false}__NXbdef +/selectfont{exch findfont exch +dup type /arraytype eq {makefont}{scalefont}ifelse setfont}__NXbdef +/_NXCombineArrays{ + counttomark dup 2 add index dup length 3 -1 roll { + 2 index length sub dup 4 1 roll 1 index exch 4 -1 roll putinterval exch + }repeat pop pop pop +}__NXbdef +/flushgraphics{}def +/setwindowtype{pop pop}def +/currentwindowtype{pop 0}def +/setalpha{pop}def +/currentalpha{1.0}def +/hidecursor{}def +/obscurecursor{}def +/revealcursor{}def +/setcursor{4 {pop}repeat}bind def +/showcursor{}def +/NextStepEncoding where not{ +/NextStepEncoding StandardEncoding 256 array copy def +0 [129/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/Ccedilla/Egrave +/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis +/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/Ugrave/Uacute +/Ucircumflex/Udieresis/Yacute/Thorn/mu/multiply/divide/copyright +176/registered 181/brokenbar 190/logicalnot 192/onesuperior 201/twosuperior +204/threesuperior 209/plusminus/onequarter/onehalf/threequarters/agrave +/aacute/acircumflex/atilde/adieresis/aring/ccedilla/egrave/eacute +/ecircumflex/edieresis/igrave 226/iacute 228/icircumflex/idieresis/eth +/ntilde 236/ograve/oacute/ocircumflex/otilde/odieresis 242/ugrave/uacute +/ucircumflex 246/udieresis/yacute 252/thorn/ydieresis] +{dup type /nametype eq + {NextStepEncoding 2 index 2 index put pop 1 add}{exch pop}ifelse +}forall pop +/NextStepEncoding NextStepEncoding readonly def +/_NXfstr 128 string dup 0 (_NX) putinterval def +/_NXfindfont /findfont load def +/findfont{ + % Because we can never let NextStepEncoding get into + % SharedFontDirectory, we cannot reencode a font to NextStepEncoding + % if we are in shared mode. So if currentshared is true, + % we call the normal findfont and return that + /currentshared where {pop currentshared} {false} ifelse + {_NXfindfont} + {dup _NXfstr 3 125 getinterval cvs length 3 add _NXfstr 0 3 -1 roll + getinterval cvn exch FontDirectory 2 index known + {pop FontDirectory exch get} + {_NXfindfont dup /Encoding get StandardEncoding eq + { dup length dict exch + {1 index /FID ne {2 index 3 1 roll put}{pop pop}ifelse}forall + dup /Encoding NextStepEncoding put definefont + }{exch pop} ifelse + }ifelse + }ifelse +}bind def +}{pop}ifelse +/_NXImageString {/__NXImageString where{pop}{/__NXImageString 4000 string __NXdef}ifelse __NXImageString}__NXbdef +/_NXDoImageOp{ + 3 dict begin /parr 5 array def 1 index{dup}{1}ifelse /chans exch def + chans 2 add 2 roll parr 0 chans getinterval astore pop + 5 index 4 index mul 2 index{1 sub 8 idiv 1 add mul}{mul 1 sub 8 idiv 1 add}ifelse + 4 index mul /totbytes exch def pop exch pop + gsave matrix invertmatrix concat 0.5 setgray 0 0 4 2 roll rectfill grestore + {0 1 chans 1 sub{parr exch get exec length totbytes exch sub /totbytes exch def}for totbytes 0 le{exit}if}loop end +}__NXbdef +/alphaimage{1 add _NXDoImageOp}def +_NXLevel2{ + /NXCalibratedRGBColorSpace where{pop}{ + /NXCalibratedRGBColorSpace + {mark /NXCalibratedRGB /ColorSpace findresource exch pop}stopped + {cleartomark /NXCalibratedRGB[/CIEBasedABC 2 dict dup begin + /MatrixLMN[.4124 .2126 .0193 .3576 .7152 .1192 .1805 .0722 .9505]def + /WhitePoint[.9505 1 1.089] def end] /ColorSpace defineresource}if def}ifelse + /nxsetrgbcolor{NXCalibratedRGBColorSpace setcolorspace setcolor}__NXbdef + /nxsetgray{dup dup nxsetrgbcolor}__NXbdef + /_NXCalibratedImage{exch{array astore dup length true}{false}ifelse + 8 -1 roll{NXCalibratedRGBColorSpace setcolorspace}if + 8 dict dup 9 1 roll begin /ImageType 1 def /MultipleDataSources exch def + currentcolorspace 0 get /Indexed eq{pop /Decode[0 2 6 index exp 1 sub]def} + {2 mul dup array /Decode exch def 1 sub 0 1 3 -1 roll{Decode exch dup 2 mod put}for}ifelse + /DataSource exch def /ImageMatrix exch def + /BitsPerComponent exch def /Height exch def /Width exch def end image}__NXbdef +} { + /setcmykcolor{ + 1.0 exch sub dup dup 6 -1 roll sub dup 0 lt{pop 0}if 5 1 roll + 4 -1 roll sub dup 0 lt{pop 0}if 3 1 roll exch sub dup 0 lt{pop 0}if setrgbcolor}__NXbdef + /currentcmykcolor{currentrgbcolor 3{1.0 exch sub 3 1 roll}repeat 0}__NXbdef + /colorimage{2 copy 3 ne or{_NXDoImageOp}{4 index dup 8 ne exch 4 ne and{_NXDoImageOp}{ + pop pop save 6 1 roll 12 dict begin/Proc exch def/Res 0 string def + /Alloc{2 index length mul 2 add dup 2 index load length gt{1.2 mul round cvi string def}{pop pop}ifelse}def + 1 index 8 eq{/Unpack{.34 Alloc}def}{ + /Wid 4 index 3 mul def exch pop 8 exch/Str1 0 string def/Lim Wid def + /Unpack{.67 Alloc/Str1 2 Alloc 0 exch Lim exch + {dup -4 bitshift 17 mul Str1 exch 4 index exch put 15 and 17 mul Str1 exch 3 index 1 add exch put + 2 sub dup 0 le{0 lt Wid exch{exch 1 sub exch}if}if exch 2 add exch + }forall/Lim exch def Str1 exch 0 exch getinterval + }def + }ifelse + /Ops[{.3 mul add 1}{.59 mul add 2}{.11 mul add round cvi Res exch 2 index exch put 1 add 0.0 0}]def/Val 0.0 def/Phase 0 def + {0 Val Phase Proc/Res Unpack{exch Ops exch get exec}forall/Phase exch def/Val exch def Res exch 0 exch getinterval} + image end restore}ifelse}ifelse + }__NXbdef + /nxsetrgbcolor{setrgbcolor}__NXbdef /nxsetgray{setgray}__NXbdef + /setpattern{pop .5 setgray}__NXbdef + /_NXCalibratedImage{dup 1 eq {pop pop image}{colorimage}ifelse pop}__NXbdef +} ifelse +/_NXSetCMYKOrRGB where{pop}{ + mark{systemdict /currentwindow get exec}stopped + {{pop pop pop setcmykcolor}}{{nxsetrgbcolor pop pop pop pop}}ifelse /_NXSetCMYKOrRGB exch def cleartomark +}ifelse +%%EndProcSet + +gsave + /__NXbasematrix matrix currentmatrix def +grestore +%%EndProlog +%%BeginSetup +%%EndSetup +gsave +0 0 488 549 rectclip +[1 0 0 -1 -26.5 567] concat +26.5 18 487 549 rectclip +gsave +36 306 306 261 rectclip +0 nxsetgray +1 setlinewidth +[6] 1 setdash +36.5 306.5 305 260 rectstroke +grestore +0.333338 nxsetgray +gsave +0.333338 nxsetgray +newpath +systemdict +begin +58 418 166 472 setbbox +68.800003 418 moveto +155.200012 428.799988 10.8 -90 0 arc +155.200012 461.199982 10.8 0 90 arc +68.800003 461.199982 10.8 90 180 arc +68.800003 428.799988 10.8 180 270 arc +closepath +end +clip +newpath +1 setlinewidth +gsave +newpath +systemdict +begin +58 418 166 472 setbbox +69.300003 418.5 moveto +154.700012 429.299988 10.8 -90 0 arc +154.700012 460.699982 10.8 0 90 arc +69.300003 460.699982 10.8 90 180 arc +69.300003 429.299988 10.8 180 270 arc +closepath +end +stroke +grestore +grestore +gsave +newpath +systemdict +begin +58 418 166 472 setbbox +69.300003 419 moveto +154.700012 429.299988 10.3 -90 0 arc +154.700012 460.699982 10.3 0 90 arc +69.300003 460.699982 10.3 90 180 arc +69.300003 429.299988 10.3 180 270 arc +closepath +end +fill +grestore +1 nxsetgray +gsave +newpath +systemdict +begin +54 414 162 468 setbbox +65.300003 415 moveto +150.700012 425.299988 10.3 -90 0 arc +150.700012 456.699982 10.3 0 90 arc +65.300003 456.699982 10.3 90 180 arc +65.300003 425.299988 10.3 180 270 arc +closepath +end +fill +grestore +gsave +newpath +systemdict +begin +54 414 162 468 setbbox +64.800003 414 moveto +151.200012 424.799988 10.8 -90 0 arc +151.200012 457.199982 10.8 0 90 arc +64.800003 457.199982 10.8 90 180 arc +64.800003 424.799988 10.8 180 270 arc +closepath +end +clip +newpath +0 nxsetgray +1 setlinewidth +gsave +newpath +systemdict +begin +54 414 162 468 setbbox +65.300003 414.5 moveto +150.700012 425.299988 10.8 -90 0 arc +150.700012 456.699982 10.8 0 90 arc +65.300003 456.699982 10.8 90 180 arc +65.300003 425.299988 10.8 180 270 arc +closepath +end +stroke +grestore +grestore +gsave +/Helvetica findfont 12 scalefont [1 0 0 -1 0 0] makefont +8 +exch +defineuserobject +8 execuserobject setfont +0 nxsetgray +8 execuserobject setfont +0 nxsetgray +84 430 moveto (Interface) show +85 445 moveto (Receive) show +84 460 moveto (Daemon) show +grestore +0.333338 nxsetgray +gsave +0.333338 nxsetgray +newpath +systemdict +begin +193 418 301 472 setbbox +203.800003 418 moveto +290.200012 428.799988 10.8 -90 0 arc +290.200012 461.199982 10.8 0 90 arc +203.800003 461.199982 10.8 90 180 arc +203.800003 428.799988 10.8 180 270 arc +closepath +end +clip +newpath +1 setlinewidth +gsave +newpath +systemdict +begin +193 418 301 472 setbbox +204.300003 418.5 moveto +289.700012 429.299988 10.8 -90 0 arc +289.700012 460.699982 10.8 0 90 arc +204.300003 460.699982 10.8 90 180 arc +204.300003 429.299988 10.8 180 270 arc +closepath +end +stroke +grestore +grestore +gsave +newpath +systemdict +begin +193 418 301 472 setbbox +204.300003 419 moveto +289.700012 429.299988 10.3 -90 0 arc +289.700012 460.699982 10.3 0 90 arc +204.300003 460.699982 10.3 90 180 arc +204.300003 429.299988 10.3 180 270 arc +closepath +end +fill +grestore +1 nxsetgray +gsave +newpath +systemdict +begin +189 414 297 468 setbbox +200.300003 415 moveto +285.700012 425.299988 10.3 -90 0 arc +285.700012 456.699982 10.3 0 90 arc +200.300003 456.699982 10.3 90 180 arc +200.300003 425.299988 10.3 180 270 arc +closepath +end +fill +grestore +gsave +newpath +systemdict +begin +189 414 297 468 setbbox +199.800003 414 moveto +286.200012 424.799988 10.8 -90 0 arc +286.200012 457.199982 10.8 0 90 arc +199.800003 457.199982 10.8 90 180 arc +199.800003 424.799988 10.8 180 270 arc +closepath +end +clip +newpath +0 nxsetgray +1 setlinewidth +gsave +newpath +systemdict +begin +189 414 297 468 setbbox +200.300003 414.5 moveto +285.700012 425.299988 10.8 -90 0 arc +285.700012 456.699982 10.8 0 90 arc +200.300003 456.699982 10.8 90 180 arc +200.300003 425.299988 10.8 180 270 arc +closepath +end +stroke +grestore +grestore +gsave +8 execuserobject setfont +0 nxsetgray +8 execuserobject setfont +0 nxsetgray +219 430 moveto (Interface) show +219 445 moveto (Transmit) show +219 460 moveto (Daemon) show +grestore +0.333338 nxsetgray +gsave +0.333338 nxsetgray +newpath +systemdict +begin +184 328 310 382 setbbox +184 328 moveto +100.800003 0 rlineto +25.200001 54 rlineto +-100.800003 0 rlineto +closepath +end +clip +newpath +1 setlinewidth +gsave +newpath +systemdict +begin +184.5 328.5 309.5 381.5 setbbox +184.5 328.5 moveto +100 0 rlineto +25 53 rlineto +-100 0 rlineto +closepath +end +stroke +grestore +grestore +gsave +newpath +systemdict +begin +185 329 309 381 setbbox +185 329 moveto +99.199997 0 rlineto +24.799999 52 rlineto +-99.199997 0 rlineto +closepath +end +fill +grestore +1 nxsetgray +gsave +newpath +systemdict +begin +181 325 305 377 setbbox +181 325 moveto +99.199997 0 rlineto +24.799999 52 rlineto +-99.199997 0 rlineto +closepath +end +fill +grestore +gsave +newpath +systemdict +begin +180 324 306 378 setbbox +180 324 moveto +100.800003 0 rlineto +25.200001 54 rlineto +-100.800003 0 rlineto +closepath +end +clip +newpath +0 nxsetgray +1 setlinewidth +gsave +newpath +systemdict +begin +180.5 324.5 305.5 377.5 setbbox +180.5 324.5 moveto +100 0 rlineto +25 53 rlineto +-100 0 rlineto +closepath +end +stroke +grestore +grestore +gsave +8 execuserobject setfont +0 nxsetgray +8 execuserobject setfont +0 nxsetgray +219 340.5 moveto (Interface) show +224 355.5 moveto (Output) show +224 370.5 moveto (Queue) show +grestore +0.333338 nxsetgray +gsave +0.333338 nxsetgray +193 184 108 54 rectclip +1 setlinewidth +193.5 184.5 107 53 rectstroke +grestore +194 185 106 52 rectfill +1 nxsetgray +190 181 106 52 rectfill +gsave +189 180 108 54 rectclip +0 nxsetgray +1 setlinewidth +189.5 180.5 107 53 rectstroke +grestore +gsave +8 execuserobject setfont +0 nxsetgray +8 execuserobject setfont +0 nxsetgray +220 204 moveto (Network) show +228 219 moveto (Code) show +grestore +0 nxsetgray +1 setlinewidth +2 setlinejoin +gsave +newpath +systemdict +begin +242.999969 234 243.000031 316.299988 setbbox +243.000031 234 moveto +242.999969 316.299988 lineto +end +stroke +grestore +0 setlinejoin +gsave +[0 1 -1 0 567 81.000031] concat +gsave +newpath +systemdict +begin +233.799973 319.5 242.999969 328.5 setbbox +242.999969 324 moveto +-9.2 4.5 rlineto +1.5 -4.5 rlineto +-1.5 -4.5 rlineto +closepath +end +fill +grestore +grestore +0 nxsetgray +1 setlinewidth +2 setlinejoin +gsave +newpath +systemdict +begin +242.999985 378 243.000031 406.299988 setbbox +243.000031 378 moveto +242.999985 406.299988 lineto +end +stroke +grestore +0 setlinejoin +gsave +[0 1 -1 0 657 171.000031] concat +gsave +newpath +systemdict +begin +233.799973 409.5 242.999969 418.5 setbbox +242.999969 414 moveto +-9.2 4.5 rlineto +1.5 -4.5 rlineto +-1.5 -4.5 rlineto +closepath +end +fill +grestore +grestore +0.333338 nxsetgray +gsave +0.333338 nxsetgray +newpath +systemdict +begin +193 22 301 76 setbbox +203.800003 22 moveto +290.200012 32.799999 10.8 -90 0 arc +290.200012 65.199997 10.8 0 90 arc +203.800003 65.199997 10.8 90 180 arc +203.800003 32.799999 10.8 180 270 arc +closepath +end +clip +newpath +1 setlinewidth +gsave +newpath +systemdict +begin +193 22 301 76 setbbox +204.300003 22.5 moveto +289.700012 33.299999 10.8 -90 0 arc +289.700012 64.699997 10.8 0 90 arc +204.300003 64.699997 10.8 90 180 arc +204.300003 33.299999 10.8 180 270 arc +closepath +end +stroke +grestore +grestore +gsave +newpath +systemdict +begin +193 22 301 76 setbbox +204.300003 23 moveto +289.700012 33.299999 10.3 -90 0 arc +289.700012 64.699997 10.3 0 90 arc +204.300003 64.699997 10.3 90 180 arc +204.300003 33.299999 10.3 180 270 arc +closepath +end +fill +grestore +1 nxsetgray +gsave +newpath +systemdict +begin +189 18 297 72 setbbox +200.300003 19 moveto +285.700012 29.299999 10.3 -90 0 arc +285.700012 60.699997 10.3 0 90 arc +200.300003 60.699997 10.3 90 180 arc +200.300003 29.299999 10.3 180 270 arc +closepath +end +fill +grestore +gsave +newpath +systemdict +begin +189 18 297 72 setbbox +199.800003 18 moveto +286.200012 28.799999 10.8 -90 0 arc +286.200012 61.200001 10.8 0 90 arc +199.800003 61.200001 10.8 90 180 arc +199.800003 28.799999 10.8 180 270 arc +closepath +end +clip +newpath +0 nxsetgray +1 setlinewidth +gsave +newpath +systemdict +begin +189 18 297 72 setbbox +200.300003 18.5 moveto +285.700012 29.299999 10.8 -90 0 arc +285.700012 60.699997 10.8 0 90 arc +200.300003 60.699997 10.8 90 180 arc +200.300003 29.299999 10.8 180 270 arc +closepath +end +stroke +grestore +grestore +gsave +8 execuserobject setfont +0 nxsetgray +8 execuserobject setfont +0 nxsetgray +229 34 moveto (User) show +213 49 moveto (Application) show +229 64 moveto (Task) show +grestore +0.333338 nxsetgray +gsave +0.333338 nxsetgray +newpath +systemdict +begin +346 121 472 175 setbbox +346 121 moveto +100.800003 0 rlineto +25.200001 54 rlineto +-100.800003 0 rlineto +closepath +end +clip +newpath +1 setlinewidth +gsave +newpath +systemdict +begin +346.5 121.5 471.5 174.5 setbbox +346.5 121.5 moveto +100 0 rlineto +25 53 rlineto +-100 0 rlineto +closepath +end +stroke +grestore +grestore +gsave +newpath +systemdict +begin +347 122 471 174 setbbox +347 122 moveto +99.199997 0 rlineto +24.799999 52 rlineto +-99.199997 0 rlineto +closepath +end +fill +grestore +1 nxsetgray +gsave +newpath +systemdict +begin +343 118 467 170 setbbox +343 118 moveto +99.199997 0 rlineto +24.799999 52 rlineto +-99.199997 0 rlineto +closepath +end +fill +grestore +gsave +newpath +systemdict +begin +342 117 468 171 setbbox +342 117 moveto +100.800003 0 rlineto +25.200001 54 rlineto +-100.800003 0 rlineto +closepath +end +clip +newpath +0 nxsetgray +1 setlinewidth +gsave +newpath +systemdict +begin +342.5 117.5 467.5 170.5 setbbox +342.5 117.5 moveto +100 0 rlineto +25 53 rlineto +-100 0 rlineto +closepath +end +stroke +grestore +grestore +gsave +8 execuserobject setfont +0 nxsetgray +8 execuserobject setfont +0 nxsetgray +386 133.5 moveto (Socket) show +382 148.5 moveto (Receive) show +384 163.5 moveto ( Queue) show +grestore +0.333338 nxsetgray +gsave +0.333338 nxsetgray +newpath +systemdict +begin +373 418 481 472 setbbox +383.799988 418 moveto +470.199982 428.799988 10.8 -90 0 arc +470.199982 461.199982 10.8 0 90 arc +383.799988 461.199982 10.8 90 180 arc +383.799988 428.799988 10.8 180 270 arc +closepath +end +clip +newpath +1 setlinewidth +gsave +newpath +systemdict +begin +373 418 481 472 setbbox +384.299988 418.5 moveto +469.699982 429.299988 10.8 -90 0 arc +469.699982 460.699982 10.8 0 90 arc +384.299988 460.699982 10.8 90 180 arc +384.299988 429.299988 10.8 180 270 arc +closepath +end +stroke +grestore +grestore +gsave +newpath +systemdict +begin +373 418 481 472 setbbox +384.299988 419 moveto +469.699982 429.299988 10.3 -90 0 arc +469.699982 460.699982 10.3 0 90 arc +384.299988 460.699982 10.3 90 180 arc +384.299988 429.299988 10.3 180 270 arc +closepath +end +fill +grestore +1 nxsetgray +gsave +newpath +systemdict +begin +369 414 477 468 setbbox +380.299988 415 moveto +465.699982 425.299988 10.3 -90 0 arc +465.699982 456.699982 10.3 0 90 arc +380.299988 456.699982 10.3 90 180 arc +380.299988 425.299988 10.3 180 270 arc +closepath +end +fill +grestore +gsave +newpath +systemdict +begin +369 414 477 468 setbbox +379.799988 414 moveto +466.199982 424.799988 10.8 -90 0 arc +466.199982 457.199982 10.8 0 90 arc +379.799988 457.199982 10.8 90 180 arc +379.799988 424.799988 10.8 180 270 arc +closepath +end +clip +newpath +0 nxsetgray +1 setlinewidth +gsave +newpath +systemdict +begin +369 414 477 468 setbbox +380.299988 414.5 moveto +465.699982 425.299988 10.8 -90 0 arc +465.699982 456.699982 10.8 0 90 arc +380.299988 456.699982 10.8 90 180 arc +380.299988 425.299988 10.8 180 270 arc +closepath +end +stroke +grestore +grestore +gsave +8 execuserobject setfont +0 nxsetgray +8 execuserobject setfont +0 nxsetgray +400 437.5 moveto (Network) show +399 452.5 moveto (Daemon) show +grestore +0.333338 nxsetgray +gsave +0.333338 nxsetgray +67 499 90 45 rectclip +1 setlinewidth +67.5 499.5 89 44 rectstroke +grestore +68 500 88 43 rectfill +1 nxsetgray +64 496 88 43 rectfill +gsave +63 495 90 45 rectclip +0 nxsetgray +1 setlinewidth +63.5 495.5 89 44 rectstroke +grestore +gsave +8 execuserobject setfont +0 nxsetgray +8 execuserobject setfont +0 nxsetgray +86 508 moveto (Receive) show +85 523 moveto (Interrupt) show +gsave +66 496 84 43 rectclip +86 538 moveto (Handler) show +grestore +grestore +0.333338 nxsetgray +gsave +0.333338 nxsetgray +202 499 90 45 rectclip +1 setlinewidth +202.5 499.5 89 44 rectstroke +grestore +203 500 88 43 rectfill +1 nxsetgray +199 496 88 43 rectfill +gsave +198 495 90 45 rectclip +0 nxsetgray +1 setlinewidth +198.5 495.5 89 44 rectstroke +grestore +gsave +8 execuserobject setfont +0 nxsetgray +8 execuserobject setfont +0 nxsetgray +219 508 moveto (Transmit) show +220 523 moveto (Interrupt) show +gsave +201 496 84 43 rectclip +221 538 moveto (Handler) show +grestore +grestore +0 nxsetgray +1 setlinewidth +2 setlinejoin +[1 6] 1 setdash +gsave +newpath +systemdict +begin +108.000023 475.700012 108.000031 495 setbbox +108.000023 495 moveto +108.000031 475.700012 lineto +end +stroke +grestore +[] 0 setdash +0 setlinejoin +gsave +[0 -1 1 0 -359.999969 576] concat +gsave +newpath +systemdict +begin +98.800034 463.5 108.000031 472.5 setbbox +108.000031 468 moveto +-9.2 4.5 rlineto +1.5 -4.5 rlineto +-1.5 -4.5 rlineto +closepath +end +fill +grestore +grestore +0 nxsetgray +1 setlinewidth +2 setlinejoin +[1 6] 1 setdash +gsave +newpath +systemdict +begin +243.000015 475.700012 243.000031 495 setbbox +243.000015 495 moveto +243.000031 475.700012 lineto +end +stroke +grestore +[] 0 setdash +0 setlinejoin +gsave +[0 -1 1 0 -224.999969 711] concat +gsave +newpath +systemdict +begin +233.800034 463.5 243.000031 472.5 setbbox +243.000031 468 moveto +-9.2 4.5 rlineto +1.5 -4.5 rlineto +-1.5 -4.5 rlineto +closepath +end +fill +grestore +grestore +0 nxsetgray +1 setlinewidth +2 setlinejoin +[6] 1 setdash +gsave +newpath +systemdict +begin +27 90 513 90 setbbox +27 90 moveto +513 90 lineto +end +stroke +grestore +[] 0 setdash +0 setlinejoin +0 nxsetgray +1 setlinewidth +2 setlinejoin +gsave +newpath +systemdict +begin +304.700012 45 405.000031 117 setbbox +405.000031 117 moveto +405 45 lineto +304.700012 45 lineto +end +stroke +grestore +0 setlinejoin +gsave +[-1 0 0 -1 594 90] concat +gsave +newpath +systemdict +begin +287.799988 40.5 297 49.5 setbbox +297 45 moveto +-9.2 4.5 rlineto +1.5 -4.5 rlineto +-1.5 -4.5 rlineto +closepath +end +fill +grestore +grestore +0 nxsetgray +1 setlinewidth +2 setlinejoin +gsave +newpath +systemdict +begin +297 178.699997 405.000031 207 setbbox +297 207 moveto +315 207 lineto +405 207 lineto +405.000031 178.699997 lineto +end +stroke +grestore +0 setlinejoin +gsave +[0 -1 1 0 234.000031 576] concat +gsave +newpath +systemdict +begin +395.800018 166.5 405.000031 175.5 setbbox +405.000031 171 moveto +-9.2 4.5 rlineto +1.5 -4.5 rlineto +-1.5 -4.5 rlineto +closepath +end +fill +grestore +grestore +0.333338 nxsetgray +gsave +0.333338 nxsetgray +newpath +systemdict +begin +400 247 472 301 setbbox +472 295.600006 moveto +0 -43.200001 rlineto +472 249.419205 455.872009 247 436 247 curveto +416.127991 247 400 249.419205 400 252.399994 curveto +0 43.200001 rlineto +400 298.580811 416.127991 301 436 301 curveto +455.872009 301 472 298.580811 472 295.600006 curveto +closepath +end +clip +newpath +1 setlinewidth +gsave +newpath +systemdict +begin +400.5 247.5 471.5 300.5 setbbox +471.5 295.200012 moveto +0 -42.400002 rlineto +471.5 249.874405 455.596008 247.5 436 247.5 curveto +416.403992 247.5 400.5 249.874405 400.5 252.800003 curveto +0 42.400002 rlineto +400.5 298.12558 416.403992 300.5 436 300.5 curveto +455.596008 300.5 471.5 298.12558 471.5 295.199982 curveto +closepath +end +stroke +grestore +gsave +newpath +systemdict +begin +400.5 247.5 471.5 300.5 setbbox +471.5 252.800003 moveto +471.5 255.725601 455.596008 258.100006 436 258.100006 curveto +416.403992 258.100006 400.5 255.725601 400.5 252.800003 curveto +end +stroke +grestore +grestore +gsave +newpath +systemdict +begin +401 248 471 300 setbbox +471 294.799988 moveto +0 -41.599998 rlineto +471 250.329605 455.320007 248 436 248 curveto +416.679993 248 401 250.329605 401 253.199997 curveto +0 41.599998 rlineto +401 297.67041 416.679993 300 436 300 curveto +455.320007 300 471 297.67041 471 294.800018 curveto +closepath +end +fill +grestore +1 nxsetgray +gsave +newpath +systemdict +begin +397 244 467 296 setbbox +467 290.799988 moveto +0 -41.599998 rlineto +467 246.329605 451.320007 244 432 244 curveto +412.679993 244 397 246.329605 397 249.199997 curveto +0 41.599998 rlineto +397 293.67041 412.679993 296 432 296 curveto +451.320007 296 467 293.67041 467 290.800018 curveto +closepath +end +fill +grestore +gsave +newpath +systemdict +begin +396 243 468 297 setbbox +468 291.600006 moveto +0 -43.200001 rlineto +468 245.419205 451.872009 243 432 243 curveto +412.127991 243 396 245.419205 396 248.399994 curveto +0 43.200001 rlineto +396 294.580811 412.127991 297 432 297 curveto +451.872009 297 468 294.580811 468 291.600006 curveto +closepath +end +clip +newpath +0 nxsetgray +1 setlinewidth +gsave +newpath +systemdict +begin +396.5 243.5 467.5 296.5 setbbox +467.5 291.200012 moveto +0 -42.400002 rlineto +467.5 245.874405 451.596008 243.5 432 243.5 curveto +412.403992 243.5 396.5 245.874405 396.5 248.800003 curveto +0 42.400002 rlineto +396.5 294.12558 412.403992 296.5 432 296.5 curveto +451.596008 296.5 467.5 294.12558 467.5 291.199982 curveto +closepath +end +stroke +grestore +gsave +newpath +systemdict +begin +396.5 243.5 467.5 296.5 setbbox +467.5 248.800003 moveto +467.5 251.725601 451.596008 254.100006 432 254.100006 curveto +412.403992 254.100006 396.5 251.725601 396.5 248.800003 curveto +end +stroke +grestore +grestore +gsave +8 execuserobject setfont +0 nxsetgray +8 execuserobject setfont +0 nxsetgray +411 266 moveto (Routing) show +416 281 moveto (Table) show +grestore +0 nxsetgray +1 setlinewidth +2 setlinejoin +gsave +newpath +systemdict +begin +304.304871 227.434952 388.695129 255.565048 setbbox +304.304871 227.434952 moveto +388.695129 255.565048 lineto +end +stroke +grestore +0 setlinejoin +gsave +[-0.948683 -0.316228 0.316228 -0.948683 507.607697 532.373413] concat +gsave +newpath +systemdict +begin +287.799988 220.5 297 229.5 setbbox +297 225 moveto +-9.2 4.5 rlineto +1.5 -4.5 rlineto +-1.5 -4.5 rlineto +closepath +end +fill +grestore +grestore +gsave +[0.948683 0.316228 -0.316228 0.948683 101.908165 -111.986488] concat +gsave +newpath +systemdict +begin +386.799988 253.5 396 262.5 setbbox +396 258 moveto +-9.2 4.5 rlineto +1.5 -4.5 rlineto +-1.5 -4.5 rlineto +closepath +end +fill +grestore +grestore +0 nxsetgray +1 setlinewidth +2 setlinejoin +gsave +newpath +systemdict +begin +242.999969 72 243.000031 172.300003 setbbox +243.000031 72 moveto +242.999969 172.300003 lineto +end +stroke +grestore +0 setlinejoin +gsave +[0 1 -1 0 422.999969 -62.999969] concat +gsave +newpath +systemdict +begin +233.799973 175.5 242.999969 184.5 setbbox +242.999969 180 moveto +-9.2 4.5 rlineto +1.5 -4.5 rlineto +-1.5 -4.5 rlineto +closepath +end +fill +grestore +grestore +0 nxsetgray +1 setlinewidth +2 setlinejoin +gsave +newpath +systemdict +begin +108 207 181.300003 414 setbbox +108.000031 414 moveto +108 207 lineto +181.300003 207 lineto +end +stroke +grestore +0 setlinejoin +gsave +[1 0 0 1 0 0] concat +gsave +newpath +systemdict +begin +179.800003 202.5 189 211.5 setbbox +189 207 moveto +-9.2 4.5 rlineto +1.5 -4.5 rlineto +-1.5 -4.5 rlineto +closepath +end +fill +grestore +grestore +grestore +%%Trailer +%%DocumentFonts: Helvetica diff --git a/doc/networking/networkflow.pdf b/doc/networking/networkflow.pdf new file mode 100644 index 0000000000000000000000000000000000000000..eadfd9ccc7960741b8ad6eeaac9e12e3ef0e9ec4 GIT binary patch literal 1231059 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 YVT&nr^g|}q0D^d`&tEE)J+%z}Zw^bXeE