tighten transport failure semantics

This commit is contained in:
Jay
2026-08-17 17:33:44 -04:00
parent 3c95f3d7be
commit 73e5680fc3
11 changed files with 144 additions and 29 deletions
+6 -1
View File
@@ -36,7 +36,12 @@ void trikke_transport_sender_init(trikke_transport_sender_t *sender);
// Advances one bounded transport operation. The packet storage must remain valid
// and unchanged from the first PENDING result through COMPLETE. While pending,
// only poll is called: an ambiguous timeout can never duplicate a frame.
// only poll is called: an ambiguous timeout can never duplicate a frame. RETRY
// is valid only from begin, where it guarantees that no bytes were accepted.
//
// COMPLETE is backend-specific. USB uses endpoint drain, which does not prove
// application receipt. A reliable BLE backend must reserve COMPLETE for an
// application acknowledgement covering this exact frame.
trikke_transport_status_t trikke_transport_sender_step(
trikke_transport_sender_t *sender,
const trikke_transport_t *transport,