1 2 /* "net_buffer_header_dcls.incl.pl1" -- include file to declare the */ 3 /* format of the header of a standard Network System buffer (as managed */ 4 /* by net_buffer_man_). See net_buffer_man_ for details of allowed use. */ 5 6 /* Originally created by D. M. Wells, February, 1975. */ 7 8 declare 9 1 net_buffer_header aligned based, 10 2 allocation_ptr pointer, /* non-null iff net_buffer_man_ allocated buffer */ 11 2 lock bit (36) aligned, /* non-zero iff in use (value SB packed SDB ptr) */ 12 2 user_data bit (36) aligned, /* user of buffer may store data here */ 13 2 user_info_ptr pointer, /* user of buffer may store a ptr here */ 14 15 2 buffer_contents aligned, 16 3 workspace_byte_size fixed binary (24), /* assumed size of bytes in workspace */ 17 3 buffer_bound fixed binary (24), /* hbound of the workspace buffer */ 18 3 num_bytes fixed binary (24), /* count of valid bytes in buffer */ 19 3 byte_offset fixed binary (24); /* offset of first valid byte in buffer */ 20 21 /* Usage of this header is as follows: */ 22 /* */ 23 /* declare */ 24 /* 1 buffer aligned based, */ 25 /* 2 header like net_buffer_header, */ 26 /* 2 workspace aligned, */ 27 /* 3 byte (0 : 0 refer (buffer.buffer_bound)) */ 28 /* bit (0 refer (buffer.workspace_byte_size)) */ 29 /* unaligned; */ 30 31 /* Note that in manipulating buffers using the above header that */ 32 /* the following relations are true by convention: */ 33 /* */ 34 /* Num_Unused + byte_offset + num_bytes = buffer_bound + 1 */ 35 /* Next_Unused = byte_offset + num_bytes */ 36 37 /* end of "net_buffer_header_dcls.incl.pl1" -- */ 38