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