| Lorenz Brun | 54a5a05 | 2023-10-02 16:40:11 +0200 | [diff] [blame] | 1 | syntax = "proto3"; |
| 2 | |
| Jan Schär | 69b7687 | 2025-05-14 16:39:47 +0000 | [diff] [blame] | 3 | package metropolis.node.abloader.spec; |
| Lorenz Brun | 54a5a05 | 2023-10-02 16:40:11 +0200 | [diff] [blame] | 4 | |
| 5 | enum Slot { |
| Tim Windelschmidt | a10d0cb | 2025-01-13 14:44:15 +0100 | [diff] [blame] | 6 | SLOT_NONE = 0; |
| 7 | SLOT_A = 1; |
| 8 | SLOT_B = 2; |
| Lorenz Brun | 54a5a05 | 2023-10-02 16:40:11 +0200 | [diff] [blame] | 9 | } |
| 10 | |
| 11 | // ABLoaderData contains data the A/B loader needs to chose which slot to boot |
| 12 | // as well as for auto-rollback functionality. |
| 13 | message ABLoaderData { |
| 14 | // The currently-active slot. This slot will be booted unless next_slot is |
| 15 | // set to a non-default value. |
| 16 | Slot active_slot = 1; |
| 17 | // The slot to boot next, but only once. Once the the slot has been selected |
| 18 | // to be booted by the loader, this value is reset before booting into that |
| 19 | // slot. If the OS boots successfully, it will update the active_slot to |
| 20 | // permanently boot from the new slot. |
| 21 | Slot next_slot = 2; |
| Jan Schär | 69b7687 | 2025-05-14 16:39:47 +0000 | [diff] [blame] | 22 | } |