summaryrefslogtreecommitdiff
path: root/lib9p/idl/2010-9P2000.L.9p
diff options
context:
space:
mode:
Diffstat (limited to 'lib9p/idl/2010-9P2000.L.9p')
-rw-r--r--lib9p/idl/2010-9P2000.L.9p48
1 files changed, 23 insertions, 25 deletions
diff --git a/lib9p/idl/2010-9P2000.L.9p b/lib9p/idl/2010-9P2000.L.9p
index 56fcd0d..d81a15b 100644
--- a/lib9p/idl/2010-9P2000.L.9p
+++ b/lib9p/idl/2010-9P2000.L.9p
@@ -39,8 +39,8 @@ num super_magic = 4
# protocol.h (and are different than the Linux kernel's values, which
# vary by architecture).
bitfield lo = 4
- "bit 0=subfield(mode)" # low bit of the 2-bit RDONLY/WRONLY/RDWR/NOACCESS enum
- "bit 1=subfield(mode)" # high bit of the 2-bit RDONLY/WRONLY/RDWR/NOACCESS enum
+ "bit 0=num(MODE)" # low bit of the 2-bit RDONLY/WRONLY/RDWR/NOACCESS enum
+ "bit 1=num(MODE)" # high bit of the 2-bit RDONLY/WRONLY/RDWR/NOACCESS enum
#"bit 2=unused"
#"bit 3=unused"
#"bit 4=unused"
@@ -61,13 +61,12 @@ bitfield lo = 4
"bit 19=CLOEXEC"
"bit 20=SYNC"
- "alias RDONLY = 0"
- "alias WRONLY = 1"
- "alias RDWR = 2"
- "alias NOACCESS = 3"
+ "num(MODE) RDONLY = 0"
+ "num(MODE) WRONLY = 1"
+ "num(MODE) RDWR = 2"
+ "num(MODE) NOACCESS = 3"
- "alias MODE_MASK = 0b000000000000000000011"
- "alias FLAG_MASK = 0b111111111111111000000"
+ "mask FLAG = 0b111111111111111000000"
# "D"irentry "T"ype
#
@@ -77,11 +76,11 @@ num dt = 1
"PIPE = 1"
"CHAR_DEV = 2"
"DIRECTORY = 4"
- "BLOCK_DEV = 6"
+ "BLOCK_DEV = 6" # proof it's not a bitfield
"REGULAR = 8"
- "SYMLINK = 10"
- "SOCKET = 12"
- "_WHITEOUT = 14"
+ "SYMLINK = 10" # proof it's not a bitfield
+ "SOCKET = 12" # proof it's not a bitfield
+ "_WHITEOUT = 14" # proof it's not a bitfield
# Mode
#
@@ -89,10 +88,10 @@ num dt = 1
# instead of just 16? Who knows?
bitfield mode = 4
#...
- "bit 15=subfield(fmt)" # bit of the 4-bit FMT_ enum
- "bit 14=subfield(fmt)" # bit of the 4-bit FMT_ enum
- "bit 13=subfield(fmt)" # bit of the 4-bit FMT_ enum
- "bit 12=subfield(fmt)" # bit of the 4-bit FMT_ enum
+ "bit 15=num(FMT)" # bit of the 4-bit FMT_ enum
+ "bit 14=num(FMT)" # bit of the 4-bit FMT_ enum
+ "bit 13=num(FMT)" # bit of the 4-bit FMT_ enum
+ "bit 12=num(FMT)" # bit of the 4-bit FMT_ enum
#...
"bit 11=PERM_SETGROUP"
"bit 10=PERM_SETUSER"
@@ -107,16 +106,15 @@ bitfield mode = 4
"bit 1=PERM_OTHER_W"
"bit 0=PERM_OTHER_X"
- "alias FMT_PIPE = LIB9P_DT_PIPE<<12"
- "alias FMT_CHAR_DEV = LIB9P_DT_CHAR_DEV<<12"
- "alias FMT_DIRECTORY = LIB9P_DT_DIRECTORY<<12"
- "alias FMT_BLOCK_DEV = LIB9P_DT_BLOCK_DEV<<12"
- "alias FMT_REGULAR = LIB9P_DT_REGULAR<<12"
- "alias FMT_SYMLINK = LIB9P_DT_SYMLINK<<12"
- "alias FMT_SOCKET = LIB9P_DT_SOCKET<<12"
+ "num(FMT) PIPE = dt.PIPE<<12"
+ "num(FMT) CHAR_DEV = dt.CHAR_DEV<<12"
+ "num(FMT) DIRECTORY = dt.DIRECTORY<<12"
+ "num(FMT) BLOCK_DEV = dt.BLOCK_DEV<<12"
+ "num(FMT) REGULAR = dt.REGULAR<<12"
+ "num(FMT) SYMLINK = dt.SYMLINK<<12"
+ "num(FMT) SOCKET = dt.SOCKET<<12"
- "alias PERM_MASK = 0000777" # PERM_*
- "alias FMT_MASK = 0170000" # _fmt_*
+ "mask PERM = 07777" # PERM_*
# A boolean value that is for some reason 4 bytes wide.
num b4 = 4