Files

41 lines
13 KiB
XML
Raw Permalink 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" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="529.251px" preserveAspectRatio="none" style="width:513px;height:529px;" version="1.1" viewBox="0 0 513 529" width="513.7567px" zoomAndPan="magnify"><defs/><g><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="248.7235" x="131.7011" y="17.7441">A5 FLOW — three notification protocols on one target slot</text><line style="stroke: #A80036; stroke-width: 0.8154868882467008; stroke-dasharray: 5.0,5.0;" x1="33.435" x2="33.435" y1="50.5306" y2="497.9966"/><line style="stroke: #A80036; stroke-width: 0.8154868882467008; stroke-dasharray: 5.0,5.0;" x1="191.2317" x2="191.2317" y1="50.5306" y2="497.9966"/><line style="stroke: #A80036; stroke-width: 0.8154868882467008; stroke-dasharray: 5.0,5.0;" x1="359.222" x2="359.222" y1="50.5306" y2="497.9966"/><line style="stroke: #A80036; stroke-width: 0.8154868882467008; stroke-dasharray: 5.0,5.0;" x1="428.5384" x2="428.5384" y1="50.5306" y2="497.9966"/><rect fill="#FEFECE" height="23.6343" style="stroke: #A80036; stroke-width: 1.223230332370051;" width="54.6376" x="6.5239" y="26.0808"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="43.2208" x="12.2323" y="41.3785">Sender p3</text><rect fill="#FEFECE" height="23.6343" style="stroke: #A80036; stroke-width: 1.223230332370051;" width="54.6376" x="6.5239" y="497.1811"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="43.2208" x="12.2323" y="512.4788">Sender p3</text><rect fill="#FEFECE" height="23.6343" style="stroke: #A80036; stroke-width: 1.223230332370051;" width="60.346" x="161.0587" y="26.0808"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="48.9292" x="166.7671" y="41.3785">Receiver p2</text><rect fill="#FEFECE" height="23.6343" style="stroke: #A80036; stroke-width: 1.223230332370051;" width="60.346" x="161.0587" y="497.1811"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="48.9292" x="166.7671" y="512.4788">Receiver p2</text><rect fill="#FEFECE" height="23.6343" style="stroke: #A80036; stroke-width: 1.223230332370051;" width="66.8699" x="325.787" y="26.0808"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="55.4531" x="331.4954" y="41.3785">TCB notify[0]</text><rect fill="#FEFECE" height="23.6343" style="stroke: #A80036; stroke-width: 1.223230332370051;" width="66.8699" x="325.787" y="497.1811"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="55.4531" x="331.4954" y="512.4788">TCB notify[0]</text><rect fill="#FEFECE" height="23.6343" style="stroke: #A80036; stroke-width: 1.223230332370051;" width="56.2686" x="400.8118" y="26.0808"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="44.8518" x="406.5202" y="41.3785">Verifier p0</text><rect fill="#FEFECE" height="23.6343" style="stroke: #A80036; stroke-width: 1.223230332370051;" width="56.2686" x="400.8118" y="497.1811"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="44.8518" x="406.5202" y="512.4788">Verifier p0</text><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="33.8427" x2="68.0932" y1="75.796" y2="75.796"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="68.0932" x2="68.0932" y1="75.796" y2="86.3973"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="34.6582" x2="68.0932" y1="86.3973" y2="86.3973"/><polygon fill="#8095A1" points="42.8131,83.1354,34.6582,86.3973,42.8131,89.6592,39.5511,86.3973" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="145.9722" x="39.5511" y="71.5367">02 arm; wait for phase 1 + Blocked</text><polygon fill="#8095A1" points="349.4361,106.7697,357.591,110.0316,349.4361,113.2936,352.6981,110.0316" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="191.2317" x2="354.3291" y1="110.0316" y2="110.0316"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="148.4186" x="196.9401" y="105.7724">03 ulTaskNotifyTake(clear); Blocked</text><polygon fill="#8095A1" points="349.4361,130.4041,357.591,133.666,349.4361,136.9279,352.6981,133.666" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="33.8427" x2="354.3291" y1="133.666" y2="133.666"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="73.3938" x="39.5511" y="129.4067">give + give + give</text><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="33.8427" x2="68.0932" y1="157.3003" y2="157.3003"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="68.0932" x2="68.0932" y1="157.3003" y2="167.9017"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="34.6582" x2="68.0932" y1="167.9017" y2="167.9017"/><polygon fill="#8095A1" points="42.8131,164.6397,34.6582,167.9017,42.8131,171.1636,39.5511,167.9017" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="138.6328" x="39.5511" y="153.0411">04 receiver was Blocked; value=3</text><polygon fill="#8095A1" points="200.202,188.2741,192.0472,191.536,200.202,194.798,196.9401,191.536" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008; stroke-dasharray: 2.0,2.0;" x1="195.3091" x2="358.4065" y1="191.536" y2="191.536"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="97.8584" x="205.095" y="187.2768">05 return 3; clear value</text><polygon fill="#8095A1" points="349.4361,211.9084,357.591,215.1704,349.4361,218.4323,352.6981,215.1704" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="191.2317" x2="354.3291" y1="215.1704" y2="215.1704"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="126.4005" x="196.9401" y="210.9111">06 probe zero; wait overwrite</text><polygon fill="#8095A1" points="349.4361,235.5428,357.591,238.8047,349.4361,242.0667,352.6981,238.8047" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="33.8427" x2="354.3291" y1="238.8047" y2="238.8047"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="132.1089" x="39.5511" y="234.5455">overwrite 0x11; overwrite 0x22</text><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="33.8427" x2="68.0932" y1="262.4391" y2="262.4391"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="68.0932" x2="68.0932" y1="262.4391" y2="273.0404"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="34.6582" x2="68.0932" y1="273.0404" y2="273.0404"/><polygon fill="#8095A1" points="42.8131,269.7785,34.6582,273.0404,42.8131,276.3024,39.5511,273.0404" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="101.1204" x="39.5511" y="258.1798">07 receiver was Blocked</text><polygon fill="#8095A1" points="200.202,293.4128,192.0472,296.6748,200.202,299.9367,196.9401,296.6748" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008; stroke-dasharray: 2.0,2.0;" x1="195.3091" x2="358.4065" y1="296.6748" y2="296.6748"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="112.5372" x="205.095" y="292.4155">08 return 0x22; clear value</text><polygon fill="#8095A1" points="349.4361,317.0472,357.591,320.3091,349.4361,323.5711,352.6981,320.3091" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="191.2317" x2="354.3291" y1="320.3091" y2="320.3091"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="100.3049" x="196.9401" y="316.0498">09 probe zero; wait bits</text><polygon fill="#8095A1" points="349.4361,340.6815,357.591,343.9435,349.4361,347.2054,352.6981,343.9435" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="33.8427" x2="354.3291" y1="343.9435" y2="343.9435"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="104.3823" x="39.5511" y="339.6842">setBits 0x04; setBits 0x20</text><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="33.8427" x2="68.0932" y1="367.5778" y2="367.5778"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="68.0932" x2="68.0932" y1="367.5778" y2="378.1791"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="34.6582" x2="68.0932" y1="378.1791" y2="378.1791"/><polygon fill="#8095A1" points="42.8131,374.9172,34.6582,378.1791,42.8131,381.4411,39.5511,378.1791" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="101.1204" x="39.5511" y="363.3185">10 receiver was Blocked</text><polygon fill="#8095A1" points="200.202,398.5515,192.0472,401.8135,200.202,405.0754,196.9401,401.8135" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008; stroke-dasharray: 2.0,2.0;" x1="195.3091" x2="358.4065" y1="401.8135" y2="401.8135"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="112.5372" x="205.095" y="397.5542">11 return 0x24; clear value</text><polygon fill="#8095A1" points="419.1603,422.1859,427.3151,425.4478,419.1603,428.7098,422.4222,425.4478" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="191.2317" x2="424.0532" y1="425.4478" y2="425.4478"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="44.8518" x="196.9401" y="421.1886">completed</text><polygon fill="#8095A1" points="419.1603,445.8202,427.3151,449.0822,419.1603,452.3441,422.4222,449.0822" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="33.8427" x2="424.0532" y1="449.0822" y2="449.0822"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="44.8518" x="39.5511" y="444.8229">completed</text><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="428.9461" x2="463.1966" y1="472.7165" y2="472.7165"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="463.1966" x2="463.1966" y1="472.7165" y2="483.3179"/><line style="stroke: #8095A1; stroke-width: 0.8154868882467008;" x1="429.7616" x2="463.1966" y1="483.3179" y2="483.3179"/><polygon fill="#8095A1" points="437.9165,480.0559,429.7616,483.3179,437.9165,486.5798,434.6545,483.3179" style="stroke: #8095A1; stroke-width: 0.8154868882467008;"/><text fill="#000000" font-family="Monospace" font-size="8.9704" lengthAdjust="spacingAndGlyphs" textLength="69.3164" x="434.6545" y="468.4573">12 PASS + digest</text><!--MD5=[98448483023c1b518592316e659d3a37]
@startuml
scale 520 height
skinparam backgroundColor transparent
skinparam shadowing false
skinparam defaultFontName Monospace
skinparam defaultFontSize 11
skinparam sequenceArrowColor #8095a1
title A5 FLOW — three notification protocols on one target slot
participant "Sender p3" as S
participant "Receiver p2" as R
participant "TCB notify[0]" as N
participant "Verifier p0" as V
S -> S : 02 arm; wait for phase 1 + Blocked
R -> N : 03 ulTaskNotifyTake(clear); Blocked
S -> N : give + give + give
S -> S : 04 receiver was Blocked; value=3
N - -> R : 05 return 3; clear value
R -> N : 06 probe zero; wait overwrite
S -> N : overwrite 0x11; overwrite 0x22
S -> S : 07 receiver was Blocked
N - -> R : 08 return 0x22; clear value
R -> N : 09 probe zero; wait bits
S -> N : setBits 0x04; setBits 0x20
S -> S : 10 receiver was Blocked
N - -> R : 11 return 0x24; clear value
R -> V : completed
S -> V : completed
V -> V : 12 PASS + digest
@enduml
PlantUML version 1.2020.02(Sun Mar 01 11:22:07 CET 2020)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 25.0.4-ea+4-1-Debian
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: null
--></g></svg>