Commit 065dde8
committed
cmd_interface: Distinguish poll-again from stop-polling for the initiator
The polling caller could not implement a correct loop: a request in
flight with T2 not yet elapsed surfaced as FdInitiatorModeError, the
same error as calling in a non-initiator state, so waiting, done and
misuse were indistinguishable. caliptra-mcu-sw grew ResponderAction
and a cancellation flag for the responder side of the same problem;
this puts the outcome in the return type instead.
generate_initiator_request now returns InitiatorAction:
- Request(n): transmit msg_buf[..n] (includes the MCTP type byte)
- Waiting: request in flight or operation still running, poll again
- Complete: the FD left initiator mode, stop polling
The waiting case inside fd_progress becomes Ok(0) instead of an
error, which also makes the T1 check reachable while waiting - before
this, a silent UA could only be timed out on the T2 resend path.
Errors are now real faults only, plus T1Timeout from the cancel path.
Signed-off-by: Christina Quast <christina.quast@9elements.com>1 parent 69edca0 commit 065dde8
2 files changed
Lines changed: 94 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
31 | 44 | | |
32 | 45 | | |
33 | 46 | | |
| |||
86 | 99 | | |
87 | 100 | | |
88 | 101 | | |
89 | | - | |
90 | | - | |
91 | | - | |
92 | | - | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
93 | 113 | | |
94 | 114 | | |
95 | 115 | | |
96 | | - | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
97 | 120 | | |
98 | 121 | | |
99 | | - | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
100 | 127 | | |
101 | 128 | | |
102 | 129 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
868 | 868 | | |
869 | 869 | | |
870 | 870 | | |
871 | | - | |
| 871 | + | |
| 872 | + | |
| 873 | + | |
872 | 874 | | |
873 | 875 | | |
874 | 876 | | |
| |||
941 | 943 | | |
942 | 944 | | |
943 | 945 | | |
944 | | - | |
| 946 | + | |
| 947 | + | |
| 948 | + | |
945 | 949 | | |
946 | 950 | | |
947 | 951 | | |
| |||
985 | 989 | | |
986 | 990 | | |
987 | 991 | | |
988 | | - | |
| 992 | + | |
| 993 | + | |
| 994 | + | |
989 | 995 | | |
990 | 996 | | |
991 | 997 | | |
| |||
1596 | 1602 | | |
1597 | 1603 | | |
1598 | 1604 | | |
| 1605 | + | |
| 1606 | + | |
| 1607 | + | |
| 1608 | + | |
| 1609 | + | |
| 1610 | + | |
| 1611 | + | |
| 1612 | + | |
| 1613 | + | |
| 1614 | + | |
| 1615 | + | |
| 1616 | + | |
| 1617 | + | |
| 1618 | + | |
| 1619 | + | |
| 1620 | + | |
| 1621 | + | |
| 1622 | + | |
| 1623 | + | |
| 1624 | + | |
| 1625 | + | |
| 1626 | + | |
| 1627 | + | |
| 1628 | + | |
| 1629 | + | |
| 1630 | + | |
| 1631 | + | |
| 1632 | + | |
| 1633 | + | |
| 1634 | + | |
| 1635 | + | |
| 1636 | + | |
| 1637 | + | |
| 1638 | + | |
| 1639 | + | |
| 1640 | + | |
| 1641 | + | |
| 1642 | + | |
| 1643 | + | |
| 1644 | + | |
| 1645 | + | |
| 1646 | + | |
| 1647 | + | |
| 1648 | + | |
| 1649 | + | |
| 1650 | + | |
| 1651 | + | |
| 1652 | + | |
| 1653 | + | |
| 1654 | + | |
| 1655 | + | |
| 1656 | + | |
1599 | 1657 | | |
0 commit comments