<p>laforge has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/15745">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">iso7816_fsm: Allow ATR FSM to always return back to initial state (RESET)<br><br>Change-Id: I71adefadc43bc8f5db7ce043393f9143cd45684f<br>---<br>M ccid_common/iso7816_fsm.c<br>1 file changed, 15 insertions(+), 8 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/45/15745/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/ccid_common/iso7816_fsm.c b/ccid_common/iso7816_fsm.c</span><br><span>index b98e2bb..8705ad9 100644</span><br><span>--- a/ccid_common/iso7816_fsm.c</span><br><span>+++ b/ccid_common/iso7816_fsm.c</span><br><span>@@ -659,7 +659,8 @@</span><br><span>  [ATR_S_WAIT_T0] = {</span><br><span>          .name = "WAIT_T0",</span><br><span>                 .in_event_mask =        S(ISO7816_E_RX_SINGLE),</span><br><span style="color: hsl(0, 100%, 40%);">-         .out_state_mask =       S(ATR_S_WAIT_TA) |</span><br><span style="color: hsl(120, 100%, 40%);">+            .out_state_mask =       S(ATR_S_WAIT_TS) |</span><br><span style="color: hsl(120, 100%, 40%);">+                                    S(ATR_S_WAIT_TA) |</span><br><span>                                   S(ATR_S_WAIT_TB) |</span><br><span>                                   S(ATR_S_WAIT_TC) |</span><br><span>                                   S(ATR_S_WAIT_TD) |</span><br><span>@@ -671,7 +672,8 @@</span><br><span>     [ATR_S_WAIT_TA] = {</span><br><span>          .name = "WAIT_TA",</span><br><span>                 .in_event_mask =        S(ISO7816_E_RX_SINGLE),</span><br><span style="color: hsl(0, 100%, 40%);">-         .out_state_mask =       S(ATR_S_WAIT_TB) |</span><br><span style="color: hsl(120, 100%, 40%);">+            .out_state_mask =       S(ATR_S_WAIT_TS) |</span><br><span style="color: hsl(120, 100%, 40%);">+                                    S(ATR_S_WAIT_TB) |</span><br><span>                                   S(ATR_S_WAIT_TC) |</span><br><span>                                   S(ATR_S_WAIT_TD) |</span><br><span>                                   S(ATR_S_WAIT_HIST) |</span><br><span>@@ -682,7 +684,8 @@</span><br><span>   [ATR_S_WAIT_TB] = {</span><br><span>          .name = "WAIT_TB",</span><br><span>                 .in_event_mask =        S(ISO7816_E_RX_SINGLE),</span><br><span style="color: hsl(0, 100%, 40%);">-         .out_state_mask =       S(ATR_S_WAIT_TC) |</span><br><span style="color: hsl(120, 100%, 40%);">+            .out_state_mask =       S(ATR_S_WAIT_TS) |</span><br><span style="color: hsl(120, 100%, 40%);">+                                    S(ATR_S_WAIT_TC) |</span><br><span>                                   S(ATR_S_WAIT_TD) |</span><br><span>                                   S(ATR_S_WAIT_HIST) |</span><br><span>                                         S(ATR_S_WAIT_TCK) |</span><br><span>@@ -692,7 +695,8 @@</span><br><span>    [ATR_S_WAIT_TC] = {</span><br><span>          .name = "WAIT_TC",</span><br><span>                 .in_event_mask =        S(ISO7816_E_RX_SINGLE),</span><br><span style="color: hsl(0, 100%, 40%);">-         .out_state_mask =       S(ATR_S_WAIT_TD) |</span><br><span style="color: hsl(120, 100%, 40%);">+            .out_state_mask =       S(ATR_S_WAIT_TS) |</span><br><span style="color: hsl(120, 100%, 40%);">+                                    S(ATR_S_WAIT_TD) |</span><br><span>                                   S(ATR_S_WAIT_HIST) |</span><br><span>                                         S(ATR_S_WAIT_TCK) |</span><br><span>                                  S(ATR_S_WAIT_T0),</span><br><span>@@ -701,7 +705,8 @@</span><br><span>      [ATR_S_WAIT_TD] = {</span><br><span>          .name = "WAIT_TD",</span><br><span>                 .in_event_mask =        S(ISO7816_E_RX_SINGLE),</span><br><span style="color: hsl(0, 100%, 40%);">-         .out_state_mask =       S(ATR_S_WAIT_TA) |</span><br><span style="color: hsl(120, 100%, 40%);">+            .out_state_mask =       S(ATR_S_WAIT_TS) |</span><br><span style="color: hsl(120, 100%, 40%);">+                                    S(ATR_S_WAIT_TA) |</span><br><span>                                   S(ATR_S_WAIT_TB) |</span><br><span>                                   S(ATR_S_WAIT_TC) |</span><br><span>                                   S(ATR_S_WAIT_TD) |</span><br><span>@@ -713,20 +718,22 @@</span><br><span>   [ATR_S_WAIT_HIST] = {</span><br><span>                .name = "WAIT_HIST",</span><br><span>               .in_event_mask =        S(ISO7816_E_RX_SINGLE),</span><br><span style="color: hsl(0, 100%, 40%);">-         .out_state_mask =       S(ATR_S_WAIT_TCK) |</span><br><span style="color: hsl(120, 100%, 40%);">+           .out_state_mask =       S(ATR_S_WAIT_TS) |</span><br><span style="color: hsl(120, 100%, 40%);">+                                    S(ATR_S_WAIT_TCK) |</span><br><span>                                  S(ATR_S_WAIT_T0),</span><br><span>            .action = atr_wait_tX_action,</span><br><span>        },</span><br><span>   [ATR_S_WAIT_TCK] = {</span><br><span>                 .name = "WAIT_TCK",</span><br><span>                .in_event_mask =        S(ISO7816_E_RX_SINGLE),</span><br><span style="color: hsl(0, 100%, 40%);">-         .out_state_mask =       S(ATR_S_DONE),</span><br><span style="color: hsl(120, 100%, 40%);">+                .out_state_mask =       S(ATR_S_WAIT_TS) |</span><br><span style="color: hsl(120, 100%, 40%);">+                                    S(ATR_S_DONE),</span><br><span>               .action = atr_wait_tX_action,</span><br><span>        },</span><br><span>   [ATR_S_DONE] = {</span><br><span>             .name = "DONE",</span><br><span>            .in_event_mask =        0,</span><br><span style="color: hsl(0, 100%, 40%);">-              .out_state_mask =       S(ATR_S_WAIT_T0),</span><br><span style="color: hsl(120, 100%, 40%);">+             .out_state_mask =       S(ATR_S_WAIT_TS),</span><br><span>            //.action = atr_done_action,</span><br><span>         },</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/15745">change 15745</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/15745"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ccid-firmware </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I71adefadc43bc8f5db7ce043393f9143cd45684f </div>
<div style="display:none"> Gerrit-Change-Number: 15745 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>