Files
littlefs/scripts
Christopher Haster 9e75138f7a Rearranged O/M/F/GC/I flags
Now that we don't need to encode tstate info in our traversal flags, we
can move things around to be a bit more comfortable.

This is also after some tweaking to make space for planned features:

O flags:

  O_MODE             0x00000003  ---- ---- ---- ---- ---- ---- ---- --11
  O_RDONLY           0x00000000  ---- ---- ---- ---- ---- ---- ---- ----
  O_WRONLY           0x00000001  ---- ---- ---- ---- ---- ---- ---- ---1
  O_RDWR             0x00000002  ---- ---- ---- ---- ---- ---- ---- --1-
  O_CREAT            0x00000004  ---- ---- ---- ---- ---- ---- ---- -1--
  O_EXCL             0x00000008  ---- ---- ---- ---- ---- ---- ---- 1---
  O_TRUNC            0x00000010  ---- ---- ---- ---- ---- ---- ---1 ----
  O_APPEND           0x00000020  ---- ---- ---- ---- ---- ---- --1- ----
  O_FLUSH            0x00000040  ---- ---- ---- ---- ---- ---- -1-- ----
  O_SYNC             0x00000080  ---- ---- ---- ---- ---- ---- 1--- ----
  O_DESYNC           0x00100000  ---- ---- ---1 ---- ---- ---- ---- ----
  O_DEDAG*           0x00000100  ---- ---- ---- ---- ---- ---1 ---- ----
  O_DEDUP*           0x00000200  ---- ---- ---- ---- ---- --1- ---- ----
  O_COMPR?           0x00000400  ---- ---- ---- ---- ---- -1-- ---- ----

  O_CKMETA           0x00010000  ---- ---- ---- ---1 ---- ---- ---- ----
  O_CKDATA           0x00020000  ---- ---- ---- --1- ---- ---- ---- ----
  O_REPAIRMETA*      0x00040000  ---- ---- ---- -1-- ---- ---- ---- ----
  O_REPAIRDATA*      0x00080000  ---- ---- ---- 1--- ---- ---- ---- ----

  o_WRSET            0x00000003  ---- ---- ---- ---- ---- ---- ---- --11
  o_TYPE             0xf0000000  1111 ---- ---- ---- ---- ---- ---- ----
  o_ZOMBIE           0x08000000  ---- 1--- ---- ---- ---- ---- ---- ----
  o_UNCREAT          0x04000000  ---- -1-- ---- ---- ---- ---- ---- ----
  o_UNSYNC           0x02000000  ---- --1- ---- ---- ---- ---- ---- ----
  o_UNCRYST          0x01000000  ---- ---1 ---- ---- ---- ---- ---- ----
  o_UNGRAFT          0x00800000  ---- ---- 1--- ---- ---- ---- ---- ----
  o_UNFLUSH          0x00400000  ---- ---- -1-- ---- ---- ---- ---- ----

  * Planned
  ? Hypothetical

T flags:

  T_MODE             0x00000001  ---- ---- ---- ---- ---- ---- ---- ---1
  T_RDONLY           0x00000000  ---- ---- ---- ---- ---- ---- ---- ----
  T_RDWR             0x00000001  ---- ---- ---- ---- ---- ---- ---- ---1
  T_MTREEONLY        0x00000002  ---- ---- ---- ---- ---- ---- ---- --1-
  T_EXCL             0x00000008  ---- ---- ---- ---- ---- ---- ---- 1---
  T_MKCONSISTENT     0x00000800  ---- ---- ---- ---- ---- 1--- ---- ----
  T_RELOOKAHEAD      0x00001000  ---- ---- ---- ---- ---1 ---- ---- ----
  T_REGBMAP          0x00002000  ---- ---- ---- ---- --1- ---- ---- ----
  T_PREERASE*        0x00004000  ---- ---- ---- ---- -1-- ---- ---- ----
  T_COMPACTMETA      0x00008000  ---- ---- ---- ---- 1--- ---- ---- ----
  T_CKMETA           0x00010000  ---- ---- ---- ---1 ---- ---- ---- ----
  T_CKDATA           0x00020000  ---- ---- ---- --1- ---- ---- ---- ----
  T_REPAIRMETA*      0x00040000  ---- ---- ---- -1-- ---- ---- ---- ----
  T_REPAIRDATA*      0x00080000  ---- ---- ---- 1--- ---- ---- ---- ----

  t_EVICT*           0x00000010  ---- ---- ---- ---- ---- ---- ---1 ----
  t_TYPE             0xf0000000  1111 ---- ---- ---- ---- ---- ---- ----
  t_ZOMBIE           0x08000000  ---- 1--- ---- ---- ---- ---- ---- ----
  t_CKPOINTED        0x04000000  ---- -1-- ---- ---- ---- ---- ---- ----
  t_DIRTY            0x02000000  ---- --1- ---- ---- ---- ---- ---- ----
  t_STALE            0x01000000  ---- ---1 ---- ---- ---- ---- ---- ----
  t_BTYPE            0x00f00000  ---- ---- 1111 ---- ---- ---- ---- ----

  * Planned

M/F flags:

  M_MODE             0x00000001  ---- ---- ---- ---- ---- ---- ---- ---1
  M_RDWR             0x00000000  ---- ---- ---- ---- ---- ---- ---- ----
  M_RDONLY           0x00000001  ---- ---- ---- ---- ---- ---- ---- ---1
  M_STRICT?          0x00000002  ---- ---- ---- ---- ---- ---- ---- --1-
  M_FORCE?           0x00000004  ---- ---- ---- ---- ---- ---- ---- -1--
  M_FORCEWITHRECKLESSABANDON?
                     0x00000008  ---- ---- ---- ---- ---- ---- ---- 1---
  M_FLUSH            0x00000040  ---- ---- ---- ---- ---- ---- -1-- ----
  M_SYNC             0x00000080  ---- ---- ---- ---- ---- ---- 1--- ----
  M_DEDAG*           0x00000100  ---- ---- ---- ---- ---- ---1 ---- ----
  M_DEDUP*           0x00000200  ---- ---- ---- ---- ---- --1- ---- ----
  M_COMPR?           0x00000400  ---- ---- ---- ---- ---- -1-- ---- ----
  M_REVDBG           0x00000010  ---- ---- ---- ---- ---- ---- ---1 ----
  M_REVNOISE         0x00000020  ---- ---- ---- ---- ---- ---- --1- ----
  M_CKPROGS          0x00100000  ---- ---- ---1 ---- ---- ---- ---- ----
  M_CKFETCHES        0x00200000  ---- ---- --1- ---- ---- ---- ---- ----
  M_CKMETAPARITY     0x00400000  ---- ---- -1-- ---- ---- ---- ---- ----
  M_CKMETAREDUND*    0x00800000  ---- ---- 1--- ---- ---- ---- ---- ----
  M_CKDATACKSUMS     0x01000000  ---- ---1 ---- ---- ---- ---- ---- ----
  M_CKREADS*         0x01800000  ---- ---1 1--- ---- ---- ---- ---- ----

  M_MKCONSISTENT     0x00000800  ---- ---- ---- ---- ---- 1--- ---- ----
  M_RELOOKAHEAD      0x00001000  ---- ---- ---- ---- ---1 ---- ---- ----
  M_REGBMAP          0x00002000  ---- ---- ---- ---- --1- ---- ---- ----
  M_PREERASE*        0x00004000  ---- ---- ---- ---- -1-- ---- ---- ----
  M_COMPACTMETA      0x00008000  ---- ---- ---- ---- 1--- ---- ---- ----
  M_CKMETA           0x00010000  ---- ---- ---- ---1 ---- ---- ---- ----
  M_CKDATA           0x00020000  ---- ---- ---- --1- ---- ---- ---- ----
  M_REPAIRMETA*      0x00040000  ---- ---- ---- -1-- ---- ---- ---- ----
  M_REPAIRDATA*      0x00080000  ---- ---- ---- 1--- ---- ---- ---- ----

  F_CKFACTORY*       0x00000002  ---- ---- ---- ---- ---- ---- ---- --1-
  F_GBMAP            0x02000000  ---- --1- ---- ---- ---- ---- ---- ----
  F_GDDTREE*         0x04000000  ---- -1-- ---- ---- ---- ---- ---- ----
  F_GPTREE*          0x08000000  ---- 1--- ---- ---- ---- ---- ---- ----

  F_METAR1*          0x10000000  ---1 ---- ---- ---- ---- ---- ---- ----
  F_METAR2*          0x20000000  --1- ---- ---- ---- ---- ---- ---- ----
  F_METAR3*          0x30000000  --11 ---- ---- ---- ---- ---- ---- ----
  F_DATAR1*          0x40000000  -1-- ---- ---- ---- ---- ---- ---- ----
  F_DATAR2*          0x80000000  1--- ---- ---- ---- ---- ---- ---- ----
  F_DATAR3*          0xc0000000  11-- ---- ---- ---- ---- ---- ---- ----

  * Planned
  ? Hypothetical

It's a bit concerning that _all_ 32-bit mount flags end up used, but
what can you do...

Code changes minimal:

                 code          stack          ctx
  before:       35964           2280          660
  after:        35968 (+0.0%)   2280 (+0.0%)  660 (+0.0%)

                 code          stack          ctx
  gbmap before: 38828           2296          772
  gbmap after:  38828 (+0.0%)   2296 (+0.0%)  772 (+0.0%)
2025-11-13 16:13:24 -06:00
..
2025-11-12 13:30:11 -06:00
2025-11-13 16:13:24 -06:00
2025-04-16 15:23:06 -05:00