LOX · Liquid Oxygen for Embedded Systems

LOX Sequence

A multi-step operation loses its safe recovery position after reset or power loss.

A heap-free step sequencer writes CRC-protected checkpoints and computes a conservative recovery verdict on boot.

DevelopmentMITC99
Last verified
Not audited against current README/docs
Platform scope
Portable C99; integration depends on caller-provided adapters

What it solves

A multi-step operation loses its safe recovery position after reset or power loss.

How it works

1Boot2checkpoint read3recovery verdict4start policy5step

Use it when

Resume a staged service procedure after reboot
Restart a non-resumable step from its beginning
Require operator action for an ambiguous checkpoint
Route corrupt or unsupported checkpoints to safe initialization

Quick Start

#include "loxseq/loxseq.h"
loxseq_t seq;
loxseq_init(&seq, steps, STEP_COUNT, &storage);
loxseq_recovery_verdict_t v=loxseq_recover(&seq,reboot_reason);
if(v==LOXSEQ_RECOVERY_RESUME) loxseq_start_resume(&seq,now_ms);
/* Expected: recovery verdict selects an explicit start path. */

Engineering evidence

  • Unit tests cover CRC vectors, corruption fallbacks, resume/restart semantics, branching, timeouts and storage failures
  • Repository documents Ubuntu, Windows and macOS coverage plus ASan/UBSan on Ubuntu

Known limits

  • Not a recipe manager, graph FSM or safety library
  • One sequence runs per instance
  • Boot-local elapsed time is not restored across reboot
  • Storage durability is the caller backend’s responsibility