BUFFLST operating considerations
SEND OPTCD=BUFFLST allows FM data to be sent from a number of discontiguous buffers; this can result in more efficient use of application program storage areas. The RPLAREA field points to a buffer list, which is a contiguous set of 16-byte control blocks called buffer-list entries. Each buffer-list entry points to a buffer that contains part of the data to be sent.

If the message to be sent using OPTCD=BUFFLST is not an FM data request or a set of FM data requests, SEND is rejected with (RTNCD,FDB2)=(X'14',X'77').
The RPL RECLEN field specifies the length (in bytes) of the buffer list. If RECLEN does not specify a nonzero multiple of 16, SEND is rejected with (RTNCD,FDB2)=(X'14',X'79'). Each buffer-list entry is mapped in the ISTBLENT DSECT described in Control block formats and DSECTs.
If OPTCD=(BUFFLST,LMPEO), then each buffer-list entry contains LMPEO control flags which govern whether the buffers associated with adjacent buffer-list entries should be grouped together as a single RU, or whether the data is eligible to be split into multiple RUs. See Buffer-list LMPEO states for a description of how LMPEO control flags are used to govern RU boundary settings. See also Table 1 for information about using combinations of the BUFFLST, LMPEO, and USERRH options. The format of the buffer list follows. A buffer list consists of one or more contiguous buffer list entries aligned on a fullword boundary.

| Word | Contents |
|---|---|
| 1 |
|
| 2 | Reserved. Must be set to 0. |
| 3 | Pointer to the beginning of the data buffer. |
| 4 | Length of the data in the buffer. If 0 is specified, the third word is ignored. However, the flags in byte 0 of the first word are processed and can change the LMPEO states. For RUs whose boundaries are specified by the application program (using the Begin RU and End RU flags), the total RU length must not be larger than 65 535 bytes. If the LMPEO option is used to split the data into RUs, a length greater than 65 535 may be specified. |
| Note:
|
|