scripts: dbgflags.py: Added support for flag aliases
Also tweaked related flag comments a bit.
---
This adds another internal flag modifier ('a') to dbgflags.py to
indicate a flag is an alias for multiple other flags.
These still show up in -l/--list and name searches:
$ ./scripts/dbgflags.py -l +ck
LFS3_CK_MKCONSISTENT 0x00000100 Make the filesystem consistent
LFS3_CK_LOOKAHEAD 0x00000200 Repopulate lookahead buffer
LFS3_CK_COMPACT 0x00000800 Compact metadata logs
LFS3_CK_CKMETA 0x00001000 Check metadata checksums
LFS3_CK_CKDATA 0x00002000 Check metadata + data checksums
LFS3_CK_CK 0x00003000 Alias for all check work
LFS3_CK_GC 0x00003b00 Alias for all gc work
But are hidden from value searches, as they would be redundant and the
specific low-level flags are probably more useful:
$ ./scripts/dbgflags.py +ck 0x00003000
LFS3_CK_CKMETA 0x00001000 Check metadata checksums
LFS3_CK_CKDATA 0x00002000 Check metadata + data checksums
This commit is contained in:
@@ -153,7 +153,7 @@ enum lfs3_type {
|
||||
#define LFS3_o_UNGRAFT 0x00800000 // File's leaf does not match disk
|
||||
#define LFS3_o_UNFLUSH 0x00400000 // File's cache does not match disk
|
||||
|
||||
// an alias for ck work
|
||||
// an alias for all check work
|
||||
#define LFS3_O_CK (LFS3_O_CKMETA | LFS3_O_CKDATA)
|
||||
|
||||
// File seek flags
|
||||
@@ -221,10 +221,10 @@ enum lfs3_type {
|
||||
#define LFS3_F_CKDATA 0x00002000 // Check metadata + data checksums
|
||||
#endif
|
||||
|
||||
// an alias for ck work
|
||||
// an alias for all check work
|
||||
#define LFS3_F_CK (LFS3_F_CKMETA | LFS3_F_CKDATA)
|
||||
|
||||
// an alias for all possible gc work
|
||||
// an alias for all gc work
|
||||
#define LFS3_F_GC ( \
|
||||
LFS3_IFDEF_RDONLY(0, LFS3_F_MKCONSISTENT) \
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_F_LOOKAHEAD) \
|
||||
@@ -275,10 +275,10 @@ enum lfs3_type {
|
||||
#define LFS3_M_CKMETA 0x00001000 // Check metadata checksums
|
||||
#define LFS3_M_CKDATA 0x00002000 // Check metadata + data checksums
|
||||
|
||||
// an alias for ck work
|
||||
// an alias for all check work
|
||||
#define LFS3_M_CK (LFS3_M_CKMETA | LFS3_M_CKDATA)
|
||||
|
||||
// an alias for all possible gc work
|
||||
// an alias for all gc work
|
||||
#define LFS3_M_GC ( \
|
||||
LFS3_IFDEF_RDONLY(0, LFS3_M_MKCONSISTENT) \
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_M_LOOKAHEAD) \
|
||||
@@ -367,10 +367,10 @@ enum lfs3_btype {
|
||||
#define LFS3_t_DIRTY 0x02000000 // Filesystem ckpointed outside traversal
|
||||
#define LFS3_t_STALE 0x01000000 // Block queue probably out-of-date
|
||||
|
||||
// an alias for ck work
|
||||
// an alias for all check work
|
||||
#define LFS3_T_CK (LFS3_T_CKMETA | LFS3_T_CKDATA)
|
||||
|
||||
// an alias for all possible gc work
|
||||
// an alias for all gc work
|
||||
#define LFS3_T_GC ( \
|
||||
LFS3_IFDEF_RDONLY(0, LFS3_T_MKCONSISTENT) \
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_T_LOOKAHEAD) \
|
||||
@@ -393,10 +393,10 @@ enum lfs3_btype {
|
||||
#define LFS3_CK_CKMETA 0x00001000 // Check metadata checksums
|
||||
#define LFS3_CK_CKDATA 0x00002000 // Check metadata + data checksums
|
||||
|
||||
// an alias for ck work
|
||||
// an alias for all check work
|
||||
#define LFS3_CK_CK (LFS3_CK_CKMETA | LFS3_CK_CKDATA)
|
||||
|
||||
// an alias for all possible gc work
|
||||
// an alias for all gc work
|
||||
#define LFS3_CK_GC ( \
|
||||
LFS3_IFDEF_RDONLY(0, LFS3_CK_MKCONSISTENT) \
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_CK_LOOKAHEAD) \
|
||||
@@ -419,10 +419,10 @@ enum lfs3_btype {
|
||||
#define LFS3_GC_CKMETA 0x00001000 // Check metadata checksums
|
||||
#define LFS3_GC_CKDATA 0x00002000 // Check metadata + data checksums
|
||||
|
||||
// an alias for ck work
|
||||
// an alias for all check work
|
||||
#define LFS3_GC_CK (LFS3_GC_CKMETA | LFS3_GC_CKDATA)
|
||||
|
||||
// an alias for all possible gc work
|
||||
// an alias for all gc work
|
||||
#define LFS3_GC_GC ( \
|
||||
LFS3_IFDEF_RDONLY(0, LFS3_GC_MKCONSISTENT) \
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_GC_LOOKAHEAD) \
|
||||
|
||||
+16
-2
@@ -39,6 +39,7 @@ O_DESYNC = 0x00100000 # -- Do not sync or recieve file updates
|
||||
|
||||
O_CKMETA = 0x00001000 # -- Check metadata checksums
|
||||
O_CKDATA = 0x00002000 # -- Check metadata + data checksums
|
||||
O_CK = 0x00003000 # a- Alias for all check work
|
||||
|
||||
o_WRSET = 3 # i- Open a file as an atomic write
|
||||
o_TYPE = 0xf0000000 # im The file's type
|
||||
@@ -86,6 +87,8 @@ F_LOOKAHEAD = 0x00000200 # y- Repopulate lookahead buffer
|
||||
F_COMPACT = 0x00000800 # y- Compact metadata logs
|
||||
F_CKMETA = 0x00001000 # y- Check metadata checksums
|
||||
F_CKDATA = 0x00002000 # y- Check metadata + data checksums
|
||||
F_CK = 0x00003000 # a- Alias for all check work
|
||||
F_GC = 0x00003b00 # a- Alias for all gc work
|
||||
|
||||
# Filesystem mount flags
|
||||
M_MODE = 1 # -m Mount's access mode
|
||||
@@ -105,6 +108,8 @@ M_LOOKAHEAD = 0x00000200 # y- Repopulate lookahead buffer
|
||||
M_COMPACT = 0x00000800 # y- Compact metadata logs
|
||||
M_CKMETA = 0x00001000 # y- Check metadata checksums
|
||||
M_CKDATA = 0x00002000 # y- Check metadata + data checksums
|
||||
M_CK = 0x00003000 # a- Alias for all check work
|
||||
M_GC = 0x00003b00 # a- Alias for all gc work
|
||||
|
||||
# File/filesystem check flags
|
||||
CK_MKCONSISTENT = 0x00000100 # -- Make the filesystem consistent
|
||||
@@ -112,6 +117,8 @@ CK_LOOKAHEAD = 0x00000200 # -- Repopulate lookahead buffer
|
||||
CK_COMPACT = 0x00000800 # -- Compact metadata logs
|
||||
CK_CKMETA = 0x00001000 # -- Check metadata checksums
|
||||
CK_CKDATA = 0x00002000 # -- Check metadata + data checksums
|
||||
CK_CK = 0x00003000 # a- Alias for all check work
|
||||
CK_GC = 0x00003b00 # a- Alias for all gc work
|
||||
|
||||
# GC flags
|
||||
GC_MKCONSISTENT = 0x00000100 # -- Make the filesystem consistent
|
||||
@@ -119,6 +126,8 @@ GC_LOOKAHEAD = 0x00000200 # -- Repopulate lookahead buffer
|
||||
GC_COMPACT = 0x00000800 # -- Compact metadata logs
|
||||
GC_CKMETA = 0x00001000 # -- Check metadata checksums
|
||||
GC_CKDATA = 0x00002000 # -- Check metadata + data checksums
|
||||
GC_CK = 0x00003000 # a- Alias for all check work
|
||||
GC_GC = 0x00003b00 # a- Alias for all gc work
|
||||
|
||||
# Filesystem info flags
|
||||
I_RDONLY = 0x00000001 # -- Mounted read only
|
||||
@@ -150,6 +159,8 @@ T_LOOKAHEAD = 0x00000200 # -- Repopulate lookahead buffer
|
||||
T_COMPACT = 0x00000800 # -- Compact metadata logs
|
||||
T_CKMETA = 0x00001000 # -- Check metadata checksums
|
||||
T_CKDATA = 0x00002000 # -- Check metadata + data checksums
|
||||
T_CK = 0x00003000 # a- Alias for all check work
|
||||
T_GC = 0x00003b00 # a- Alias for all gc work
|
||||
|
||||
t_TYPE = 0xf0000000 # im The traversal's type
|
||||
t_REG = 0x10000000 # i^ Type = regular-file
|
||||
@@ -247,6 +258,7 @@ class Flag:
|
||||
def __init__(self, name, flag, help, *,
|
||||
prefix=None,
|
||||
yes=False,
|
||||
alias=False,
|
||||
internal=False,
|
||||
mask=False,
|
||||
type=False):
|
||||
@@ -255,6 +267,7 @@ class Flag:
|
||||
self.help = help
|
||||
self.prefix = prefix
|
||||
self.yes = yes
|
||||
self.alias = alias
|
||||
self.internal = internal
|
||||
self.mask = mask
|
||||
self.type = type
|
||||
@@ -310,6 +323,7 @@ class Flag:
|
||||
prefix=prefixes_[
|
||||
m.group('name').split('_', 1)[0].upper()],
|
||||
yes='y' in m.group('mode'),
|
||||
alias='a' in m.group('mode'),
|
||||
internal='i' in m.group('mode'),
|
||||
mask='m' in m.group('mode'),
|
||||
# associate types -> mask
|
||||
@@ -376,8 +390,8 @@ def main(flags, *,
|
||||
f__ = int(f_, 0)
|
||||
f___ = f__
|
||||
for f in flags__:
|
||||
# ignore type masks here
|
||||
if f.mask:
|
||||
# ignore aliases and type masks here
|
||||
if f.alias or f.mask:
|
||||
continue
|
||||
# matches flag?
|
||||
if not f.type and (f__ & f.flag) == f.flag:
|
||||
|
||||
Reference in New Issue
Block a user