monado/doc/images/out-of-proc.drawio.svg
2022-07-15 13:47:39 -05:00

416 lines
32 KiB
XML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="921px" height="828px" viewBox="-0.5 -0.5 921 828" content="&lt;mxfile&gt;&lt;diagram id=&quot;i7RjRSwkiHJf6eIeykeo&quot; name=&quot;Page-1&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;">
<defs>
<clipPath id="mx-clip-524-751-312-26-0">
<rect x="524" y="751" width="312" height="26"/>
</clipPath>
<clipPath id="mx-clip-524-777-312-26-0">
<rect x="524" y="777" width="312" height="26"/>
</clipPath>
<clipPath id="mx-clip-524-803-312-26-0">
<rect x="524" y="803" width="312" height="26"/>
</clipPath>
<clipPath id="mx-clip-84-751-312-26-0">
<rect x="84" y="751" width="312" height="26"/>
</clipPath>
<clipPath id="mx-clip-84-777-312-26-0">
<rect x="84" y="777" width="312" height="26"/>
</clipPath>
<clipPath id="mx-clip-84-803-312-26-0">
<rect x="84" y="803" width="312" height="26"/>
</clipPath>
</defs>
<g>
<path d="M 760 375 L 760 573.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 760 578.88 L 756.5 571.88 L 760 573.63 L 763.5 571.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" 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: 1px; height: 1px; padding-top: 478px; margin-left: 760px;">
<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: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">
creates
</div>
</div>
</div>
</foreignObject>
<text x="760" y="481" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">
creates
</text>
</switch>
</g>
<ellipse cx="760" cy="330" rx="110" ry="45" 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: 218px; height: 1px; padding-top: 330px; margin-left: 651px;">
<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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<font face="Courier New">
xrt_instance_create
<br/>
</font>
(full implementation in targets/common/target_instance.c)
</div>
</div>
</div>
</foreignObject>
<text x="760" y="334" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
xrt_instance_create...
</text>
</switch>
</g>
<rect x="400" y="0" width="100" height="40" fill="none" stroke="none" 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: 1px; height: 1px; padding-top: 20px; margin-left: 450px;">
<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: 24px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap;">
With XRT_FEATURE_SERVICE enabled
</div>
</div>
</div>
</foreignObject>
<text x="450" y="27" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="24px" text-anchor="middle" font-weight="bold">
With XRT...
</text>
</switch>
</g>
<rect x="0" y="60" width="340" height="110" fill="none" stroke="none" 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 flex-start; width: 332px; height: 1px; padding-top: 50px; margin-left: 5px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 120px; overflow: hidden;">
<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;">
<h1>
in libopenxr_monado.so
</h1>
<p>
This library is loaded by the OpenXR loader and provides the entry points for that API. No direct hardware access takes place (neither for rendering nor device input) - forwarded over IPC links to service module. Built in xrt/targets/openxr
</p>
</div>
</div>
</div>
</foreignObject>
<text x="5" y="62" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">
in libopenxr_monado.so...
</text>
</switch>
</g>
<rect x="600" y="60" width="320" height="100" fill="none" stroke="none" 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 flex-start; width: 312px; height: 1px; padding-top: 50px; margin-left: 605px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 110px; overflow: hidden;">
<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;">
<h1>
in monado-service
</h1>
<p>
This persistent service performs hardware interaction and exposes functionality over IPC to the runtime SO loaded in the app's process. Built in xrt/targets/service
</p>
</div>
</div>
</div>
</foreignObject>
<text x="605" y="62" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">
in monado-service...
</text>
</switch>
</g>
<ellipse cx="160" cy="210" rx="110" ry="40" 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: 218px; height: 1px; padding-top: 210px; margin-left: 51px;">
<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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<font face="Courier New">
xrCreateInstance
</font>
<br/>
(in state_trackers/oxr/oxr_instance.c)
</div>
</div>
</div>
</foreignObject>
<text x="160" y="214" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
xrCreateInstance...
</text>
</switch>
</g>
<ellipse cx="160" cy="330" rx="80" ry="40" 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: 158px; height: 1px; padding-top: 330px; margin-left: 81px;">
<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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<font face="Courier New">
xrt_instance_create
</font>
<br/>
(trampoline in targets/openxr/target.c)
</div>
</div>
</div>
</foreignObject>
<text x="160" y="334" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
xrt_instance_create...
</text>
</switch>
</g>
<path d="M 160 250 L 160 283.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 160 288.88 L 156.5 281.88 L 160 283.63 L 163.5 281.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" 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: 1px; height: 1px; padding-top: 270px; margin-left: 160px;">
<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: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">
calls
</div>
</div>
</div>
</foreignObject>
<text x="160" y="273" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">
calls
</text>
</switch>
</g>
<ellipse cx="160" cy="470" rx="80" ry="50" 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: 158px; height: 1px; padding-top: 470px; margin-left: 81px;">
<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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<font face="Courier New">
ipc_instance_create
</font>
<br/>
(in ipc/ipc_client_instance)
</div>
</div>
</div>
</foreignObject>
<text x="160" y="474" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
ipc_instance_create...
</text>
</switch>
</g>
<path d="M 160 370 L 160 413.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 160 418.88 L 156.5 411.88 L 160 413.63 L 163.5 411.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" 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: 1px; height: 1px; padding-top: 395px; margin-left: 160px;">
<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: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">
calls
</div>
</div>
</div>
</foreignObject>
<text x="160" y="398" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">
calls
</text>
</switch>
</g>
<rect x="40" y="580" width="240" height="70" 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: 238px; height: 1px; padding-top: 615px; margin-left: 41px;">
<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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<div>
<font face="Courier New">
ipc_client_instance
</font>
</div>
<div>
which implements
<font face="Courier New">
xrt_instance
</font>
with client proxy functions
</div>
</div>
</div>
</div>
</foreignObject>
<text x="160" y="619" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
ipc_client_instance...
</text>
</switch>
</g>
<path d="M 160 520 L 160 573.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 160 578.88 L 156.5 571.88 L 160 573.63 L 163.5 571.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" 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: 1px; height: 1px; padding-top: 550px; margin-left: 160px;">
<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: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">
creates
</div>
</div>
</div>
</foreignObject>
<text x="160" y="553" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">
creates
</text>
</switch>
</g>
<rect x="640" y="580" width="240" height="70" 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: 238px; height: 1px; padding-top: 615px; margin-left: 641px;">
<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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<div>
<font face="Courier New">
t_instance
</font>
</div>
<div>
which implements
<font face="Courier New">
xrt_instance
</font>
with functions that access hardware, using a prober created with all target lists
</div>
</div>
</div>
</div>
</foreignObject>
<text x="760" y="619" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
t_instance...
</text>
</switch>
</g>
<path d="M 520 746 L 520 720 L 840 720 L 840 746" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 520 746 L 520 824 L 840 824 L 840 746" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/>
<path d="M 520 746 L 840 746" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/>
<g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px">
<text x="679.5" y="737.5">
t_instance
</text>
</g>
<g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-524-751-312-26-0)" font-size="12px">
<text x="525.5" y="763.5">
create_system = t_instance_create_system
</text>
</g>
<g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-524-777-312-26-0)" font-size="12px">
<text x="525.5" y="789.5">
get_prober = t_instance_get_prober
</text>
</g>
<g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-524-803-312-26-0)" font-size="12px">
<text x="525.5" y="815.5">
destroy = t_instance_destroy
</text>
</g>
<path d="M 80 746 L 80 720 L 400 720 L 400 746" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/>
<path d="M 80 746 L 80 824 L 400 824 L 400 746" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/>
<path d="M 80 746 L 400 746" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/>
<g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px">
<text x="239.5" y="737.5">
ipc_client_instance
</text>
</g>
<g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-84-751-312-26-0)" font-size="12px">
<text x="85.5" y="763.5">
create_system = ipc_client_instance_create_system
</text>
</g>
<g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-84-777-312-26-0)" font-size="12px">
<text x="85.5" y="789.5">
get_prober = ipc_client_instance_get_prober
</text>
</g>
<g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-84-803-312-26-0)" font-size="12px">
<text x="85.5" y="815.5">
destroy = ipc_client_instance_destroy
</text>
</g>
<rect x="400" y="580" width="120" height="50" 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: 1px; height: 1px; padding-top: 605px; margin-left: 460px;">
<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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: nowrap;">
«interface»
<br/>
<b>
xrt_instance
</b>
</div>
</div>
</div>
</foreignObject>
<text x="460" y="609" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
«interface»...
</text>
</switch>
</g>
<path d="M 760 240 L 760 278.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/>
<path d="M 760 283.88 L 756.5 276.88 L 760 278.63 L 763.5 276.88 Z" fill="rgb(0, 0, 0)" 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: 1px; height: 1px; padding-top: 263px; margin-left: 760px;">
<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: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; background-color: rgb(255, 255, 255); white-space: nowrap;">
calls
</div>
</div>
</div>
</foreignObject>
<text x="760" y="266" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">
calls
</text>
</switch>
</g>
<ellipse cx="760" cy="200" rx="85" ry="40" 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: 168px; height: 1px; padding-top: 200px; margin-left: 676px;">
<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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">
<font face="Courier New">
init_all()
</font>
<br/>
(in ipc/ipc_server_process.c)
</div>
</div>
</div>
</foreignObject>
<text x="760" y="204" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
init_all()...
</text>
</switch>
</g>
<path d="M 240 720 L 240 675 L 460 675 L 460 644.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
<path d="M 460 631.12 L 466.5 644.12 L 453.5 644.12 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/>
<path d="M 680 720 L 680 675 L 460 675 L 460 644.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
<path d="M 460 631.12 L 466.5 644.12 L 453.5 644.12 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/>
</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%">
Viewer does not support full SVG 1.1
</text>
</a>
</switch>
</svg>