| 1234 |
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="3221px" height="2301px" viewBox="-0.5 -0.5 3221 2301" content="<mxfile><diagram id="nKelZ6Gt3N6YIWwZSbJ6" name="第 1 页">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</diagram></mxfile>"><defs/><g><rect x="0" y="1210" width="139" height="290" rx="20.85" ry="20.85" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 137px; height: 1px; padding-top: 1217px; margin-left: 1px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 16px;"><span style="color: #4ec9b0;">metal_device</span></div></div></div></div></foreignObject><text x="70" y="1229" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">metal_device</text></switch></g><rect x="19" y="1240" width="100" height="50" rx="7.5" ry="7.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 1265px; margin-left: 20px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 16px;"><span style="color: #6a9955;">IPI metal device</span></div></div></div></div></foreignObject><text x="69" y="1269" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">IPI metal device</text></switch></g><rect x="19" y="1430" width="100" height="50" rx="7.5" ry="7.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 1455px; margin-left: 20px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 16px;"><span style="color: #6a9955;">TTC metal device</span></div></div></div></div></foreignObject><text x="69" y="1459" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">TTC metal device</text></switch></g><rect x="19" y="1330" width="100" height="50" rx="7.5" ry="7.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 1355px; margin-left: 20px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 16px;"><span style="color: #6a9955;">SHM metal device</span></div></div></div></div></foreignObject><text x="69" y="1359" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">SHM metal device</text></switch></g><path d="M 119.5 1270 L 119.5 1260 L 169.5 1260 L 169.5 1249.5 L 188.5 1265 L 169.5 1280.5 L 169.5 1270 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-linejoin="round" stroke-miterlimit="10" pointer-events="all"/><path d="M 119.5 1359.5 L 119.5 1349.5 L 169.5 1349.5 L 169.5 1339 L 188.5 1354.5 L 169.5 1370 L 169.5 1359.5 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-linejoin="round" stroke-miterlimit="10" pointer-events="all"/><path d="M 119.5 1460 L 119.5 1450 L 169.5 1450 L 169.5 1439.5 L 188.5 1455 L 169.5 1470.5 L 169.5 1460 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-linejoin="round" stroke-miterlimit="10" pointer-events="all"/><rect x="189" y="1210" width="571" height="90" rx="13.5" ry="13.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 569px; height: 1px; padding-top: 1255px; margin-left: 191px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p class="MsoNormal"><font color="#6666ff" face="Consolas">(处理器间中断)是一个处理器中断另一个处理器的机制。 这通常用于多处理器系统中的处理器间通信和同步。 Libmetal 提供了一个 IPI API,允许软件在不同的处理器之间发送和接收中断,而不管它们的架构如何。</font><br /></p></div></div></div></foreignObject><text x="191" y="1259" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">(处理器间中断)是一个处理器中断另一个处理器的机制。 这通常用于多处理器系统中的处理器间通信和同步。 Libmetal 提供了一个 IPI API,允许软件在不同的处理器之间发送和接收中断,而不管它们的架构如何。
- </text></switch></g><rect x="189" y="1410" width="571" height="90" rx="13.5" ry="13.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 569px; height: 1px; padding-top: 1455px; margin-left: 191px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p class="MsoNormal"><font face="Consolas">(时间触发通信)是一种基于公共时钟同步两个或多个处理器的机制。 这对于实现实时系统非常有用,其中精确计时至关重要。 Libmetal 提供了一个 TTC API,允许软件配置和管理 TTC 硬件,以及基于 TTC 时钟发送和接收消息。</font><br /></p></div></div></div></foreignObject><text x="191" y="1459" fill="#6666FF" font-family="Helvetica" font-size="12px">(时间触发通信)是一种基于公共时钟同步两个或多个处理器的机制。 这对于实现实时系统非常有用,其中精确计时至关重要。 Libmetal 提供了一个 TTC API,允许软件配置和管理 TTC 硬件,以及基于 TTC 时钟发送和接收消息。
- </text></switch></g><rect x="189" y="1310" width="571" height="90" rx="13.5" ry="13.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 569px; height: 1px; padding-top: 1355px; margin-left: 191px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p class="MsoNormal"><font face="Consolas">(共享内存) 是一种让两个或多个处理器共享公共内存区域的机制。 这对于实现处理器间通信和同步以及在不同处理器之间共享数据很有用。 Libmetal 提供了一个 SHM API,允许软件分配和释放共享内存区域,以及读取和写入这些区域的数据。</font><br /></p></div></div></div></foreignObject><text x="191" y="1359" fill="#6666FF" font-family="Helvetica" font-size="12px">(共享内存) 是一种让两个或多个处理器共享公共内存区域的机制。 这对于实现处理器间通信和同步以及在不同处理器之间共享数据很有用。 Libmetal 提供了一个 SHM API,允许软件分配和释放共享内存区域,以及读取和写入这些区域的数据。
- </text></switch></g><rect x="1090" y="90" width="778" height="970" rx="46.68" ry="46.68" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 776px; height: 1px; padding-top: 97px; margin-left: 1091px;"><div data-drawio-colors="color: #FF3333; background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(255, 51, 51); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;"><div style="font-family: Consolas, "Courier New", monospace; line-height: 16px; font-size: 20px;"><span style="font-size: 20px;">int ipi_latency_demod()</span></div></div></div></div></foreignObject><text x="1479" y="117" fill="#FF3333" font-family="Helvetica" font-size="20px" text-anchor="middle">int ipi_latency_demod()</text></switch></g><path d="M 1615 278 L 1686.63 278" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1691.88 278 L 1684.88 281.5 L 1686.63 278 L 1684.88 274.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 1155 218 L 1155 188 L 1615 188 L 1615 218" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 1155 218 L 1155 368 L 1615 368 L 1615 218" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1155 218 L 1615 218" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 458px; height: 1px; padding-top: 203px; margin-left: 1156px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 16px;"><span style="color: #569cd6;">struct</span> <span style="color: #4ec9b0;">channel_s</span></div></div></div></div></foreignObject><text x="1385" y="209" fill="black" font-family="Helvetica" font-size="21px" text-anchor="middle">struct channel_s</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 450px; height: 1px; padding-top: 233px; margin-left: 1161px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 26px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 12px; line-height: 16px;"><span style="color: #569cd6;">struct</span> <span style="color: #4ec9b0;">metal_io_region</span> *<span style="color: #9cdcfe;">ipi_io</span>;<span style="color: #6a9955;"> /* IPI metal i/o region */</span></div></div></div></div></foreignObject><text x="1161" y="239" fill="black" font-family="Helvetica" font-size="21px">struct metal_io_region *ipi_io; /* IPI meta...</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 450px; height: 1px; padding-top: 263px; margin-left: 1161px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 26px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 12px; line-height: 16px;"><span style="color: #569cd6;">struct</span> <span style="color: #4ec9b0;">metal_io_region</span> *<span style="color: #9cdcfe;">shm_io</span>;<span style="color: #6a9955;"> /* Shared memory metal i/o region */</span></div></div></div></div></foreignObject><text x="1161" y="269" fill="black" font-family="Helvetica" font-size="21px">struct metal_io_region *shm_io; /* Shared m...</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 450px; height: 1px; padding-top: 293px; margin-left: 1161px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 26px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 12px; line-height: 16px;"><span style="color: #569cd6;">struct</span> <span style="color: #4ec9b0;">metal_io_region</span> *<span style="color: #9cdcfe;">ttc_io</span>;<span style="color: #6a9955;"> /* TTC metal i/o region */</span></div></div></div></div></foreignObject><text x="1161" y="299" fill="black" font-family="Helvetica" font-size="21px">struct metal_io_region *ttc_io; /* TTC meta...</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 450px; height: 1px; padding-top: 323px; margin-left: 1161px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 26px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 12px; line-height: 16px;"><span style="color: #4ec9b0;">uint32_t</span> <span style="color: #9cdcfe;">ipi_mask</span>;<span style="color: #6a9955;"> /* RPU IPI mask */</span></div></div></div></div></foreignObject><text x="1161" y="329" fill="black" font-family="Helvetica" font-size="21px">uint32_t ipi_mask; /* RPU IPI m...</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 450px; height: 1px; padding-top: 353px; margin-left: 1161px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 26px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 12px; line-height: 16px;"><span style="color: #4ec9b0;">atomic_int</span> <span style="color: #9cdcfe;">remote_nkicked</span>;<span style="color: #6a9955;"> /* 0 - kicked from remote */</span></div></div></div></div></foreignObject><text x="1161" y="359" fill="black" font-family="Helvetica" font-size="21px">atomic_int remote_nkicked; /* 0 - kicke...</text></switch></g><rect x="1693" y="248" width="120" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 278px; margin-left: 1694px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 16px;"><span style="color: rgb(156, 220, 254);"><font style="font-size: 21px;">ch</font></span></div></div></div></div></foreignObject><text x="1753" y="284" fill="black" font-family="Helvetica" font-size="21px" text-anchor="middle">ch</text></switch></g><rect x="20" y="1530" width="740" height="770" rx="111" ry="111" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 738px; height: 1px; padding-top: 1537px; margin-left: 21px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 126%;"><span style="color: #569cd6;">int</span> <span style="color: #dcdcaa;">sys_init</span>()</div></div></div></div></foreignObject><text x="390" y="1558" fill="black" font-family="Helvetica" font-size="21px" text-anchor="middle">int sys_init()</text></switch></g><path d="M 463 1744 L 463 1753.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 463 1758.88 L 459.5 1751.88 L 463 1753.63 L 466.5 1751.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 328 1714 L 279.37 1714" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 274.12 1714 L 281.12 1710.5 L 279.37 1714 L 281.12 1717.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><rect x="328" y="1684" width="270" height="60" rx="9" ry="9" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 268px; height: 1px; padding-top: 1714px; margin-left: 329px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 16px;"><span style="color: #dcdcaa;">enable_caches</span>();</div></div></div></div></foreignObject><text x="463" y="1720" fill="black" font-family="Helvetica" font-size="21px" text-anchor="middle">enable_caches();</text></switch></g><path d="M 134 1600 L 134 1570 L 654 1570 L 654 1600" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 134 1600 L 134 1660 L 654 1660 L 654 1600" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 134 1600 L 654 1600" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 518px; height: 1px; padding-top: 1585px; margin-left: 135px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 16px;"><span style="color: #569cd6;">struct</span> <span style="color: #4ec9b0;">metal_init_params </span><span style="color: rgb(156, 220, 254);">metal_param</span></div></div></div></div></foreignObject><text x="394" y="1591" fill="black" font-family="Helvetica" font-size="21px" text-anchor="middle">struct metal_init_params metal_param</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 510px; height: 1px; padding-top: 1615px; margin-left: 140px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 26px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 16px;"><span style="color: #4ec9b0;">metal_log_handler</span> <span style="color: #9cdcfe;">log_handler</span>;</div></div></div></div></foreignObject><text x="140" y="1621" fill="black" font-family="Helvetica" font-size="21px">metal_log_handler log_handler;</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 510px; height: 1px; padding-top: 1645px; margin-left: 140px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 26px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 16px;"><span style="color: #569cd6;">enum</span> <span style="color: #4ec9b0;">metal_log_level</span> <span style="color: #9cdcfe;">log_level</span>;</div></div></div></div></foreignObject><text x="140" y="1651" fill="black" font-family="Helvetica" font-size="21px">enum metal_log_level log_level;</text></switch></g><path d="M 463 1820 L 463 1833.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 463 1838.88 L 459.5 1831.88 L 463 1833.63 L 466.5 1831.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 323 1790 L 279.37 1790" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 274.12 1790 L 281.12 1786.5 L 279.37 1790 L 281.12 1793.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><rect x="323" y="1760" width="280" height="60" rx="9" ry="9" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 278px; height: 1px; padding-top: 1790px; margin-left: 324px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 16px;"><span style="color: #dcdcaa;">init_uart</span>();</div></div></div></div></foreignObject><text x="463" y="1796" fill="black" font-family="Helvetica" font-size="21px" text-anchor="middle">init_uart();</text></switch></g><path d="M 323 1870 L 279.37 1870" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 274.12 1870 L 281.12 1866.5 L 279.37 1870 L 281.12 1873.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 463 1900 L 463 1913.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 463 1918.88 L 459.5 1911.88 L 463 1913.63 L 466.5 1911.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><rect x="323" y="1840" width="280" height="60" rx="9" ry="9" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 278px; height: 1px; padding-top: 1870px; margin-left: 324px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 16px;"><span style="color: #dcdcaa;">init_irq</span>()</div></div></div></div></foreignObject><text x="463" y="1876" fill="black" font-family="Helvetica" font-size="21px" text-anchor="middle">init_irq()</text></switch></g><path d="M 183 1694 C 159 1694 153 1714 172.2 1718 C 153 1726.8 174.6 1746 190.2 1738 C 201 1754 237 1754 249 1738 C 273 1738 273 1722 258 1714 C 273 1698 249 1682 228 1690 C 213 1678 189 1678 183 1694 Z" fill="#ff6666" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 1714px; margin-left: 154px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">port</div></div></div></foreignObject><text x="213" y="1720" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="21px" text-anchor="middle">port</text></switch></g><path d="M 183 1770 C 159 1770 153 1790 172.2 1794 C 153 1802.8 174.6 1822 190.2 1814 C 201 1830 237 1830 249 1814 C 273 1814 273 1798 258 1790 C 273 1774 249 1758 228 1766 C 213 1754 189 1754 183 1770 Z" fill="#ff6666" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 1790px; margin-left: 154px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">port</div></div></div></foreignObject><text x="213" y="1796" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="21px" text-anchor="middle">port</text></switch></g><path d="M 183 1850 C 159 1850 153 1870 172.2 1874 C 153 1882.8 174.6 1902 190.2 1894 C 201 1910 237 1910 249 1894 C 273 1894 273 1878 258 1870 C 273 1854 249 1838 228 1846 C 213 1834 189 1834 183 1850 Z" fill="#ff6666" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 1870px; margin-left: 154px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">port</div></div></div></foreignObject><text x="213" y="1876" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="21px" text-anchor="middle">port</text></switch></g><path d="M 463 1990 L 463 2003.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 463 2008.88 L 459.5 2001.88 L 463 2003.63 L 466.5 2001.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><rect x="248" y="1920" width="430" height="70" rx="10.5" ry="10.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 428px; height: 1px; padding-top: 1955px; margin-left: 249px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 126%;"><div style="line-height: 126%;"><span style="color: #6a9955;">/* Initialize libmetal environment */</span></div><div style="line-height: 126%;"> <span style="color: #dcdcaa;">metal_init</span>(&<span style="color: #9cdcfe;">metal_param</span>);</div></div></div></div></div></foreignObject><text x="463" y="1961" fill="black" font-family="Helvetica" font-size="21px" text-anchor="middle">/* Initialize libmetal environment */...</text></switch></g><path d="M 183 2040 L 146.37 2040" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 141.12 2040 L 148.12 2036.5 L 146.37 2040 L 148.12 2043.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 461.94 2070 L 461.46 2083.64" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 461.27 2088.88 L 458.02 2081.76 L 461.46 2083.64 L 465.02 2082.01 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><rect x="183" y="2010" width="560" height="60" rx="9" ry="9" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 558px; height: 1px; padding-top: 2040px; margin-left: 184px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 126%;"><div style="line-height: 126%;"><span style="color: #6a9955;">/* Initialize metal Xilinx IRQ controller */</span></div><div style="line-height: 126%;"> <span style="color: #9cdcfe;">ret</span> = <span style="color: #dcdcaa;">metal_xlnx_irq_init</span>();</div></div></div></div></div></foreignObject><text x="463" y="2046" fill="black" font-family="Helvetica" font-size="21px" text-anchor="middle">/* Initialize metal Xilinx IRQ controller */...</text></switch></g><path d="M 50 2020 C 26 2020 20 2040 39.2 2044 C 20 2052.8 41.6 2072 57.2 2064 C 68 2080 104 2080 116 2064 C 140 2064 140 2048 125 2040 C 140 2024 116 2008 95 2016 C 80 2004 56 2004 50 2020 Z" fill="#ff6666" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 2040px; margin-left: 21px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">port</div></div></div></foreignObject><text x="80" y="2046" fill="black" font-family="Helvetica" font-size="21px" text-anchor="middle">port</text></switch></g><path d="M 435.5 2160 L 418.15 2184.78" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 415.14 2189.08 L 416.29 2181.34 L 418.15 2184.78 L 422.02 2185.36 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><rect x="180" y="2090" width="560" height="70" rx="10.5" ry="10.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 558px; height: 1px; padding-top: 2125px; margin-left: 181px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 126%;"><div style="line-height: 126%;"><span style="color: #6a9955;">/* Register libmetal devices */</span></div><div style="line-height: 126%;"><span style="color: #dcdcaa;">platform_register_metal_device</span>();</div></div></div></div></div></foreignObject><text x="460" y="2131" fill="black" font-family="Helvetica" font-size="21px" text-anchor="middle">/* Register libmetal devices */...</text></switch></g><path d="M 548.24 2190 L 796.75 2141.82" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 801.9 2140.82 L 795.7 2145.59 L 796.75 2141.82 L 794.36 2138.72 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><rect x="69" y="2190" width="649" height="60" rx="9" ry="9" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 647px; height: 1px; padding-top: 2220px; margin-left: 70px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><span style="border-color: var(--border-color); font-family: Consolas, "Courier New", monospace; color: rgb(106, 153, 85);">/* Open libmetal devices which have been registered */<br /></span><span style="border-color: var(--border-color); font-family: Consolas, "Courier New", monospace; background-color: initial; color: rgb(220, 220, 170);">open_metal_devices</span><span style="border-color: var(--border-color); color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; background-color: initial;">();</span></div></div></div></foreignObject><text x="394" y="2226" fill="black" font-family="Helvetica" font-size="21px" text-anchor="middle">/* Open libmetal devices which have been registered */...</text></switch></g><path d="M 1583 2043.88 L 1657.64 2039.84" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1662.88 2039.56 L 1656.08 2043.43 L 1657.64 2039.84 L 1655.7 2036.44 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><rect x="803" y="1830" width="780" height="470" rx="32.9" ry="32.9" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 778px; height: 1px; padding-top: 1837px; margin-left: 804px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 26px; line-height: 16px;"><div style="line-height: 16px;"><span style="color: #569cd6;">int</span> <span style="color: #dcdcaa;">open_metal_devices</span>(<span style="color: #569cd6;">void</span>)</div></div></div></div></div></foreignObject><text x="1193" y="1858" fill="black" font-family="Helvetica" font-size="21px" text-anchor="middle">int open_metal_devices(void)</text></switch></g><rect x="903" y="2170" width="610" height="100" rx="15" ry="15" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 608px; height: 1px; padding-top: 2220px; margin-left: 904px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 18px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 18px; line-height: 16px;"><div style="font-size: 18px;"><span style="color: rgb(106, 153, 85); font-size: 18px;">/* Open TTC device */</span></div><div style="font-size: 18px;"> <span style="color: rgb(156, 220, 254); font-size: 18px;">ret</span> = <span style="color: rgb(220, 220, 170); font-size: 18px;">metal_device_open</span>(<span style="color: rgb(86, 156, 214); font-size: 18px;">BUS_NAME</span>, <span style="color: rgb(86, 156, 214); font-size: 18px;">TTC_DEV_NAME</span>,&<span style="color: rgb(156, 220, 254); font-size: 18px;">ttc_dev</span>);</div></div></div></div></div></foreignObject><text x="1208" y="2225" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="18px" text-anchor="middle">/* Open TTC device */...</text></switch></g><rect x="903" y="1890" width="610" height="110" rx="16.5" ry="16.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 608px; height: 1px; padding-top: 1945px; margin-left: 904px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="font-family: Consolas, "Courier New", monospace; font-size: 18px; line-height: 16px;"><div style="color: rgb(212, 212, 212); line-height: 16px;"><div><span style="color: #6a9955;">/* Open shared memory device */</span></div><div> <span style="color: #9cdcfe;">ret</span> = <span style="color: #dcdcaa;">metal_device_open</span>(<span style="color: #569cd6;">BUS_NAME</span>, <span style="color: #569cd6;">SHM_DEV_NAME</span>,&<span style="color: #9cdcfe;">shm_dev</span>);</div></div></div></div></div></div></foreignObject><text x="1208" y="1949" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="14px" text-anchor="middle">/* Open shared memory device */...</text></switch></g><rect x="903" y="2030" width="610" height="110" rx="16.5" ry="16.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 608px; height: 1px; padding-top: 2085px; margin-left: 904px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 18px; line-height: 16px;"><div><span style="color: #6a9955;">/* Open IPI device */</span></div><div> <span style="color: #9cdcfe;">ret</span> = <span style="color: #dcdcaa;">metal_device_open</span>(<span style="color: #569cd6;">BUS_NAME</span>, <span style="color: #569cd6;">IPI_DEV_NAME</span>,&<span style="color: #9cdcfe;">ipi_dev</span>);</div></div></div></div></div></foreignObject><text x="1208" y="2089" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="14px" text-anchor="middle">/* Open IPI device */...</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 155px; margin-left: 1450px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 18px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><font style="font-size: 26px;">application</font></div></div></div></foreignObject><text x="1479" y="160" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="18px" text-anchor="middle">applica...</text></switch></g><path d="M 2384 2004.65 L 2463.64 2001.26" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2468.88 2001.03 L 2462.04 2004.83 L 2463.64 2001.26 L 2461.74 1997.84 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><rect x="1664" y="1790" width="720" height="460" rx="32.2" ry="32.2" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 718px; height: 1px; padding-top: 1797px; margin-left: 1665px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 26px; line-height: 16px;"><span style="color: #569cd6;">void</span> <span style="color: #dcdcaa;">close_metal_devices</span>(<span style="color: #569cd6;">void</span>)</div></div></div></div></foreignObject><text x="2024" y="1818" fill="black" font-family="Helvetica" font-size="21px" text-anchor="middle">void close_metal_devices(void)</text></switch></g><rect x="1774" y="1990" width="530" height="90" rx="13.5" ry="13.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 528px; height: 1px; padding-top: 2035px; margin-left: 1775px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 18px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 126%;"><div style="line-height: 126%;"><span style="color: #6a9955;">/* Close IPI device */</span></div><div style="line-height: 126%;"><span style="color: #dcdcaa;">metal_device_close</span>(<span style="color: #9cdcfe;">ipi_dev</span>);</div></div></div></div></div></foreignObject><text x="2039" y="2040" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="18px" text-anchor="middle">/* Close IPI device */...</text></switch></g><rect x="1774" y="2120" width="530" height="80" rx="12" ry="12" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 528px; height: 1px; padding-top: 2160px; margin-left: 1775px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 18px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 126%;"><div style="line-height: 126%;"><span style="color: #6a9955;">/* Close TTC device */</span></div><div style="line-height: 126%;"><span style="color: #dcdcaa;">metal_device_close</span>(<span style="color: #9cdcfe;">ttc_dev</span>);</div></div></div></div></div></foreignObject><text x="2039" y="2165" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="18px" text-anchor="middle">/* Close TTC device */...</text></switch></g><rect x="1774" y="1850" width="530" height="90" rx="13.5" ry="13.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 528px; height: 1px; padding-top: 1895px; margin-left: 1775px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 18px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 126%;"><div style="line-height: 126%;"><span style="color: #6a9955;">/* Close shared memory device */</span></div><div style="line-height: 126%;"><span style="color: rgb(220, 220, 170);">metal_device_close</span>(<span style="color: rgb(156, 220, 254);">shm_dev</span>);</div></div></div></div></div></foreignObject><text x="2039" y="1900" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="18px" text-anchor="middle">/* Close shared memory device */...</text></switch></g><rect x="2470" y="1670" width="750" height="630" rx="44.1" ry="44.1" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 748px; height: 1px; padding-top: 1677px; margin-left: 2471px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 26px; line-height: 16px;"><span style="color: #569cd6;">void</span> <span style="color: #dcdcaa;">sys_cleanup</span>()</div></div></div></div></foreignObject><text x="2845" y="1698" fill="black" font-family="Helvetica" font-size="21px" text-anchor="middle">void sys_cleanup()</text></switch></g><rect x="2575" y="1740" width="540" height="130" rx="19.5" ry="19.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 538px; height: 1px; padding-top: 1805px; margin-left: 2576px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 26px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 21px; line-height: 126%;"><div style="line-height: 126%;"><span style="color: #6a9955;">/* Close libmetal devices which have been opened */</span></div><div style="line-height: 126%;"><span style="font-size: 21px; background-color: initial; color: rgb(220, 220, 170);">close_metal_devices</span><span style="font-size: 21px; background-color: initial;">();</span></div></div></div></div></div></foreignObject><text x="2845" y="1813" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="26px" text-anchor="middle">/* Close libmetal devices which have been...</text></switch></g><rect x="2575" y="1930" width="540" height="130" rx="19.5" ry="19.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 538px; height: 1px; padding-top: 1995px; margin-left: 2576px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 26px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 21px; line-height: 126%;"><div style="line-height: 126%;"><span style="color: #6a9955;">/* Finish libmetal environment */</span></div><div style="line-height: 126%;"> <span style="color: #dcdcaa;">metal_finish</span>();</div></div></div></div></div></foreignObject><text x="2845" y="2003" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="26px" text-anchor="middle">/* Finish libmetal environment */...</text></switch></g><rect x="2575" y="2110" width="540" height="130" rx="19.5" ry="19.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 538px; height: 1px; padding-top: 2175px; margin-left: 2576px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 26px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 16px; font-size: 30px;"><span style="color: rgb(220, 220, 170);"><font style="font-size: 30px;">disable_caches</font></span><span style="">();</span></div></div></div></div></foreignObject><text x="2845" y="2183" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="26px" text-anchor="middle">disable_caches();</text></switch></g><rect x="860" y="1439" width="690" height="371" rx="55.65" ry="55.65" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 688px; height: 1px; padding-top: 1624px; margin-left: 861px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 30px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 21px; line-height: 16px;"><div style="text-align: left;"><span style="color: #569cd6;">static</span> <span style="color: #569cd6;">struct</span> <span style="color: #4ec9b0;">metal_device</span> <span style="color: #9cdcfe;">metal_dev_table</span><span style="color: #569cd6;">[]</span> = </div><div style="text-align: left;"><span style="background-color: initial;">{</span></div><div style="font-size: 12px; line-height: 16px;"><div style="text-align: left;"><span style="color: #6a9955;">/* IPI device */</span></div><div style="text-align: left;"> .<span style="color: #9cdcfe;">name</span> = <span style="color: #569cd6;">IPI_DEV_NAME</span>,</div><div style="text-align: left;"> .<span style="color: #9cdcfe;">bus</span> = <span style="color: #569cd6;">NULL</span>,</div><div style="text-align: left;"> .<span style="color: #9cdcfe;">num_regions</span> = <span style="color: #b5cea8;">1</span>,</div><div style="text-align: left;"> .<span style="color: #9cdcfe;">regions</span> = {</div><div style="text-align: left;"> {</div><div style="text-align: left;"> .<span style="color: #9cdcfe;">virt</span> = (<span style="color: #569cd6;">void</span> *)<span style="color: #569cd6;">IPI_BASE_ADDR</span>,</div><div style="text-align: left;"> .<span style="color: #9cdcfe;">physmap</span> = &<span style="color: #9cdcfe;">metal_phys</span>[<span style="color: #b5cea8;">0</span>],</div><div style="text-align: left;"> .<span style="color: #9cdcfe;">size</span> = <span style="color: #b5cea8;">0x1000</span>,</div><div style="text-align: left;"> .<span style="color: #9cdcfe;">page_shift</span> = <span style="color: #569cd6;">DEFAULT_PAGE_SHIFT</span>,</div><div style="text-align: left;"> .<span style="color: #9cdcfe;">page_mask</span> = <span style="color: #569cd6;">DEFAULT_PAGE_MASK</span>,</div><div style="text-align: left;"> .<span style="color: #9cdcfe;">mem_flags</span> = DEVICE_NONSHARED | PRIV_RW_USER_RW,</div><div style="text-align: left;"> .<span style="color: #9cdcfe;">ops</span> = {<span style="color: #569cd6;">NULL</span>},</div><div style="text-align: left;"> }},</div><div style="text-align: left;"> .<span style="color: #9cdcfe;">node</span> = {<span style="color: #569cd6;">NULL</span>},</div><div style="text-align: left;"> .<span style="color: #9cdcfe;">irq_num</span> = <span style="color: #b5cea8;">1</span>,</div></div><div style="text-align: left;"><span style="font-size: 12px;"> .</span><span style="font-size: 12px; color: rgb(156, 220, 254);">irq_info</span><span style="font-size: 12px;"> = (</span><span style="font-size: 12px; color: rgb(86, 156, 214);">void</span><span style="font-size: 12px;"> *)</span><span style="font-size: 12px; color: rgb(86, 156, 214);">IPI_IRQ_VECT_ID</span><span style="font-size: 12px;">,</span></div><div style="text-align: left;"><span style="">}</span><br /></div></div></div></div></div></foreignObject><text x="1205" y="1633" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="30px" text-anchor="middle">static struct metal_device metal_dev_table[] =...</text></switch></g><path d="M 796 1310 L 796 1280 L 1226 1280 L 1226 1310" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 796 1310 L 796 1400 L 1226 1400 L 1226 1310" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 796 1310 L 1226 1310" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 428px; height: 1px; padding-top: 1295px; margin-left: 797px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 30px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 21px; line-height: 16px;"><span style="color: #569cd6;">const</span> <span style="color: #4ec9b0;">metal_phys_addr_t</span> <span style="color: #9cdcfe;">metal_phys</span><span style="color: #569cd6;">[]</span></div></div></div></div></foreignObject><text x="1011" y="1304" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="30px" text-anchor="middle">const metal_phys_addr_t metal...</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 420px; height: 1px; padding-top: 1325px; margin-left: 802px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 26px; overflow: hidden;"><div style="display: inline-block; font-size: 30px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 16px;"><span style="color: rgb(86, 156, 214);"><font style="font-size: 21px;">IPI_BASE_ADDR</font></span></div></div></div></div></foreignObject><text x="802" y="1334" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="30px">IPI_BASE_ADDR</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 420px; height: 1px; padding-top: 1355px; margin-left: 802px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 26px; overflow: hidden;"><div style="display: inline-block; font-size: 30px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 16px;"><span style="color: rgb(86, 156, 214);"><font style="font-size: 21px;">SHM_BASE_ADDR</font></span></div></div></div></div></foreignObject><text x="802" y="1364" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="30px">SHM_BASE_ADDR</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 420px; height: 1px; padding-top: 1385px; margin-left: 802px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 26px; overflow: hidden;"><div style="display: inline-block; font-size: 30px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 16px;"><span style="color: rgb(86, 156, 214);"><font style="font-size: 21px;">TTC0_BASE_ADDR</font></span></div></div></div></div></foreignObject><text x="802" y="1394" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="30px">TTC0_BASE_ADDR</text></switch></g><path d="M 1236 1310 L 1236 1280 L 1586 1280 L 1586 1310" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1236 1310 L 1236 1400 L 1586 1400 L 1586 1310" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1236 1310 L 1586 1310" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 348px; height: 1px; padding-top: 1295px; margin-left: 1237px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><span class="mtk5" style="color: rgb(86, 156, 214); font-family: Consolas, "Courier New", monospace; font-size: 12px; text-align: start;">struct</span><span class="mtk1" style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 12px; text-align: start;"> </span><span class="mtk16" style="color: rgb(78, 201, 176); font-family: Consolas, "Courier New", monospace; font-size: 12px; text-align: start;">metal_device</span></div></div></div></foreignObject><text x="1411" y="1301" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="21px" text-anchor="middle">struct metal_device</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 340px; height: 1px; padding-top: 1325px; margin-left: 1242px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 26px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 16px;">*<span style="color: #9cdcfe;">ipi_dev</span></div></div></div></div></foreignObject><text x="1242" y="1331" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="21px">*ipi_dev</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 340px; height: 1px; padding-top: 1355px; margin-left: 1242px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 26px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 16px;">*<span style="color: #9cdcfe;">shm_dev</span></div></div></div></div></foreignObject><text x="1242" y="1361" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="21px">*shm_dev</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 340px; height: 1px; padding-top: 1385px; margin-left: 1242px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 26px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 16px;">*<span style="color: #9cdcfe;">ttc_dev</span></div></div></div></div></foreignObject><text x="1242" y="1391" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="21px">*ttc_dev</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 578px; height: 1px; padding-top: 1175px; margin-left: 501px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 50px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">sys_init.c</div></div></div></foreignObject><text x="790" y="1190" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="50px" text-anchor="middle">sys_init.c</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 282px; height: 1px; padding-top: 1640px; margin-left: 797px;"><div data-drawio-colors="color: #FF0080; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(255, 0, 128); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">实例化设备</div></div></div></foreignObject><text x="938" y="1646" fill="#FF0080" font-family="Helvetica" font-size="21px" text-anchor="middle">实例化设备</text></switch></g><rect x="280" y="90" width="740" height="970" rx="111" ry="111" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 738px; height: 1px; padding-top: 97px; margin-left: 281px;"><div data-drawio-colors="color: #FF0080; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(255, 0, 128); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><font style="font-size: 30px;">main()</font></div></div></div></foreignObject><text x="650" y="118" fill="#FF0080" font-family="Helvetica" font-size="21px" text-anchor="middle">main()</text></switch></g><path d="M 420 185 L 200 185 Q 190 185 190.11 195 L 199.89 1060 Q 200 1070 210 1070 L 780 1070 Q 790 1070 790 1080 L 790 1116.82" fill="none" stroke="#ff0000" stroke-width="10" stroke-miterlimit="10" stroke-dasharray="30 30" pointer-events="none"/><path d="M 790 1128.82 L 782 1112.82 L 790 1116.82 L 798 1112.82 Z" fill="#ff0000" stroke="#ff0000" stroke-width="10" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 558px; height: 1px; padding-top: 30px; margin-left: 371px;"><div data-drawio-colors="color: #FF0080; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(255, 0, 128); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><font style="font-size: 50px;">libmetal_amp_demod.c</font></div></div></div></foreignObject><text x="650" y="36" fill="#FF0080" font-family="Helvetica" font-size="21px" text-anchor="middle">libmetal_amp_demod.c</text></switch></g><rect x="420" y="150" width="460" height="70" rx="10.5" ry="10.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 458px; height: 1px; padding-top: 185px; margin-left: 421px;"><div data-drawio-colors="color: #FF0080; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 26px; font-family: Helvetica; color: rgb(255, 0, 128); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 26px; line-height: 126%;"><span style="color: rgb(106, 153, 85); font-size: 26px;">Setup libmetal resources</span></div><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 26px; line-height: 126%;"><div style="line-height: 126%; font-size: 26px;"><span style="color: rgb(220, 220, 170); font-size: 26px;">sys_init</span>();</div></div></div></div></div></foreignObject><text x="650" y="193" fill="#FF0080" font-family="Helvetica" font-size="26px" text-anchor="middle">Setup libmetal resources...</text></switch></g><rect x="380" y="840" width="550" height="70" rx="10.5" ry="10.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 548px; height: 1px; padding-top: 875px; margin-left: 381px;"><div data-drawio-colors="color: #FF0080; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 26px; font-family: Helvetica; color: rgb(255, 0, 128); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 26px; line-height: 126%;"><div style="line-height: 126%; font-size: 26px;"><span style="color: rgb(106, 153, 85); font-size: 26px;">Run the shared memory throughput demo</span></div></div><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 26px; line-height: 126%;"><span style="color: rgb(220, 220, 170); font-size: 26px;">shmem_throughput_demod</span>();</div></div></div></div></foreignObject><text x="655" y="883" fill="#FF0080" font-family="Helvetica" font-size="26px" text-anchor="middle">Run the shared memory throughput demo...</text></switch></g><rect x="385" y="720" width="540" height="70" rx="10.5" ry="10.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 538px; height: 1px; padding-top: 755px; margin-left: 386px;"><div data-drawio-colors="color: #FF0080; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 26px; font-family: Helvetica; color: rgb(255, 0, 128); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 26px; line-height: 126%;"><div style="line-height: 126%; font-size: 26px;"><span style="color: rgb(106, 153, 85); font-size: 26px;">Run the shared memory latency demo</span></div></div><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 26px; line-height: 126%;"><span style="color: rgb(220, 220, 170); font-size: 26px;">shmem_latency_demod</span>();</div></div></div></div></foreignObject><text x="655" y="763" fill="#FF0080" font-family="Helvetica" font-size="26px" text-anchor="middle">Run the shared memory latency demo...</text></switch></g><rect x="420" y="600" width="460" height="70" rx="10.5" ry="10.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 458px; height: 1px; padding-top: 635px; margin-left: 421px;"><div data-drawio-colors="color: #FF0080; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 26px; font-family: Helvetica; color: rgb(255, 0, 128); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 26px; line-height: 126%;"><div style="line-height: 126%; font-size: 26px;"><span style="color: rgb(106, 153, 85); font-size: 26px;">Run the ipi latency demo</span></div></div><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 26px; line-height: 126%;"><span style="color: rgb(220, 220, 170); font-size: 26px;">ipi_latency_demod</span>();</div></div></div></div></foreignObject><text x="650" y="643" fill="#FF0080" font-family="Helvetica" font-size="26px" text-anchor="middle">Run the ipi latency demo...</text></switch></g><rect x="370" y="480" width="550" height="70" rx="10.5" ry="10.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 548px; height: 1px; padding-top: 515px; margin-left: 371px;"><div data-drawio-colors="color: #FF0080; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 26px; font-family: Helvetica; color: rgb(255, 0, 128); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 26px; line-height: 126%;"><div style="line-height: 126%; font-size: 26px;"><span style="color: rgb(106, 153, 85); font-size: 26px;">Run the IPI with shared memory demo</span></div></div><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 26px; line-height: 126%;"><span style="color: rgb(220, 220, 170); font-size: 26px;">ipi_shmem_demod</span>();</div></div></div></div></foreignObject><text x="645" y="523" fill="#FF0080" font-family="Helvetica" font-size="26px" text-anchor="middle">Run the IPI with shared memory demo...</text></switch></g><rect x="350" y="370" width="610" height="70" rx="10.5" ry="10.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 608px; height: 1px; padding-top: 405px; margin-left: 351px;"><div data-drawio-colors="color: #FF0080; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 26px; font-family: Helvetica; color: rgb(255, 0, 128); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 26px; line-height: 126%;"><div style="line-height: 126%; font-size: 26px;"><span style="color: rgb(106, 153, 85); font-size: 26px;">Run the atomic across shared memory demo</span></div></div><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 26px; line-height: 126%;"><span style="color: rgb(220, 220, 170); font-size: 26px;">atomic_shmem_demod</span>();</div></div></div></div></foreignObject><text x="655" y="413" fill="#FF0080" font-family="Helvetica" font-size="26px" text-anchor="middle">Run the atomic across shared memory demo...</text></switch></g><rect x="421" y="260" width="460" height="70" rx="10.5" ry="10.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 458px; height: 1px; padding-top: 295px; margin-left: 422px;"><div data-drawio-colors="color: #FF0080; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 26px; font-family: Helvetica; color: rgb(255, 0, 128); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 26px; line-height: 126%;"><div style="line-height: 126%; font-size: 26px;"><span style="color: rgb(106, 153, 85); font-size: 26px;">Run the shared memory demo</span></div><div style="line-height: 126%; font-size: 26px;"><div style="line-height: 126%; font-size: 26px;"><span style="color: rgb(220, 220, 170); font-size: 26px;">shmem_demod</span>();</div></div></div></div></div></div></foreignObject><text x="651" y="303" fill="#FF0080" font-family="Helvetica" font-size="26px" text-anchor="middle">Run the shared memory demo...</text></switch></g><rect x="420" y="950" width="460" height="70" rx="10.5" ry="10.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 458px; height: 1px; padding-top: 985px; margin-left: 421px;"><div data-drawio-colors="color: #FF0080; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 26px; font-family: Helvetica; color: rgb(255, 0, 128); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 26px; line-height: 126%;"><div style="line-height: 126%; font-size: 26px;"><span style="color: rgb(106, 153, 85); font-size: 26px;">Cleanup libmetal resources</span></div></div><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 26px; line-height: 126%;"><span style="color: rgb(220, 220, 170); font-size: 26px;">sys_cleanup</span>();</div></div></div></div></foreignObject><text x="650" y="993" fill="#FF0080" font-family="Helvetica" font-size="26px" text-anchor="middle">Cleanup libmetal resources...</text></switch></g><path d="M 1020 575 L 1066.82 575" fill="none" stroke="#ff0000" stroke-width="10" stroke-miterlimit="10" stroke-dasharray="30 30" pointer-events="none"/><path d="M 1078.82 575 L 1062.82 583 L 1066.82 575 L 1062.82 567 Z" fill="#ff0000" stroke="#ff0000" stroke-width="10" stroke-miterlimit="10" pointer-events="none"/><path d="M 880 985 L 2823.11 1662.37" fill="none" stroke="#ff0000" stroke-width="10" stroke-miterlimit="10" stroke-dasharray="30 30" pointer-events="none"/><path d="M 2834.44 1666.32 L 2816.7 1668.61 L 2823.11 1662.37 L 2821.97 1653.5 Z" fill="#ff0000" stroke="#ff0000" stroke-width="10" stroke-miterlimit="10" pointer-events="none"/><path d="M 1819 524.98 L 2146.22 554.27" fill="none" stroke="#ff0000" stroke-width="5" stroke-miterlimit="10" stroke-dasharray="15 15" pointer-events="none"/><path d="M 2154.43 555 L 2142.99 559.5 L 2146.22 554.27 L 2143.97 548.54 Z" fill="#ff0000" stroke="#ff0000" stroke-width="5" stroke-miterlimit="10" pointer-events="none"/><path d="M 1482.38 560 L 1480.97 616.16" fill="none" stroke="#ff0000" stroke-width="5" stroke-miterlimit="10" stroke-dasharray="15 15" pointer-events="none"/><path d="M 1480.76 624.41 L 1475.54 613.28 L 1480.97 616.16 L 1486.54 613.55 Z" fill="#ff0000" stroke="#ff0000" stroke-width="5" stroke-miterlimit="10" pointer-events="none"/><path d="M 1484 560 L 1484 570 Q 1484 580 1494 580 L 1840 580 Q 1850 580 1850 590 L 1850 895 Q 1850 905 1840 905 L 1826.84 905" fill="none" stroke="#ff0000" stroke-width="5" stroke-miterlimit="10" stroke-dasharray="15 15" pointer-events="none"/><path d="M 1818.59 905 L 1829.59 899.5 L 1826.84 905 L 1829.59 910.5 Z" fill="#ff0000" stroke="#ff0000" stroke-width="5" stroke-miterlimit="10" pointer-events="none"/><rect x="1149" y="430" width="670" height="130" rx="19.5" ry="19.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 668px; height: 1px; padding-top: 495px; margin-left: 1150px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 30px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 126%; font-size: 21px;"><span style="color: rgb(106, 153, 85);"><font style="font-size: 21px;">shmem_echod() - Show use of shared memory with libmetal.</font></span></div><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 126%; font-size: 21px;"><div style="line-height: 126%;"><span style="color: rgb(106, 153, 85);"><font style="font-size: 21px;">Wait for message from APU. Once received, read and echo it back.</font></span></div></div></div></div></div></foreignObject><text x="1484" y="504" fill="black" font-family="Helvetica" font-size="30px" text-anchor="middle">shmem_echod() - Show use of shared memory wit...</text></switch></g><rect x="1144" y="630" width="670" height="130" rx="19.5" ry="19.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 668px; height: 1px; padding-top: 695px; margin-left: 1145px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 30px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 126%; font-size: 21px;"><span style="color: rgb(106, 153, 85);"><font style="font-size: 21px;">reset_timer() - function to reset TTC counter</font></span></div><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; line-height: 126%; font-size: 21px;"><div style="line-height: 126%;"><span style="color: rgb(106, 153, 85);"><font style="font-size: 21px;">Set the RST bit in the Count Control Reg.</font></span></div><div style="line-height: 126%;"><div style="border-color: var(--border-color); line-height: 126%;"><span style="border-color: var(--border-color); color: rgb(106, 153, 85);"><font style="font-size: 21px;">stop_timer() - function to stop TTC counter</font></span></div><div style="border-color: var(--border-color); line-height: 126%;"><div style="border-color: var(--border-color); line-height: 126%;"><span style="border-color: var(--border-color); color: rgb(106, 153, 85);"><font style="font-size: 21px;">Set the disable bit in the Count Control Reg.</font></span></div></div></div></div></div></div></div></foreignObject><text x="1479" y="704" fill="black" font-family="Helvetica" font-size="30px" text-anchor="middle">reset_timer() - function to reset TTC counter...</text></switch></g><rect x="1143" y="830" width="670" height="150" rx="22.5" ry="22.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 668px; height: 1px; padding-top: 905px; margin-left: 1144px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 30px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 21px; line-height: 126%;"><div style="line-height: 126%;"><span style="color: #6a9955;">ipi_irq_handler() - IPI interrupt handler</span></div><div style="line-height: 126%;"><div style="line-height: 126%;"><span style="color: #6a9955;">measure_ipi_latencyd() - measure IPI latency with libmetal </span><span style="color: rgb(106, 153, 85);">Loop until APU tells RPU to stop via shared memory.</span></div></div></div></div></div></div></foreignObject><text x="1478" y="914" fill="black" font-family="Helvetica" font-size="30px" text-anchor="middle">ipi_irq_handler() - IPI interrupt handler...</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 415px; margin-left: 1150px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 30px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><font color="#ff3333">shm</font></div></div></div></foreignObject><text x="1179" y="424" fill="black" font-family="Helvetica" font-size="30px" text-anchor="middle">shm</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 615px; margin-left: 1145px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 30px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><font color="#ff3333">ttc</font></div></div></div></foreignObject><text x="1174" y="624" fill="black" font-family="Helvetica" font-size="30px" text-anchor="middle">ttc</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 805px; margin-left: 1156px;"><div data-drawio-colors="color: black; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 30px; font-family: Helvetica; color: black; line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><font color="#ff3333">ipi</font></div></div></div></foreignObject><text x="1185" y="814" fill="black" font-family="Helvetica" font-size="30px" text-anchor="middle">ipi</text></switch></g><path d="M 1920 120 L 1920 90 L 2410 90 L 2410 120" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1920 120 L 1920 470 L 2410 470 L 2410 120" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1920 120 L 2410 120" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 488px; height: 1px; padding-top: 105px; margin-left: 1921px;"><div data-drawio-colors="color: #FF3333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(255, 51, 51); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 12px; line-height: 16px;"><span style="color: #6a9955;">shmem_demo.c(主机 APU)</span></div></div></div></div></foreignObject><text x="2165" y="111" fill="#FF3333" font-family="Helvetica" font-size="21px" text-anchor="middle">shmem_demo.c(主机 APU)</text></switch></g><rect x="1920" y="120" width="490" height="30" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 480px; height: 1px; padding-top: 135px; margin-left: 1926px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 26px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="font-family: Consolas, "Courier New", monospace; line-height: 16px;"><font style="font-size: 15px;">1.Open the shared memory device.<span style="white-space: pre;"> </span></font></div></div></div></div></foreignObject><text x="1926" y="141" fill="#333333" font-family="Helvetica" font-size="21px">1.Open the shared memory device. </text></switch></g><rect x="1920" y="150" width="490" height="40" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 480px; height: 1px; padding-top: 170px; margin-left: 1926px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 36px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="font-family: Consolas, "Courier New", monospace; line-height: 16px;"><font style="font-size: 15px;">2.Clear the demo control TX/RX available values in shared memory.</font></div></div></div></div></foreignObject><text x="1926" y="176" fill="#333333" font-family="Helvetica" font-size="21px">2.Clear the demo control TX/RX available value...</text></switch></g><rect x="1920" y="190" width="490" height="40" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 480px; height: 1px; padding-top: 210px; margin-left: 1926px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 36px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="font-family: Consolas, "Courier New", monospace; line-height: 16px;"><font style="font-size: 15px;">3.APU set demo control in shared memory to notify RPU demo has started</font></div></div></div></div></foreignObject><text x="1926" y="216" fill="#333333" font-family="Helvetica" font-size="21px">3.APU set demo control in shared memory to not...</text></switch></g><rect x="1920" y="230" width="490" height="30" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 480px; height: 1px; padding-top: 245px; margin-left: 1926px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 26px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="font-family: Consolas, "Courier New", monospace; line-height: 16px;"><font style="font-size: 15px;">4.APU will write message to the shared memory.</font></div></div></div></div></foreignObject><text x="1926" y="251" fill="#333333" font-family="Helvetica" font-size="21px">4.APU will write message to the shared memory.</text></switch></g><rect x="1920" y="260" width="490" height="40" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 480px; height: 1px; padding-top: 280px; margin-left: 1926px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 36px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="font-family: Consolas, "Courier New", monospace; font-size: 15px; line-height: 16px;"><span style="">5.APU will increase TX avail values in the shared memory to notify RPU </span><span style="">there is a message ready to read.</span></div></div></div></div></foreignObject><text x="1926" y="286" fill="#333333" font-family="Helvetica" font-size="21px">5.APU will increase TX avail values in the sha...</text></switch></g><rect x="1920" y="300" width="490" height="60" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 480px; height: 1px; padding-top: 330px; margin-left: 1926px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 56px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="font-family: Consolas, "Courier New", monospace; font-size: 15px; line-height: 16px;"><span style="">6.APU will poll the RX avail value in th shared memory to see if RPU </span><span style="">has echoed back the message into the shared memory.</span></div></div></div></div></foreignObject><text x="1926" y="336" fill="#333333" font-family="Helvetica" font-size="21px">6.APU will poll the RX avail value in th share...</text></switch></g><rect x="1920" y="360" width="490" height="40" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 480px; height: 1px; padding-top: 380px; margin-left: 1926px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 36px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="font-family: Consolas, "Courier New", monospace; font-size: 15px; line-height: 16px;"><span style="">7.When APU knows there is new RX message available, it will read the </span><span style="">RX message from the shared memory.</span></div></div></div></div></foreignObject><text x="1926" y="386" fill="#333333" font-family="Helvetica" font-size="21px">7.When APU knows there is new RX message avail...</text></switch></g><rect x="1920" y="400" width="490" height="40" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 480px; height: 1px; padding-top: 420px; margin-left: 1926px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 36px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="font-family: Consolas, "Courier New", monospace; line-height: 16px;"><div style="line-height: 16px;"><font style="font-size: 15px;">8.APU will verify the message to see if it matches the one it has sent.</font></div></div></div></div></div></foreignObject><text x="1926" y="426" fill="#333333" font-family="Helvetica" font-size="21px">8.APU will verify the message to see if it mat...</text></switch></g><rect x="1920" y="440" width="490" height="30" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 480px; height: 1px; padding-top: 455px; margin-left: 1926px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 26px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="font-family: Consolas, "Courier New", monospace; line-height: 16px;"><div style="line-height: 16px;"><div style="line-height: 16px;"><font style="font-size: 15px;">9.Close the shared memory device.</font></div></div></div></div></div></div></foreignObject><text x="1926" y="461" fill="#333333" font-family="Helvetica" font-size="21px">9.Close the shared memory device.</text></switch></g><path d="M 1920 660 L 1920 630 L 2410 630 L 2410 660" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1920 660 L 1920 1010 L 2410 1010 L 2410 660" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1920 660 L 2410 660" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 488px; height: 1px; padding-top: 645px; margin-left: 1921px;"><div data-drawio-colors="color: #FF3333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(255, 51, 51); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; font-size: 12px; line-height: 16px;"><span style="color: #6a9955;">shmem_demo.c(从机 RPU)</span></div></div></div></div></foreignObject><text x="2165" y="651" fill="#FF3333" font-family="Helvetica" font-size="21px" text-anchor="middle">shmem_demo.c(从机 RPU)</text></switch></g><rect x="1920" y="660" width="490" height="30" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 480px; height: 1px; padding-top: 675px; margin-left: 1926px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 26px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="font-family: Consolas, "Courier New", monospace; line-height: 16px;"><font style="font-size: 15px;">1.Get the shared memory device I/O region.<span style=""> </span></font></div></div></div></div></foreignObject><text x="1926" y="681" fill="#333333" font-family="Helvetica" font-size="21px">1.Get the shared memory device I/O region. </text></switch></g><rect x="1920" y="690" width="490" height="30" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 480px; height: 1px; padding-top: 705px; margin-left: 1926px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 26px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="font-family: Consolas, "Courier New", monospace; line-height: 16px;"><font style="font-size: 15px;">2.Clear the demo control value in shared memory.</font></div></div></div></div></foreignObject><text x="1926" y="711" fill="#333333" font-family="Helvetica" font-size="21px">2.Clear the demo control value in shared memor...</text></switch></g><rect x="1920" y="720" width="490" height="40" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 480px; height: 1px; padding-top: 740px; margin-left: 1926px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 36px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="font-family: Consolas, "Courier New", monospace; line-height: 16px;"><font style="font-size: 15px;">3.Check the demo control value in the shared memory to wait for APU to start the demo.</font></div></div></div></div></foreignObject><text x="1926" y="746" fill="#333333" font-family="Helvetica" font-size="21px">3.Check the demo control value in the shared m...</text></switch></g><rect x="1920" y="760" width="490" height="60" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 480px; height: 1px; padding-top: 790px; margin-left: 1926px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 56px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="font-family: Consolas, "Courier New", monospace; line-height: 16px;"><font style="font-size: 15px;">4.Once the demo control value indicates the demo starts, it polls on RX available value to see if there is new RX message available.</font></div></div></div></div></foreignObject><text x="1926" y="796" fill="#333333" font-family="Helvetica" font-size="21px">4.Once the demo control value indicates the de...</text></switch></g><rect x="1920" y="820" width="490" height="40" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 480px; height: 1px; padding-top: 840px; margin-left: 1926px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 36px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="line-height: 16px;"><span style="font-family: Consolas, "Courier New", monospace; font-size: 15px;">5.</span><font face="Consolas, Courier New, monospace"><span style="font-size: 15px;">If there is a new RX message available, it reads the message from the shared memory.</span></font></div></div></div></div></foreignObject><text x="1926" y="846" fill="#333333" font-family="Helvetica" font-size="21px">5.If there is a new RX message available, it r...</text></switch></g><rect x="1920" y="860" width="490" height="30" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 480px; height: 1px; padding-top: 875px; margin-left: 1926px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 26px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="line-height: 16px;"><span style="font-family: Consolas, "Courier New", monospace; font-size: 15px;">6.</span><font face="Consolas, Courier New, monospace"><span style="font-size: 15px;">It echos back the message to the shared memory.</span></font></div></div></div></div></foreignObject><text x="1926" y="881" fill="#333333" font-family="Helvetica" font-size="21px">6.It echos back the message to the shared memo...</text></switch></g><rect x="1920" y="890" width="490" height="60" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 480px; height: 1px; padding-top: 920px; margin-left: 1926px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 56px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="font-family: Consolas, "Courier New", monospace; line-height: 16px;"><div style="line-height: 16px;"><font style="font-size: 15px;">7.AIt increases the TX available value in the shared memory to notify the other end there is a message available to read.</font></div></div></div></div></div></foreignObject><text x="1926" y="926" fill="#333333" font-family="Helvetica" font-size="21px">7.AIt increases the TX available value in the...</text></switch></g><rect x="1920" y="950" width="490" height="60" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 480px; height: 1px; padding-top: 980px; margin-left: 1926px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 56px; overflow: hidden;"><div style="display: inline-block; font-size: 21px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div style="font-family: Consolas, "Courier New", monospace; line-height: 16px;"><div style="line-height: 16px;"><div style="line-height: 16px;"><font style="font-size: 15px;">8.Check if the demo control value and the RX available values to see if demo finishes and if there is new RX data available.</font></div></div></div></div></div></div></foreignObject><text x="1926" y="986" fill="#333333" font-family="Helvetica" font-size="21px">8.Check if the demo control value and the RX a...</text></switch></g><path d="M 2165 616.16 L 2165 483.84" fill="none" stroke="#ff0000" stroke-width="5" stroke-miterlimit="10" stroke-dasharray="15 15" pointer-events="none"/><path d="M 2165 624.41 L 2159.5 613.41 L 2165 616.16 L 2170.5 613.41 Z" fill="#ff0000" stroke="#ff0000" stroke-width="5" stroke-miterlimit="10" pointer-events="none"/><path d="M 2165 475.59 L 2170.5 486.59 L 2165 483.84 L 2159.5 486.59 Z" fill="#ff0000" stroke="#ff0000" stroke-width="5" stroke-miterlimit="10" pointer-events="none"/><path d="M 2350 555.73 L 2446.16 555.97" fill="none" stroke="#ff0000" stroke-width="5" stroke-miterlimit="10" stroke-dasharray="15 15" pointer-events="none"/><path d="M 2454.41 555.99 L 2443.4 561.46 L 2446.16 555.97 L 2443.42 550.46 Z" fill="#ff0000" stroke="#ff0000" stroke-width="5" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 556px; margin-left: 2161px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><font style="font-size: 25px;">主从机通信交互</font></div></div></div></foreignObject><text x="2255" y="560" fill="#6666FF" font-family="Helvetica" font-size="15px" text-anchor="middle">主从机通信交互</text></switch></g><path d="M 2470 360 L 2470 330 L 2940 330 L 2940 360" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2470 360 L 2470 865 L 2940 865 L 2940 360" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2470 360 L 2940 360" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2470 423 L 2520 423 L 2590 423 L 2940 423" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2470 486 L 2520 486 L 2590 486 L 2940 486" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2470 550 L 2520 550 L 2590 550 L 2940 550" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2470 613 L 2520 613 L 2590 613 L 2940 613" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2470 676 L 2520 676 L 2590 676 L 2940 676" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2470 739 L 2520 739 L 2590 739 L 2940 739" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2470 802 L 2520 802 L 2590 802 L 2940 802" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2520 360 L 2520 423 L 2520 486 L 2520 550 L 2520 613 L 2520 676 L 2520 739 L 2520 802 L 2520 865" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2590 360 L 2590 423 L 2590 486 L 2590 550 L 2590 613 L 2590 676 L 2590 739 L 2590 802 L 2590 865" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="#6666FF" font-family="Helvetica" font-weight="bold" pointer-events="none" text-anchor="middle" font-size="15px"><text x="2704.5" y="351">Table</text></g><path d="M 2470 360 M 2520 360 M 2520 423 M 2470 423" fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="square" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 392px; margin-left: 2471px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 59px; overflow: hidden;"><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">偏移</div></div></div></foreignObject><text x="2495" y="396" fill="#6666FF" font-family="Helvetica" font-size="15px" text-anchor="middle">偏移</text></switch></g><path d="M 2520 360 M 2590 360 M 2590 423 M 2520 423" fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="square" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 392px; margin-left: 2521px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 59px; overflow: hidden;"><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">大小</div></div></div></foreignObject><text x="2555" y="396" fill="#6666FF" font-family="Helvetica" font-size="15px" text-anchor="middle">大小</text></switch></g><path d="M 2590 360 M 2940 360 M 2940 423 M 2590 423" fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="square" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 348px; height: 1px; padding-top: 392px; margin-left: 2591px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 59px; overflow: hidden;"><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">说明</div></div></div></foreignObject><text x="2765" y="396" fill="#6666FF" font-family="Helvetica" font-size="15px" text-anchor="middle">说明</text></switch></g><path d="M 2470 423 M 2520 423 M 2520 486 M 2470 486" fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="square" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 455px; margin-left: 2471px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 59px; overflow: hidden;"><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">0</div></div></div></foreignObject><text x="2495" y="459" fill="#6666FF" font-family="Helvetica" font-size="15px" text-anchor="middle">0</text></switch></g><path d="M 2520 423 M 2590 423 M 2590 486 M 2520 486" fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="square" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 455px; margin-left: 2521px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 59px; overflow: hidden;"><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">4Bytes</div></div></div></foreignObject><text x="2555" y="459" fill="#6666FF" font-family="Helvetica" font-size="15px" text-anchor="middle">4Bytes</text></switch></g><path d="M 2590 423 M 2940 423 M 2940 486 M 2590 486" fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="square" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 348px; height: 1px; padding-top: 455px; margin-left: 2591px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 59px; overflow: hidden;"><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">DEMO control status shows if demo starts or not</div></div></div></foreignObject><text x="2765" y="459" fill="#6666FF" font-family="Helvetica" font-size="15px" text-anchor="middle">DEMO control status shows if demo starts or not</text></switch></g><path d="M 2470 486 M 2520 486 M 2520 550 M 2470 550" fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="square" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 518px; margin-left: 2471px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 60px; overflow: hidden;"><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">0x04</div></div></div></foreignObject><text x="2495" y="523" fill="#6666FF" font-family="Helvetica" font-size="15px" text-anchor="middle">0x04</text></switch></g><path d="M 2520 486 M 2590 486 M 2590 550 M 2520 550" fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="square" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 518px; margin-left: 2521px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 60px; overflow: hidden;"><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">4Bytes</div></div></div></foreignObject><text x="2555" y="523" fill="#6666FF" font-family="Helvetica" font-size="15px" text-anchor="middle">4Bytes</text></switch></g><path d="M 2590 486 M 2940 486 M 2940 550 M 2590 550" fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="square" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 348px; height: 1px; padding-top: 518px; margin-left: 2591px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 60px; overflow: hidden;"><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">number of APU to RPU buffers available to RPU</div></div></div></foreignObject><text x="2765" y="523" fill="#6666FF" font-family="Helvetica" font-size="15px" text-anchor="middle">number of APU to RPU buffers available to RPU</text></switch></g><path d="M 2470 550 M 2520 550 M 2520 613 M 2470 613" fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="square" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 582px; margin-left: 2471px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 59px; overflow: hidden;"><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">0x08</div></div></div></foreignObject><text x="2495" y="586" fill="#6666FF" font-family="Helvetica" font-size="15px" text-anchor="middle">0x08</text></switch></g><path d="M 2520 550 M 2590 550 M 2590 613 M 2520 613" fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="square" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 582px; margin-left: 2521px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 59px; overflow: hidden;"><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">4Bytes</div></div></div></foreignObject><text x="2555" y="586" fill="#6666FF" font-family="Helvetica" font-size="15px" text-anchor="middle">4Bytes</text></switch></g><path d="M 2590 550 M 2940 550 M 2940 613 M 2590 613" fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="square" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 348px; height: 1px; padding-top: 582px; margin-left: 2591px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 59px; overflow: hidden;"><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">number of APU to RPU buffers consumed by RPU</div></div></div></foreignObject><text x="2765" y="586" fill="#6666FF" font-family="Helvetica" font-size="15px" text-anchor="middle">number of APU to RPU buffers consumed by RPU</text></switch></g><path d="M 2470 613 M 2520 613 M 2520 676 M 2470 676" fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="square" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 645px; margin-left: 2471px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 59px; overflow: hidden;"><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">0x0c</div></div></div></foreignObject><text x="2495" y="649" fill="#6666FF" font-family="Helvetica" font-size="15px" text-anchor="middle">0x0c</text></switch></g><path d="M 2520 613 M 2590 613 M 2590 676 M 2520 676" fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="square" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 645px; margin-left: 2521px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 59px; overflow: hidden;"><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">4Bytes</div></div></div></foreignObject><text x="2555" y="649" fill="#6666FF" font-family="Helvetica" font-size="15px" text-anchor="middle">4Bytes</text></switch></g><path d="M 2590 613 M 2940 613 M 2940 676 M 2590 676" fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="square" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 348px; height: 1px; padding-top: 645px; margin-left: 2591px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 59px; overflow: hidden;"><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">number of RPU to APU buffers available to APU</div></div></div></foreignObject><text x="2765" y="649" fill="#6666FF" font-family="Helvetica" font-size="15px" text-anchor="middle">number of RPU to APU buffers available to APU</text></switch></g><path d="M 2470 676 M 2520 676 M 2520 739 M 2470 739" fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="square" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 708px; margin-left: 2471px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 59px; overflow: hidden;"><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">0x10</div></div></div></foreignObject><text x="2495" y="712" fill="#6666FF" font-family="Helvetica" font-size="15px" text-anchor="middle">0x10</text></switch></g><path d="M 2520 676 M 2590 676 M 2590 739 M 2520 739" fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="square" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 708px; margin-left: 2521px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 59px; overflow: hidden;"><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">4Bytes</div></div></div></foreignObject><text x="2555" y="712" fill="#6666FF" font-family="Helvetica" font-size="15px" text-anchor="middle">4Bytes</text></switch></g><path d="M 2590 676 M 2940 676 M 2940 739 M 2590 739" fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="square" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 348px; height: 1px; padding-top: 708px; margin-left: 2591px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 59px; overflow: hidden;"><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">number of RPU to APU buffers consumed by APU</div></div></div></foreignObject><text x="2765" y="712" fill="#6666FF" font-family="Helvetica" font-size="15px" text-anchor="middle">number of RPU to APU buffers consumed by APU</text></switch></g><path d="M 2470 739 M 2520 739 M 2520 802 M 2470 802" fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="square" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 771px; margin-left: 2471px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 59px; overflow: hidden;"><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">0x14</div></div></div></foreignObject><text x="2495" y="775" fill="#6666FF" font-family="Helvetica" font-size="15px" text-anchor="middle">0x14</text></switch></g><path d="M 2520 739 M 2590 739 M 2590 802 M 2520 802" fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="square" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 771px; margin-left: 2521px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 59px; overflow: hidden;"><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">1KBytes</div></div></div></foreignObject><text x="2555" y="775" fill="#6666FF" font-family="Helvetica" font-size="15px" text-anchor="middle">1KBytes</text></switch></g><path d="M 2590 739 M 2940 739 M 2940 802 M 2590 802" fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="square" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 348px; height: 1px; padding-top: 771px; margin-left: 2591px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 59px; overflow: hidden;"><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">APU to RPU buffer</div></div></div></foreignObject><text x="2765" y="775" fill="#6666FF" font-family="Helvetica" font-size="15px" text-anchor="middle">APU to RPU buffer</text></switch></g><path d="M 2470 802 M 2520 802 M 2520 865 M 2470 865" fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="square" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 834px; margin-left: 2471px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 59px; overflow: hidden;"><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">0x800</div></div></div></foreignObject><text x="2495" y="838" fill="#6666FF" font-family="Helvetica" font-size="15px" text-anchor="middle">0x800</text></switch></g><path d="M 2520 802 M 2590 802 M 2590 865 M 2520 865" fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="square" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 834px; margin-left: 2521px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 59px; overflow: hidden;"><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">1KBytes</div></div></div></foreignObject><text x="2555" y="838" fill="#6666FF" font-family="Helvetica" font-size="15px" text-anchor="middle">1KBytes</text></switch></g><path d="M 2590 802 M 2940 802 M 2940 865 M 2590 865" fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="square" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 348px; height: 1px; padding-top: 834px; margin-left: 2591px;"><div data-drawio-colors="color: #6666FF; " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 59px; overflow: hidden;"><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(102, 102, 255); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">RPU to APU buffer</div></div></div></foreignObject><text x="2765" y="838" fill="#6666FF" font-family="Helvetica" font-size="15px" text-anchor="middle">RPU to APU buffer</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
|