zephyr/doc/kernel/drivers/device_driver_model.svg

4 lines
43 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.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="781px" height="1081px" viewBox="-0.5 -0.5 781 1081" content="&lt;mxfile modified=&quot;2019-08-20T04:58:57.469Z&quot; host=&quot;www.draw.io&quot; agent=&quot;Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36&quot; version=&quot;11.1.5&quot; etag=&quot;TvBkOlMUtpSV3ohWe1-0&quot; type=&quot;device&quot; pages=&quot;1&quot;&gt;&lt;diagram id=&quot;m_84MmO_CezBCIor-1Sk&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g><rect x="100" y="70" width="680" height="450" fill="#9ac7bf" stroke="#000000" pointer-events="none"/><rect x="280" y="320" width="300" height="180" fill="#b3b3b3" stroke="#000000" pointer-events="none"/><rect x="290" y="380" width="250" height="110" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(292.5,387.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="238" height="95" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 16px; font-family: &quot;Courier New&quot;; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 239px; white-space: nowrap; overflow-wrap: normal; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;"><div style="font-size: 12px ; white-space: normal">struct device {</div><div style="font-size: 12px ; white-space: normal">    const struct config *config;</div><div style="font-size: 12px ; white-space: normal">    const void *api;</div><div style="font-size: 12px ; white-space: normal">    void * const data;</div><div style="font-size: 12px ; white-space: normal">};</div><div style="font-size: 12px ; white-space: normal"><br /></div><div style="font-size: 12px ; white-space: normal">struct config {...};</div></div></div></foreignObject><text x="119" y="56" fill="#000000" text-anchor="middle" font-size="16px" font-family="Courier New">[Not supported by viewer]</text></switch></g><g transform="translate(291.5,356.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="218" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 16px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 219px; white-space: nowrap; overflow-wrap: normal; font-weight: bold; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Instance 2 of Device Driver 1</div></div></foreignObject><text x="109" y="16" fill="#000000" text-anchor="middle" font-size="16px" font-family="Helvetica" font-weight="bold">Instance 2 of Device Driver 1</text></switch></g><path d="M 490 420 L 560 420" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 560 350 L 560 420" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><ellipse cx="560" cy="340" rx="10" ry="10" fill="#ffffff" stroke="#000000" pointer-events="none"/><rect x="280" y="90" width="300" height="190" fill="#e6e6e6" stroke="#000000" pointer-events="none"/><g transform="translate(291.5,106.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="218" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 16px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 219px; white-space: nowrap; overflow-wrap: normal; font-weight: bold; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Instance 1 of Device Driver 1</div></div></foreignObject><text x="109" y="16" fill="#000000" text-anchor="middle" font-size="16px" font-family="Helvetica" font-weight="bold">Instance 1 of Device Driver 1</text></switch></g><rect x="290" y="130" width="250" height="110" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(292.5,137.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="238" height="95" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 16px; font-family: &quot;Courier New&quot;; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 239px; white-space: nowrap; overflow-wrap: normal; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;"><div style="font-size: 12px ; white-space: normal">struct device {</div><div style="font-size: 12px ; white-space: normal">    const struct config *config;</div><div style="font-size: 12px ; white-space: normal">    const void *api;</div><div style="font-size: 12px ; white-space: normal">    void * const data;</div><div style="font-size: 12px ; white-space: normal">};</div><div style="font-size: 12px ; white-space: normal"><br /></div><div style="font-size: 12px ; white-space: normal">struct config {...};</div></div></div></foreignObject><text x="119" y="56" fill="#000000" text-anchor="middle" font-size="16px" font-family="Courier New">[Not supported by viewer]</text></switch></g><path d="M 490 170 L 560 170" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 560 250 L 560 170" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><ellipse cx="560" cy="260" rx="10" ry="10" fill="#ffffff" stroke="#000000" pointer-events="none"/><rect x="120" y="200.5" width="100" height="200" fill="#99ccff" stroke="#000000" pointer-events="none"/><g transform="translate(131.5,214.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="67" height="35" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 68px; white-space: nowrap; overflow-wrap: normal; font-weight: bold; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;"><font style="font-size: 16px">Generic<br />Type API</font></div></div></foreignObject><text x="34" y="24" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica" font-weight="bold">[Not supported by viewer]</text></switch></g><rect x="140" y="263.66" width="60" height="31.58" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(154.5,272.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="30" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 30px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">API 1</div></div></foreignObject><text x="15" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">API 1</text></switch></g><rect x="140" y="305.76" width="60" height="31.58" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(154.5,315.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="30" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 30px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">API 2</div></div></foreignObject><text x="15" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">API 2</text></switch></g><rect x="140" y="347.87" width="60" height="31.58" fill="#ffffff" stroke="#000000" transform="rotate(180,170,363.66)" pointer-events="none"/><g transform="translate(154.5,357.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="30" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 30px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">API 3</div></div></foreignObject><text x="15" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">API 3</text></switch></g><rect x="640" y="194.5" width="120" height="200" fill="#fad7ac" stroke="#000000" pointer-events="none"/><g transform="translate(661.5,208.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="78" height="35" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 78px; white-space: nowrap; overflow-wrap: normal; font-weight: bold; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;"><span style="font-size: 16px">Device Driver 1</span></div></div></foreignObject><text x="39" y="24" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica" font-weight="bold">[Not supported by viewer]</text></switch></g><rect x="660" y="257.66" width="80" height="31.58" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(672.5,266.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="55" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 56px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">API Impl 1</div></div></foreignObject><text x="28" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">API Impl 1</text></switch></g><rect x="660" y="299.76" width="80" height="31.58" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(672.5,309.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="55" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 56px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">API Impl 2</div></div></foreignObject><text x="28" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">API Impl 2</text></switch></g><rect x="660" y="341.87" width="80" height="31.58" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(672.5,351.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="55" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 56px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">API Impl 3</div></div></foreignObject><text x="28" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">API Impl 3</text></switch></g><path d="M 570 340 L 610 340 L 610 273 L 653.63 273" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 658.88 273 L 651.88 276.5 L 653.63 273 L 651.88 269.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 200 279 L 250 279 L 250 340 L 543.63 340" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 548.88 340 L 541.88 343.5 L 543.63 340 L 541.88 336.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 200 364 L 250 364 L 250 260 L 543.63 260" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 548.88 260 L 541.88 263.5 L 543.63 260 L 541.88 256.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 200 322 L 250 322 L 250 260 L 543.63 260" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 548.88 260 L 541.88 263.5 L 543.63 260 L 541.88 256.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 570 260 L 610 260 L 610 358 L 653.63 358" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 658.88 358 L 651.88 361.5 L 653.63 358 L 651.88 354.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 570 260 L 610 260 L 610 316 L 653.63 316" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 658.88 316 L 651.88 319.5 L 653.63 316 L 651.88 312.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(111.5,76.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="90" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 16px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 100px; white-space: nowrap; overflow-wrap: normal; font-weight: bold; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Subsystem 1</div></div></foreignObject><text x="45" y="16" fill="#000000" text-anchor="middle" font-size="16px" font-family="Helvetica" font-weight="bold">Subsystem 1</text></switch></g><g transform="translate(110.5,21.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="128" height="35" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 16px; font-family: &quot;Courier New&quot;; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 128px; white-space: nowrap; overflow-wrap: normal; font-weight: bold; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Device Driver APIs</div></div></foreignObject><text x="64" y="26" fill="#000000" text-anchor="middle" font-size="16px" font-family="Courier New" font-weight="bold">Device Driver APIs</text></switch></g><g transform="translate(358.5,21.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="143" height="35" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 16px; font-family: &quot;Courier New&quot;; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 143px; white-space: nowrap; overflow-wrap: normal; font-weight: bold; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Device Driver Instances</div></div></foreignObject><text x="72" y="26" fill="#000000" text-anchor="middle" font-size="16px" font-family="Courier New" font-weight="bold">Device Driver Instances</text></switch></g><g transform="translate(620.5,21.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="148" height="35" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 16px; font-family: &quot;Courier New&quot;; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 148px; white-space: nowrap; overflow-wrap: normal; font-weight: bold; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Device Driver Implementations</div></div></foreignObject><text x="74" y="26" fill="#000000" text-anchor="middle" font-size="16px" font-family="Courier New" font-weight="bold">Device Driver Implementations</text></switch></g><rect x="100" y="570" width="680" height="480" fill="#9ac7bf" stroke="#000000" pointer-events="none"/><rect x="640" y="590" width="120" height="200" fill="#fad7ac" stroke="#000000" pointer-events="none"/><g transform="translate(661.5,603.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="78" height="35" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 78px; white-space: nowrap; overflow-wrap: normal; font-weight: bold; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;"><span style="font-size: 16px">Device Driver 2</span></div></div></foreignObject><text x="39" y="24" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica" font-weight="bold">[Not supported by viewer]</text></switch></g><rect x="660" y="653.16" width="80" height="31.58" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(672.5,662.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="55" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 56px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">API Impl 1</div></div></foreignObject><text x="28" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">API Impl 1</text></switch></g><rect x="660" y="695.26" width="80" height="31.58" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(672.5,704.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="55" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 56px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">API Impl 2</div></div></foreignObject><text x="28" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">API Impl 2</text></switch></g><rect x="660" y="737.37" width="80" height="31.58" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(672.5,746.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="55" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 56px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">API Impl 3</div></div></foreignObject><text x="28" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">API Impl 3</text></switch></g><g transform="translate(111.5,573.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="90" height="22" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 100px; white-space: nowrap; overflow-wrap: normal; font-weight: bold; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;"><font style="font-size: 16px">Subsystem 2</font></div></div></foreignObject><text x="45" y="21" fill="#000000" text-anchor="middle" font-size="20px" font-family="Helvetica" font-weight="bold">[Not supported by viewer]</text></switch></g><rect x="640" y="829.5" width="120" height="195" fill="#fad7ac" stroke="#000000" pointer-events="none"/><g transform="translate(661.5,975.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="78" height="35" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 78px; white-space: nowrap; overflow-wrap: normal; font-weight: bold; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;"><span style="font-size: 16px">Device Driver 3</span></div></div></foreignObject><text x="39" y="24" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica" font-weight="bold">[Not supported by viewer]</text></switch></g><rect x="660" y="850.03" width="80" height="30.79" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(672.5,858.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="55" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 56px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">API Impl 1</div></div></foreignObject><text x="28" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">API Impl 1</text></switch></g><rect x="660" y="891.08" width="80" height="30.79" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(672.5,899.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="55" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 56px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">API Impl 2</div></div></foreignObject><text x="28" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">API Impl 2</text></switch></g><rect x="660" y="932.13" width="80" height="30.79" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(672.5,941.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="55" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 56px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">API Impl 3</div></div></foreignObject><text x="28" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">API Impl 3</text></switch></g><rect x="120" y="690" width="100" height="200" fill="#99ccff" stroke="#000000" pointer-events="none"/><g transform="translate(131.5,703.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="67" height="35" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 68px; white-space: nowrap; overflow-wrap: normal; font-weight: bold; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;"><font style="font-size: 16px">Generic<br />Type API</font></div></div></foreignObject><text x="34" y="24" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica" font-weight="bold">[Not supported by viewer]</text></switch></g><rect x="140" y="753.16" width="60" height="31.58" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(154.5,762.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="30" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 30px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">API 1</div></div></foreignObject><text x="15" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">API 1</text></switch></g><rect x="140" y="795.26" width="60" height="31.58" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(154.5,804.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="30" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 30px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">API 2</div></div></foreignObject><text x="15" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">API 2</text></switch></g><rect x="140" y="837.37" width="60" height="31.58" fill="#ffffff" stroke="#000000" transform="rotate(180,170,853.16)" pointer-events="none"/><g transform="translate(154.5,846.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="30" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 30px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">API 3</div></div></foreignObject><text x="15" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">API 3</text></switch></g><rect x="280" y="600" width="300" height="190" fill="#e6e6e6" stroke="#000000" pointer-events="none"/><g transform="translate(291.5,616.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="218" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 16px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 219px; white-space: nowrap; overflow-wrap: normal; font-weight: bold; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Instance 1 of Device Driver 2</div></div></foreignObject><text x="109" y="16" fill="#000000" text-anchor="middle" font-size="16px" font-family="Helvetica" font-weight="bold">Instance 1 of Device Driver 2</text></switch></g><rect x="290" y="640" width="250" height="110" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(292.5,647.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="238" height="95" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 16px; font-family: &quot;Courier New&quot;; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 239px; white-space: nowrap; overflow-wrap: normal; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;"><div style="font-size: 12px ; white-space: normal">struct device {</div><div style="font-size: 12px ; white-space: normal">    const struct config *config;</div><div style="font-size: 12px ; white-space: normal">    const void *api;</div><div style="font-size: 12px ; white-space: normal">    void * const data;</div><div style="font-size: 12px ; white-space: normal">};</div><div style="font-size: 12px ; white-space: normal"><br /></div><div style="font-size: 12px ; white-space: normal">struct config {...};</div></div></div></foreignObject><text x="119" y="56" fill="#000000" text-anchor="middle" font-size="16px" font-family="Courier New">[Not supported by viewer]</text></switch></g><path d="M 490 680 L 560 680" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 560 760 L 560 680" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><ellipse cx="560" cy="770" rx="10" ry="10" fill="#ffffff" stroke="#000000" pointer-events="none"/><rect x="280" y="829.5" width="300" height="180" fill="#b3b3b3" stroke="#000000" pointer-events="none"/><rect x="290" y="889.5" width="250" height="110" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(292.5,896.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="238" height="95" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 16px; font-family: &quot;Courier New&quot;; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 239px; white-space: nowrap; overflow-wrap: normal; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;"><div style="font-size: 12px ; white-space: normal">struct device {</div><div style="font-size: 12px ; white-space: normal">    const struct config *config;</div><div style="font-size: 12px ; white-space: normal">    const void *api;</div><div style="font-size: 12px ; white-space: normal">    void * const data;</div><div style="font-size: 12px ; white-space: normal">};</div><div style="font-size: 12px ; white-space: normal"><br /></div><div style="font-size: 12px ; white-space: normal">struct config {...};</div></div></div></foreignObject><text x="119" y="56" fill="#000000" text-anchor="middle" font-size="16px" font-family="Courier New">[Not supported by viewer]</text></switch></g><g transform="translate(291.5,866.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="218" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 16px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 219px; white-space: nowrap; overflow-wrap: normal; font-weight: bold; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Instance 1 of Device Driver 3</div></div></foreignObject><text x="109" y="16" fill="#000000" text-anchor="middle" font-size="16px" font-family="Helvetica" font-weight="bold">Instance 1 of Device Driver 3</text></switch></g><path d="M 490 931.5 L 560 931.5" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 560 859.5 L 560 930" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><ellipse cx="560" cy="849.5" rx="10" ry="10" fill="#ffffff" stroke="#000000" pointer-events="none"/><path d="M 200 769 L 250 769 L 250 850 L 543.63 850" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 548.88 850 L 541.88 853.5 L 543.63 850 L 541.88 846.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 200 853 L 250 853 L 250 770 L 543.63 770" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 548.88 770 L 541.88 773.5 L 543.63 770 L 541.88 766.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 200 811 L 250 811 L 250 850 L 543.63 850" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 548.88 850 L 541.88 853.5 L 543.63 850 L 541.88 846.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 570 770 L 610 770 L 610 669 L 653.63 669" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 658.88 669 L 651.88 672.5 L 653.63 669 L 651.88 665.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 570 770 L 610 770 L 610 711 L 653.63 711" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 658.88 711 L 651.88 714.5 L 653.63 711 L 651.88 707.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 570 770 L 610 770 L 610 753 L 653.63 753" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 658.88 753 L 651.88 756.5 L 653.63 753 L 651.88 749.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 570 850 L 610 850 L 610 865 L 653.63 865" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 658.88 865 L 651.88 868.5 L 653.63 865 L 651.88 861.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 570 850 L 610 850 L 610 906 L 653.63 906" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 658.88 906 L 651.88 909.5 L 653.63 906 L 651.88 902.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 570 850 L 610 850 L 610 948 L 653.63 948" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 658.88 948 L 651.88 951.5 L 653.63 948 L 651.88 944.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 610 0 L 610 1070" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 250 0 L 250 1070" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 40 560 L 70 560 L 70 279 L 133.63 279" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 138.88 279 L 131.88 282.5 L 133.63 279 L 131.88 275.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 40 560 L 70 560 L 70 853 L 133.63 853" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 138.88 853 L 131.88 856.5 L 133.63 853 L 131.88 849.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 40 560 L 70 560 L 70 322 L 133.63 322" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 138.88 322 L 131.88 325.5 L 133.63 322 L 131.88 318.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 40 560 L 70 560 L 70 364 L 133.63 364" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 138.88 364 L 131.88 367.5 L 133.63 364 L 131.88 360.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 40 560 L 70 560 L 70 811 L 133.63 811" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 138.88 811 L 131.88 814.5 L 133.63 811 L 131.88 807.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 46.37 560 L 70 560 L 70 769 L 133.63 769" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 41.12 560 L 48.12 556.5 L 46.37 560 L 48.12 563.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 138.88 769 L 131.88 772.5 L 133.63 769 L 131.88 765.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="0" y="70" width="40" height="980" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(-46.5,548.5)rotate(-90,66,11)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="132" height="22" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 20px; font-family: &quot;Courier New&quot;; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 133px; white-space: nowrap; overflow-wrap: normal; font-weight: bold; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Application</div></div></foreignObject><text x="66" y="21" fill="#000000" text-anchor="middle" font-size="20px" font-family="Courier New" font-weight="bold">Application</text></switch></g></g></svg>