1Message header: 2Data Bytes Meaning 3FOB1 4 version 4 4 checksum 5 4 flattened size 6 4 'what' 7 1 flags 8 9Data field: 10Data Bytes Meaning 11 1 flags 12 4 type 13 // Mini data (all data less than 256 bytes total) 14 1 item count (*if* there is more than one) 15 1 data length 16 // Maxi data (all data more than 255 bytes total) 17 4 item count (*if* there is more than one) 18 4 data length 19 1 name length 20 X name 21 // Single item 22 4 item size (*if* this is a variable sized item) 23 Y item data - NULL padded to 8-byte boundary 24 // Multiple items 25 4 item size (*if* this is a variable sized item) 26 Y item data - NULL padded to 8-byte boundary 27 28//------------------------------------------------------------------------------ 29// An example 30//------------------------------------------------------------------------------ 31// PrintToStream() 32Data Bytes Meaning 33 34//BMessage: what = (0x0, or 0) 35FOB1 4 version 360x90010001 4 checksum 370x00000192 4 flattened size (402 bytes) 380x0 4 'what' (none specified) 390x01 1 flags 40 41// entry ATTRIBUTE_MENU, type='LONG', c=5, size= 4, 420x07 1 flags 43LONG 4 type 440x05 1 item count 450x14 1 data length 460x0e 1 name length 47ATTRIBUTE_ 14 name (ATTRIBUTE_MENU) 48// data[0]: 0x8 (8, '') 490x8 4 data[0] 50// data[1]: 0x8 (8, '') 510x8 4 data[1] 52// data[2]: 0x6 (6, '') 530x6 4 data[2] 54// data[3]: 0x8 (8, '') 550x8 4 data[3] 56// data[4]: 0x6 (6, '') 570x6 4 data[4] 58 59// entry CRITERIA_MENU, type='LONG', c=5, size= 4, 600x07 1 flags 61LONG 4 type 620x05 1 item count 630x14 1 data length 640x0d 1 name length 65CRITERIA_ 13 name (CRITERIA_MENU) 66// data[0]: 0x0 (0, '') 670x0 4 data[0] 68// data[1]: 0x0 (0, '') 690x0 4 data[1] 70// data[2]: 0x0 (0, '') 710x0 4 data[2] 72// data[3]: 0x0 (0, '') 730x0 4 data[3] 74// data[4]: 0x0 (0, '') 750x0 4 data[4] 76 77// entry VALUE, type='CSTR', c=5, 780x03 1 flags 79CSTR 4 type 800x5 1 item count 810x90 1 data length 820x5 1 name length 83VALUE 5 name (VALUE) 84// size=18, data[0]: "listar@freelists." 850x12 4 item size 86listar@fre 18 data[0] 87 2 padding to 8-byte boundary 88// size=27, data[1]: "freelists-users@freelists." 890x1b 4 item size 90freelists@ 27 data[1] 91 1 padding to 8-byte boundary 92// size=27, data[2]: "freelists-users@freelists." 930x1b 4 item size 94freelists@ 27 data[2] 95 1 padding to 8-byte boundary 96// size=19, data[3]: "ecartis@freelists." 970x13 4 item size 98ecartis@fr 19 data[3] 99 1 padding to 8-byte boundary 100// size=26, data[4]: "freelists-news@freelists." 1010x1a 4 item size 102freelists@ 26 data[4] 103 2 padding to 8-byte boundary 104 105// entry AND_OR_MENU, type='LONG', c=5, size= 4, 1060x07 1 flags 107LONG 4 type 1080x5 1 item count 1090x14 1 data length 1100x0b 1 name length 111AND_OR_MEN 11 name (AND_OR_MENU) 112// data[0]: 0x1 (1, '') 1130x1 4 data[0] 114// data[1]: 0x1 (1, '') 1150x1 4 data[1] 116// data[2]: 0x1 (1, '') 1170x1 4 data[2] 118// data[3]: 0x1 (1, '') 1190x1 4 data[3] 120// data[4]: 0x0 (0, '') 1210x0 4 data[4] 122 123// entry COUNT, type='LONG', c=1, size= 4, data[0]: 0x5 (5, '') 1240x0f 1 flags 125LONG 4 type 1260x4 1 data length 1270x5 1 name length 128COUNT 5 name (COUNT) 1290x5 4 data 130 131// entry ACTION_MENU, type='LONG', c=1, size= 4, data[0]: 0x2 (2, '') 1320x0f 1 flags 133LONG 4 type 1340x4 1 data length 1350x0b 1 name length 136ACTION_MEN 11 name (ACTION_MENU) 1370x2 4 data 138 139// entry ACTION_VALUE, type='CSTR', c=1, size=42, data[0]: "/boot/home/mail/Erik's Mail/freelists.org" 1400x0b 1 flags 141CSTR 4 type 1420x30 1 data length 1430x0c 1 name length 144ACTION_VAL 12 name (ACTION_VALUE) 1450x2a 4 item size 146/boot/home 42 data 147 2 padding to 8-byte boundary 148 149//------------------------------------------------------------------------------ 150// An old example 151Data Bytes Meaning 152 1531BOF(ascii) 4 version 154?? 4 ?? 1550x76 4 flattened size 156DPUQ 4 what(B_QUERY_UPDATE) 157?? 1 ?? 158 1590F 1 flags (including fixed chunk size) 160GNOL 4 type 16104 1 chunk size 16206 1 name length 163opcode 6 name 1641 4 data(B_ENTRY_CREATED) 165 1660F 1 flags (including fixed chunk size) 167GNOL 4 type 16804 1 chunk size 16906 1 name length 170device 6 name 1714 4 data 172 1730F 1 flags (including fixed chunk size) 174GNLL 4 type 17508 1 chunk size 17609 1 name length 177directory 9 name 178524992 8 data 179 1800F 1 flags (including fixed chunk size) 181GNLL 4 type 18208 1 chunk size 18304 1 name length 184node 4 name 185524295 8 data 186 1870B 1 flags (including variable chunk size) 188RTSC 4 type 18908 1 chunk size 19004 1 name length 191name 4 name 19208 1 chunk size? 193 8 padded string? 194