aboutsummaryrefslogtreecommitdiff
path: root/docs/driver_library_sequence.svg
diff options
context:
space:
mode:
Diffstat (limited to 'docs/driver_library_sequence.svg')
-rw-r--r--docs/driver_library_sequence.svg18
1 files changed, 4 insertions, 14 deletions
diff --git a/docs/driver_library_sequence.svg b/docs/driver_library_sequence.svg
index 1103a05..b1ac54c 100644
--- a/docs/driver_library_sequence.svg
+++ b/docs/driver_library_sequence.svg
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1083px" preserveAspectRatio="none" style="width:831px;height:1083px;background:#FEFEFE;" version="1.1" viewBox="0 0 831 1083" width="831px" zoomAndPan="magnify"><defs><filter height="300%" id="f528w0w85mfwd" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#0091BD" height="1068.3125" style="stroke: #A80036; stroke-width: 1.0;" width="89" x="9" y="4"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="83" x="12" y="16.0669">Application</text><rect fill="#00C1DE" height="1068.3125" style="stroke: #A80036; stroke-width: 1.0;" width="389" x="109" y="4"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="96" x="255.5" y="16.0669">Driver library</text><rect fill="#7D868C" height="1068.3125" style="stroke: #A80036; stroke-width: 1.0;" width="320" x="500" y="4"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="95" x="612.5" y="16.0669">Kernel driver</text><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="956.5859" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="48.5" y="68.4297"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="72.3984" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="140.5" y="128.5625"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="72.3984" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="212.5" y="269.0938"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="72.3984" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="212.5" y="577.2891"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="72.3984" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="212.5" y="709.8203"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="114.5313" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="289.5" y="409.625"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="72.3984" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="447.5" y="857.3516"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="57.2656" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="447.5" y="958.75"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="531.5" y="157.6953"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="603.5" y="298.2266"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="603.5" y="606.4219"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="603.5" y="738.9531"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="680.5" y="438.7578"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="769.5" y="886.4844"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="14.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="769.5" y="987.8828"/><rect fill="#FEFEFE" filter="url(#f528w0w85mfwd)" height="118.5313" style="stroke: #000000; stroke-width: 2.0;" width="635" x="13" y="539.1563"/><rect fill="#FEFEFE" filter="url(#f528w0w85mfwd)" height="118.5313" style="stroke: #000000; stroke-width: 2.0;" width="635" x="13" y="671.6875"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="53" x2="53" y1="58.4297" y2="1034.0156"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="145" x2="145" y1="58.4297" y2="1034.0156"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="217" x2="217" y1="58.4297" y2="1034.0156"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="294" x2="294" y1="58.4297" y2="1034.0156"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="452" x2="452" y1="58.4297" y2="1034.0156"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="536" x2="536" y1="58.4297" y2="1034.0156"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="608" x2="608" y1="58.4297" y2="1034.0156"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="685" x2="685" y1="58.4297" y2="1034.0156"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="774" x2="774" y1="58.4297" y2="1034.0156"/><rect fill="#FEFECE" filter="url(#f528w0w85mfwd)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="57" x="23" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="43" x="30" y="43.1279">main()</text><rect fill="#FEFECE" filter="url(#f528w0w85mfwd)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="57" x="23" y="1033.0156"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="43" x="30" y="1053.0107">main()</text><rect fill="#FEFECE" filter="url(#f528w0w85mfwd)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="113" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="120" y="43.1279">Device</text><rect fill="#FEFECE" filter="url(#f528w0w85mfwd)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="113" y="1033.0156"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="120" y="1053.0107">Device</text><rect fill="#FEFECE" filter="url(#f528w0w85mfwd)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="55" x="188" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="41" x="195" y="43.1279">Buffer</text><rect fill="#FEFECE" filter="url(#f528w0w85mfwd)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="55" x="188" y="1033.0156"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="41" x="195" y="1053.0107">Buffer</text><rect fill="#FEFECE" filter="url(#f528w0w85mfwd)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="71" x="257" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="57" x="264" y="43.1279">Network</text><rect fill="#FEFECE" filter="url(#f528w0w85mfwd)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="71" x="257" y="1033.0156"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="57" x="264" y="1053.0107">Network</text><rect fill="#FEFECE" filter="url(#f528w0w85mfwd)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="79" x="411" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="65" x="418" y="43.1279">Inference</text><rect fill="#FEFECE" filter="url(#f528w0w85mfwd)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="79" x="411" y="1033.0156"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="65" x="418" y="1053.0107">Inference</text><rect fill="#FEFECE" filter="url(#f528w0w85mfwd)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="504" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="511" y="43.1279">Device</text><rect fill="#FEFECE" filter="url(#f528w0w85mfwd)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="504" y="1033.0156"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="511" y="1053.0107">Device</text><rect fill="#FEFECE" filter="url(#f528w0w85mfwd)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="55" x="579" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="41" x="586" y="43.1279">Buffer</text><rect fill="#FEFECE" filter="url(#f528w0w85mfwd)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="55" x="579" y="1033.0156"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="41" x="586" y="1053.0107">Buffer</text><rect fill="#FEFECE" filter="url(#f528w0w85mfwd)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="71" x="648" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="57" x="655" y="43.1279">Network</text><rect fill="#FEFECE" filter="url(#f528w0w85mfwd)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="71" x="648" y="1033.0156"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="57" x="655" y="1053.0107">Network</text><rect fill="#FEFECE" filter="url(#f528w0w85mfwd)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="79" x="733" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="65" x="740" y="43.1279">Inference</text><rect fill="#FEFECE" filter="url(#f528w0w85mfwd)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="79" x="733" y="1033.0156"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="65" x="740" y="1053.0107">Inference</text><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="956.5859" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="48.5" y="68.4297"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="72.3984" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="140.5" y="128.5625"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="72.3984" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="212.5" y="269.0938"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="72.3984" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="212.5" y="577.2891"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="72.3984" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="212.5" y="709.8203"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="114.5313" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="289.5" y="409.625"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="72.3984" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="447.5" y="857.3516"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="57.2656" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="447.5" y="958.75"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="531.5" y="157.6953"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="603.5" y="298.2266"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="603.5" y="606.4219"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="603.5" y="738.9531"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="680.5" y="438.7578"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="769.5" y="886.4844"/><rect fill="#FFFFFF" filter="url(#f528w0w85mfwd)" height="14.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="769.5" y="987.8828"/><polygon fill="#FBFB77" filter="url(#f528w0w85mfwd)" points="89,73.4297,89,98.4297,198,98.4297,198,83.4297,188,73.4297,89,73.4297" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="188" x2="188" y1="73.4297" y2="83.4297"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="198" x2="188" y1="83.4297" y2="83.4297"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="88" x="95" y="90.4966">Create device</text><polygon fill="#A80036" points="128.5,124.5625,138.5,128.5625,128.5,132.5625,132.5,128.5625" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="58.5" x2="134.5" y1="128.5625" y2="128.5625"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="53" x="65.5" y="123.6294">Device()</text><polygon fill="#A80036" points="519.5,153.6953,529.5,157.6953,519.5,161.6953,523.5,157.6953" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="150.5" x2="525.5" y1="157.6953" y2="157.6953"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="141" x="157.5" y="152.7622">open(&lt;device node&gt;)</text><polygon fill="#A80036" points="161.5,182.8281,151.5,186.8281,161.5,190.8281,157.5,186.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="155.5" x2="535.5" y1="186.8281" y2="186.8281"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="167.5" y="181.895">file descriptor</text><polygon fill="#A80036" points="69.5,196.9609,59.5,200.9609,69.5,204.9609,65.5,200.9609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="63.5" x2="144.5" y1="200.9609" y2="200.9609"/><polygon fill="#FBFB77" filter="url(#f528w0w85mfwd)" points="186,213.9609,186,238.9609,398,238.9609,398,223.9609,388,213.9609,186,213.9609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="388" x2="388" y1="213.9609" y2="223.9609"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="398" x2="388" y1="223.9609" y2="223.9609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="191" x="192" y="231.0278">Allocate and fill network buffer</text><polygon fill="#A80036" points="200.5,265.0938,210.5,269.0938,200.5,273.0938,204.5,269.0938" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="58.5" x2="206.5" y1="269.0938" y2="269.0938"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="89" x="65.5" y="264.1606">Buffer(device)</text><polygon fill="#A80036" points="591.5,294.2266,601.5,298.2266,591.5,302.2266,595.5,298.2266" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="222.5" x2="597.5" y1="298.2266" y2="298.2266"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="141" x="229.5" y="293.2935">ioctl(BUFFER_CREATE)</text><polygon fill="#A80036" points="233.5,323.3594,223.5,327.3594,233.5,331.3594,229.5,327.3594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="227.5" x2="607.5" y1="327.3594" y2="327.3594"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="239.5" y="322.4263">file descriptor</text><polygon fill="#A80036" points="69.5,337.4922,59.5,341.4922,69.5,345.4922,65.5,341.4922" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="63.5" x2="216.5" y1="341.4922" y2="341.4922"/><polygon fill="#FBFB77" filter="url(#f528w0w85mfwd)" points="162,354.4922,162,379.4922,422,379.4922,422,364.4922,412,354.4922,162,354.4922" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="412" x2="412" y1="354.4922" y2="364.4922"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="422" x2="412" y1="364.4922" y2="364.4922"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="239" x="168" y="371.5591">Create network, parse network model</text><polygon fill="#A80036" points="277.5,405.625,287.5,409.625,277.5,413.625,281.5,409.625" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="58.5" x2="283.5" y1="409.625" y2="409.625"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="148" x="65.5" y="404.6919">Network(device, buffer)</text><polygon fill="#A80036" points="668.5,434.7578,678.5,438.7578,668.5,442.7578,672.5,438.7578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="299.5" x2="674.5" y1="438.7578" y2="438.7578"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="154" x="306.5" y="433.8247">ioctl(NETWORK_CREATE)</text><polygon fill="#A80036" points="310.5,463.8906,300.5,467.8906,310.5,471.8906,306.5,467.8906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="304.5" x2="684.5" y1="467.8906" y2="467.8906"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="316.5" y="462.9575">file descriptor</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="299.5" x2="341.5" y1="497.1563" y2="497.1563"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="341.5" x2="341.5" y1="497.1563" y2="510.1563"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="300.5" x2="341.5" y1="510.1563" y2="510.1563"/><polygon fill="#A80036" points="310.5,506.1563,300.5,510.1563,310.5,514.1563,306.5,510.1563" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="306.5" y="492.0903">Parse network model</text><polygon fill="#A80036" points="69.5,520.1563,59.5,524.1563,69.5,528.1563,65.5,524.1563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="63.5" x2="293.5" y1="524.1563" y2="524.1563"/><rect fill="none" height="118.5313" style="stroke: #000000; stroke-width: 2.0;" width="635" x="13" y="539.1563"/><polygon fill="#EEEEEE" points="13,539.1563,90,539.1563,90,546.1563,80,556.1563,13,556.1563,13,539.1563" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="28" y="552.2231">loop</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="188" x="105" y="551.3667">[Allocate and fill IFM buffers]</text><polygon fill="#A80036" points="200.5,573.2891,210.5,577.2891,200.5,581.2891,204.5,577.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="58.5" x2="206.5" y1="577.2891" y2="577.2891"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="89" x="65.5" y="572.356">Buffer(device)</text><polygon fill="#A80036" points="591.5,602.4219,601.5,606.4219,591.5,610.4219,595.5,606.4219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="222.5" x2="597.5" y1="606.4219" y2="606.4219"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="141" x="229.5" y="601.4888">ioctl(BUFFER_CREATE)</text><polygon fill="#A80036" points="233.5,631.5547,223.5,635.5547,233.5,639.5547,229.5,635.5547" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="227.5" x2="607.5" y1="635.5547" y2="635.5547"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="239.5" y="630.6216">file descriptor</text><polygon fill="#A80036" points="69.5,645.6875,59.5,649.6875,69.5,653.6875,65.5,649.6875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="63.5" x2="216.5" y1="649.6875" y2="649.6875"/><rect fill="none" height="118.5313" style="stroke: #000000; stroke-width: 2.0;" width="635" x="13" y="671.6875"/><polygon fill="#EEEEEE" points="13,671.6875,90,671.6875,90,678.6875,80,688.6875,13,688.6875,13,671.6875" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="28" y="684.7544">loop</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="145" x="105" y="683.8979">[Allocate OFM buffers]</text><polygon fill="#A80036" points="200.5,705.8203,210.5,709.8203,200.5,713.8203,204.5,709.8203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="58.5" x2="206.5" y1="709.8203" y2="709.8203"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="89" x="65.5" y="704.8872">Buffer(device)</text><polygon fill="#A80036" points="591.5,734.9531,601.5,738.9531,591.5,742.9531,595.5,738.9531" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="222.5" x2="597.5" y1="738.9531" y2="738.9531"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="141" x="229.5" y="734.02">ioctl(BUFFER_CREATE)</text><polygon fill="#A80036" points="233.5,764.0859,223.5,768.0859,233.5,772.0859,229.5,768.0859" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="227.5" x2="607.5" y1="768.0859" y2="768.0859"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="239.5" y="763.1528">file descriptor</text><polygon fill="#A80036" points="69.5,778.2188,59.5,782.2188,69.5,786.2188,65.5,782.2188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="63.5" x2="216.5" y1="782.2188" y2="782.2188"/><polygon fill="#FBFB77" filter="url(#f528w0w85mfwd)" points="360,802.2188,360,827.2188,540,827.2188,540,812.2188,530,802.2188,360,802.2188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="530" x2="530" y1="802.2188" y2="812.2188"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="540" x2="530" y1="812.2188" y2="812.2188"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="159" x="366" y="819.2856">Create and run inference</text><polygon fill="#A80036" points="435.5,853.3516,445.5,857.3516,435.5,861.3516,439.5,857.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="58.5" x2="441.5" y1="857.3516" y2="857.3516"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="180" x="65.5" y="852.4185">Inference(network, ifm, ofm)</text><polygon fill="#A80036" points="757.5,882.4844,767.5,886.4844,757.5,890.4844,761.5,886.4844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="457.5" x2="763.5" y1="886.4844" y2="886.4844"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="163" x="464.5" y="881.5513">ioctl(INFERENCE_CREATE)</text><polygon fill="#A80036" points="468.5,911.6172,458.5,915.6172,468.5,919.6172,464.5,915.6172" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="462.5" x2="773.5" y1="915.6172" y2="915.6172"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="474.5" y="910.6841">file descriptor</text><polygon fill="#A80036" points="69.5,925.75,59.5,929.75,69.5,933.75,65.5,929.75" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="63.5" x2="451.5" y1="929.75" y2="929.75"/><polygon fill="#A80036" points="435.5,954.75,445.5,958.75,435.5,962.75,439.5,958.75" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="58.5" x2="441.5" y1="958.75" y2="958.75"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="121" x="65.5" y="953.8169">wait(file descriptor)</text><polygon fill="#A80036" points="757.5,983.8828,767.5,987.8828,757.5,991.8828,761.5,987.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="457.5" x2="763.5" y1="987.8828" y2="987.8828"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="118" x="464.5" y="982.9497">poll(file descriptor)</text><polygon fill="#A80036" points="468.5,998.0156,458.5,1002.0156,468.5,1006.0156,464.5,1002.0156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="462.5" x2="773.5" y1="1002.0156" y2="1002.0156"/><polygon fill="#A80036" points="69.5,1012.0156,59.5,1016.0156,69.5,1020.0156,65.5,1016.0156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="63.5" x2="451.5" y1="1016.0156" y2="1016.0156"/><!--
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="942px" preserveAspectRatio="none" style="width:845px;height:942px;background:#FEFEFE;" version="1.1" viewBox="0 0 845 942" width="845px" zoomAndPan="magnify"><defs><filter height="300%" id="f105wwwd7nmw4q" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#0091BD" height="927.7813" style="stroke: #A80036; stroke-width: 1.0;" width="89" x="9" y="4"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="83" x="12" y="16.0669">Application</text><rect fill="#00C1DE" height="927.7813" style="stroke: #A80036; stroke-width: 1.0;" width="403" x="109" y="4"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="96" x="262.5" y="16.0669">Driver library</text><rect fill="#7D868C" height="927.7813" style="stroke: #A80036; stroke-width: 1.0;" width="320" x="514" y="4"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="95" x="626.5" y="16.0669">Kernel driver</text><rect fill="#FFFFFF" filter="url(#f105wwwd7nmw4q)" height="816.0547" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="48.5" y="68.4297"/><rect fill="#FFFFFF" filter="url(#f105wwwd7nmw4q)" height="72.2656" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="140.5" y="128.6953"/><rect fill="#FFFFFF" filter="url(#f105wwwd7nmw4q)" height="72.2656" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="212.5" y="436.8906"/><rect fill="#FFFFFF" filter="url(#f105wwwd7nmw4q)" height="72.2656" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="212.5" y="569.4219"/><rect fill="#FFFFFF" filter="url(#f105wwwd7nmw4q)" height="114.3984" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="303.5" y="269.2266"/><rect fill="#FFFFFF" filter="url(#f105wwwd7nmw4q)" height="72.2656" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="461.5" y="716.9531"/><rect fill="#FFFFFF" filter="url(#f105wwwd7nmw4q)" height="57.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="461.5" y="818.3516"/><rect fill="#FFFFFF" filter="url(#f105wwwd7nmw4q)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="545.5" y="157.8281"/><rect fill="#FFFFFF" filter="url(#f105wwwd7nmw4q)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="617.5" y="466.0234"/><rect fill="#FFFFFF" filter="url(#f105wwwd7nmw4q)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="617.5" y="598.5547"/><rect fill="#FFFFFF" filter="url(#f105wwwd7nmw4q)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="694.5" y="298.3594"/><rect fill="#FFFFFF" filter="url(#f105wwwd7nmw4q)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="783.5" y="746.0859"/><rect fill="#FFFFFF" filter="url(#f105wwwd7nmw4q)" height="14" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="783.5" y="847.4844"/><rect fill="#FEFEFE" filter="url(#f105wwwd7nmw4q)" height="118.5313" style="stroke: #000000; stroke-width: 2.0;" width="649" x="13" y="398.625"/><rect fill="#FEFEFE" filter="url(#f105wwwd7nmw4q)" height="118.5313" style="stroke: #000000; stroke-width: 2.0;" width="649" x="13" y="531.1563"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="53" x2="53" y1="58.4297" y2="893.4844"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="145" x2="145" y1="58.4297" y2="893.4844"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="217" x2="217" y1="58.4297" y2="893.4844"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="308" x2="308" y1="58.4297" y2="893.4844"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="466" x2="466" y1="58.4297" y2="893.4844"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="550" x2="550" y1="58.4297" y2="893.4844"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="622" x2="622" y1="58.4297" y2="893.4844"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="699" x2="699" y1="58.4297" y2="893.4844"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="788" x2="788" y1="58.4297" y2="893.4844"/><rect fill="#FEFECE" filter="url(#f105wwwd7nmw4q)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="57" x="23" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="43" x="30" y="43.1279">main()</text><rect fill="#FEFECE" filter="url(#f105wwwd7nmw4q)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="57" x="23" y="892.4844"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="43" x="30" y="912.4795">main()</text><rect fill="#FEFECE" filter="url(#f105wwwd7nmw4q)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="113" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="120" y="43.1279">Device</text><rect fill="#FEFECE" filter="url(#f105wwwd7nmw4q)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="113" y="892.4844"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="120" y="912.4795">Device</text><rect fill="#FEFECE" filter="url(#f105wwwd7nmw4q)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="55" x="188" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="41" x="195" y="43.1279">Buffer</text><rect fill="#FEFECE" filter="url(#f105wwwd7nmw4q)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="55" x="188" y="892.4844"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="41" x="195" y="912.4795">Buffer</text><rect fill="#FEFECE" filter="url(#f105wwwd7nmw4q)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="71" x="271" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="57" x="278" y="43.1279">Network</text><rect fill="#FEFECE" filter="url(#f105wwwd7nmw4q)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="71" x="271" y="892.4844"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="57" x="278" y="912.4795">Network</text><rect fill="#FEFECE" filter="url(#f105wwwd7nmw4q)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="79" x="425" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="65" x="432" y="43.1279">Inference</text><rect fill="#FEFECE" filter="url(#f105wwwd7nmw4q)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="79" x="425" y="892.4844"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="65" x="432" y="912.4795">Inference</text><rect fill="#FEFECE" filter="url(#f105wwwd7nmw4q)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="518" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="525" y="43.1279">Device</text><rect fill="#FEFECE" filter="url(#f105wwwd7nmw4q)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="518" y="892.4844"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="525" y="912.4795">Device</text><rect fill="#FEFECE" filter="url(#f105wwwd7nmw4q)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="55" x="593" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="41" x="600" y="43.1279">Buffer</text><rect fill="#FEFECE" filter="url(#f105wwwd7nmw4q)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="55" x="593" y="892.4844"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="41" x="600" y="912.4795">Buffer</text><rect fill="#FEFECE" filter="url(#f105wwwd7nmw4q)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="71" x="662" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="57" x="669" y="43.1279">Network</text><rect fill="#FEFECE" filter="url(#f105wwwd7nmw4q)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="71" x="662" y="892.4844"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="57" x="669" y="912.4795">Network</text><rect fill="#FEFECE" filter="url(#f105wwwd7nmw4q)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="79" x="747" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="65" x="754" y="43.1279">Inference</text><rect fill="#FEFECE" filter="url(#f105wwwd7nmw4q)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="79" x="747" y="892.4844"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="65" x="754" y="912.4795">Inference</text><rect fill="#FFFFFF" filter="url(#f105wwwd7nmw4q)" height="816.0547" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="48.5" y="68.4297"/><rect fill="#FFFFFF" filter="url(#f105wwwd7nmw4q)" height="72.2656" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="140.5" y="128.6953"/><rect fill="#FFFFFF" filter="url(#f105wwwd7nmw4q)" height="72.2656" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="212.5" y="436.8906"/><rect fill="#FFFFFF" filter="url(#f105wwwd7nmw4q)" height="72.2656" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="212.5" y="569.4219"/><rect fill="#FFFFFF" filter="url(#f105wwwd7nmw4q)" height="114.3984" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="303.5" y="269.2266"/><rect fill="#FFFFFF" filter="url(#f105wwwd7nmw4q)" height="72.2656" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="461.5" y="716.9531"/><rect fill="#FFFFFF" filter="url(#f105wwwd7nmw4q)" height="57.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="461.5" y="818.3516"/><rect fill="#FFFFFF" filter="url(#f105wwwd7nmw4q)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="545.5" y="157.8281"/><rect fill="#FFFFFF" filter="url(#f105wwwd7nmw4q)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="617.5" y="466.0234"/><rect fill="#FFFFFF" filter="url(#f105wwwd7nmw4q)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="617.5" y="598.5547"/><rect fill="#FFFFFF" filter="url(#f105wwwd7nmw4q)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="694.5" y="298.3594"/><rect fill="#FFFFFF" filter="url(#f105wwwd7nmw4q)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="783.5" y="746.0859"/><rect fill="#FFFFFF" filter="url(#f105wwwd7nmw4q)" height="14" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="783.5" y="847.4844"/><path d="M89,73.4297 L89,98.4297 L198,98.4297 L198,83.4297 L188,73.4297 L89,73.4297 " fill="#FBFB77" filter="url(#f105wwwd7nmw4q)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M188,73.4297 L188,83.4297 L198,83.4297 L188,73.4297 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="88" x="95" y="90.4966">Create device</text><polygon fill="#A80036" points="128.5,124.6953,138.5,128.6953,128.5,132.6953,132.5,128.6953" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="58.5" x2="134.5" y1="128.6953" y2="128.6953"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="53" x="65.5" y="123.6294">Device()</text><polygon fill="#A80036" points="533.5,153.8281,543.5,157.8281,533.5,161.8281,537.5,157.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="150.5" x2="539.5" y1="157.8281" y2="157.8281"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="141" x="157.5" y="152.7622">open(&lt;device node&gt;)</text><polygon fill="#A80036" points="161.5,182.9609,151.5,186.9609,161.5,190.9609,157.5,186.9609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="155.5" x2="549.5" y1="186.9609" y2="186.9609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="167.5" y="181.895">file descriptor</text><polygon fill="#A80036" points="69.5,196.9609,59.5,200.9609,69.5,204.9609,65.5,200.9609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="63.5" x2="144.5" y1="200.9609" y2="200.9609"/><path d="M176,213.9609 L176,238.9609 L436,238.9609 L436,223.9609 L426,213.9609 L176,213.9609 " fill="#FBFB77" filter="url(#f105wwwd7nmw4q)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M426,213.9609 L426,223.9609 L436,223.9609 L426,213.9609 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="239" x="182" y="231.0278">Create network, parse network model</text><polygon fill="#A80036" points="291.5,265.2266,301.5,269.2266,291.5,273.2266,295.5,269.2266" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="58.5" x2="297.5" y1="269.2266" y2="269.2266"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="216" x="65.5" y="264.1606">Network(device, user_buffer, size)</text><polygon fill="#A80036" points="682.5,294.3594,692.5,298.3594,682.5,302.3594,686.5,298.3594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="313.5" x2="688.5" y1="298.3594" y2="298.3594"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="154" x="320.5" y="293.2935">ioctl(NETWORK_CREATE)</text><polygon fill="#A80036" points="324.5,323.4922,314.5,327.4922,324.5,331.4922,320.5,327.4922" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="318.5" x2="698.5" y1="327.4922" y2="327.4922"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="330.5" y="322.4263">file descriptor</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="313.5" x2="355.5" y1="356.625" y2="356.625"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="355.5" x2="355.5" y1="356.625" y2="369.625"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="314.5" x2="355.5" y1="369.625" y2="369.625"/><polygon fill="#A80036" points="324.5,365.625,314.5,369.625,324.5,373.625,320.5,369.625" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="320.5" y="351.5591">Parse network model</text><polygon fill="#A80036" points="69.5,379.625,59.5,383.625,69.5,387.625,65.5,383.625" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="63.5" x2="307.5" y1="383.625" y2="383.625"/><path d="M13,398.625 L90,398.625 L90,405.625 L80,415.625 L13,415.625 L13,398.625 " fill="#EEEEEE" style="stroke: #000000; stroke-width: 1.0;"/><rect fill="none" height="118.5313" style="stroke: #000000; stroke-width: 2.0;" width="649" x="13" y="398.625"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="28" y="411.6919">loop</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="188" x="105" y="410.8354">[Allocate and fill IFM buffers]</text><polygon fill="#A80036" points="200.5,432.8906,210.5,436.8906,200.5,440.8906,204.5,436.8906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="58.5" x2="206.5" y1="436.8906" y2="436.8906"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="89" x="65.5" y="431.8247">Buffer(device)</text><polygon fill="#A80036" points="605.5,462.0234,615.5,466.0234,605.5,470.0234,609.5,466.0234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="222.5" x2="611.5" y1="466.0234" y2="466.0234"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="141" x="229.5" y="460.9575">ioctl(BUFFER_CREATE)</text><polygon fill="#A80036" points="233.5,491.1563,223.5,495.1563,233.5,499.1563,229.5,495.1563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="227.5" x2="621.5" y1="495.1563" y2="495.1563"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="239.5" y="490.0903">file descriptor</text><polygon fill="#A80036" points="69.5,505.1563,59.5,509.1563,69.5,513.1563,65.5,509.1563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="63.5" x2="216.5" y1="509.1563" y2="509.1563"/><path d="M13,531.1563 L90,531.1563 L90,538.1563 L80,548.1563 L13,548.1563 L13,531.1563 " fill="#EEEEEE" style="stroke: #000000; stroke-width: 1.0;"/><rect fill="none" height="118.5313" style="stroke: #000000; stroke-width: 2.0;" width="649" x="13" y="531.1563"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="28" y="544.2231">loop</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="145" x="105" y="543.3667">[Allocate OFM buffers]</text><polygon fill="#A80036" points="200.5,565.4219,210.5,569.4219,200.5,573.4219,204.5,569.4219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="58.5" x2="206.5" y1="569.4219" y2="569.4219"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="89" x="65.5" y="564.356">Buffer(device)</text><polygon fill="#A80036" points="605.5,594.5547,615.5,598.5547,605.5,602.5547,609.5,598.5547" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="222.5" x2="611.5" y1="598.5547" y2="598.5547"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="141" x="229.5" y="593.4888">ioctl(BUFFER_CREATE)</text><polygon fill="#A80036" points="233.5,623.6875,223.5,627.6875,233.5,631.6875,229.5,627.6875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="227.5" x2="621.5" y1="627.6875" y2="627.6875"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="239.5" y="622.6216">file descriptor</text><polygon fill="#A80036" points="69.5,637.6875,59.5,641.6875,69.5,645.6875,65.5,641.6875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="63.5" x2="216.5" y1="641.6875" y2="641.6875"/><path d="M374,661.6875 L374,686.6875 L554,686.6875 L554,671.6875 L544,661.6875 L374,661.6875 " fill="#FBFB77" filter="url(#f105wwwd7nmw4q)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M544,661.6875 L544,671.6875 L554,671.6875 L544,661.6875 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="159" x="380" y="678.7544">Create and run inference</text><polygon fill="#A80036" points="449.5,712.9531,459.5,716.9531,449.5,720.9531,453.5,716.9531" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="58.5" x2="455.5" y1="716.9531" y2="716.9531"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="180" x="65.5" y="711.8872">Inference(network, ifm, ofm)</text><polygon fill="#A80036" points="771.5,742.0859,781.5,746.0859,771.5,750.0859,775.5,746.0859" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="471.5" x2="777.5" y1="746.0859" y2="746.0859"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="163" x="478.5" y="741.02">ioctl(INFERENCE_CREATE)</text><polygon fill="#A80036" points="482.5,771.2188,472.5,775.2188,482.5,779.2188,478.5,775.2188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="476.5" x2="787.5" y1="775.2188" y2="775.2188"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="488.5" y="770.1528">file descriptor</text><polygon fill="#A80036" points="69.5,785.2188,59.5,789.2188,69.5,793.2188,65.5,789.2188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="63.5" x2="465.5" y1="789.2188" y2="789.2188"/><polygon fill="#A80036" points="449.5,814.3516,459.5,818.3516,449.5,822.3516,453.5,818.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="58.5" x2="455.5" y1="818.3516" y2="818.3516"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="121" x="65.5" y="813.2856">wait(file descriptor)</text><polygon fill="#A80036" points="771.5,843.4844,781.5,847.4844,771.5,851.4844,775.5,847.4844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="471.5" x2="777.5" y1="847.4844" y2="847.4844"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="118" x="478.5" y="842.4185">poll(file descriptor)</text><polygon fill="#A80036" points="482.5,857.4844,472.5,861.4844,482.5,865.4844,478.5,861.4844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="476.5" x2="787.5" y1="861.4844" y2="861.4844"/><polygon fill="#A80036" points="69.5,871.4844,59.5,875.4844,69.5,879.4844,65.5,875.4844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="63.5" x2="465.5" y1="875.4844" y2="875.4844"/><!--MD5=[aa4ced5da24ed5aa951387ff7db834b9]
@startuml
skinparam backgroundColor #FEFEFE
@@ -31,19 +31,10 @@ main -> ddev++: Device()
return
note over dnet
- Allocate and fill network buffer
-end note
-
-main -> dbuf++: Buffer(device)
- dbuf -> kbuf++: ioctl(BUFFER_CREATE)
- return file descriptor
-return
-
-note over dnet
Create network, parse network model
end note
-main -> dnet++: Network(device, buffer)
+main -> dnet++: Network(device, user_buffer, size)
dnet -> knet++: ioctl(NETWORK_CREATE)
return file descriptor
@@ -79,13 +70,12 @@ return
@enduml
-PlantUML version 1.2017.15(Mon Jul 03 18:45:34 CEST 2017)
+PlantUML version 1.2020.02(Sun Mar 01 11:22:07 CET 2020)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
-Java Version: 11.0.11+9-Ubuntu-0ubuntu2.18.04
+Java Version: 11.0.20.1+1-post-Ubuntu-0ubuntu122.04
Operating System: Linux
-OS Version: 5.4.0-73-generic
Default Encoding: UTF-8
Language: en
Country: US