On 2/1/21 3:49 PM, Amy Parker wrote: > Hello filesystem developers! > > I was scouting through the FreeVXFS code, when I came across this in > fs/freevxfs/vxfs.h: > > enum vxfs_mode { > VXFS_ISUID = 0x00000800, /* setuid */ > VXFS_ISGID = 0x00000400, /* setgid */ > VXFS_ISVTX = 0x00000200, /* sticky bit */ > VXFS_IREAD = 0x00000100, /* read */ > VXFS_IWRITE = 0x00000080, /* write */ > VXFS_IEXEC = 0x00000040, /* exec */ > > Especially in an expanded form like this, these are ugly to read, and > a pain to work with. > > An example of potentially a better method, from fs/dax.c: > > #define DAX_SHIFT (4) > #define DAX_LOCKED (1UL << 0) > #define DAX_PMD (1UL << 1) > #define DAX_ZERO_PAGE (1UL << 2) > #define DAX_EMPTY (1UL << 3) > > Pardon the space condensation - my email client is not functioning properly. That's the gmail web interface, right? I believe that you can use a real email client to talk to smtp.gmail.com and it won't mangle spaces in your emails. > Anyways, I believe using bit shifts to represent different file modes > would be a much better idea - no runtime penalty as they get > calculated into constants at compile time, and significantly easier > for the average user to read. > > Any thoughts on this? It's all just opinions. :) I find the hex number list easier to read .. and the values are right there in front of you when debugging, instead of having to determine what 1 << 9 is. cheers. -- ~Randy