z/OS DFSMS Macro Instructions for Data Sets
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


BUILD—Build a buffer pool (BDAM, BISAM, BPAM, BSAM, QISAM, and QSAM)

z/OS DFSMS Macro Instructions for Data Sets
SC23-6852-02

The BUILD macro is used to construct a buffer pool in an area provided by the problem program. The buffer pool can be used by more than one data set through separate data control blocks. For BDAM, BISAM, BPAM and BSAM your program can obtain individual buffers from the buffer pool using the GETBUF macro, and return them to the buffer pool using a FREEBUF macro. For QISAM and QSAM, OPEN obtains buffers from and CLOSE returns buffers to the buffer pool. See z/OS DFSMS Using Data Sets for an explanation of the interaction of the DCB, BUILD, and GETBUF macros in each access method, and the buffer size requirements.

The BUILD macro may be issued in 24- or 31-bit addressing mode. When issued in 31-bit addressing mode, all addresses must be valid 31-bit addresses.

Note: BSAM cannot support 64 bit real storage for any tape devices that do not support 64 bit IDAWs. Applications that use BSAM to process a tape data set can experience ABEND0D3 and/or ABENDB00 due to the inability to use a 64-bit IDAW by the device.

The format of the BUILD macro is:

area address—RX-Type Address, (2-12), or (1)
specifies the address of the area to be used as a buffer pool. The area must start on a fullword boundary. When issued in 31-bit addressing mode, the input area address must be a clean 31-bit address. If the area resides above the line, it cannot be used by other access method macros.

The following illustration shows the format of the buffer pool:

Buffer Pool Control Block (8 bytes) followed by Buffer (buffer length). The area length is (buffer length) x (number of buffers) + 8
number of buffers—symbol, decimal digit, absexp, or (2-12)
specifies the number of buffers in the buffer pool to a maximum of 255.
buffer length—symbol, decimal digit, absexp, or (2-12)
specifies the length, in bytes, of each buffer in the buffer pool. If the value specified for the buffer length is not a multiple of four the system rounds the value specified to the next higher multiple of four. The maximum length that can be specified is 32 760 bytes. For QSAM, the buffer length must be at least as large as the value specified in the block size (DCBBLKSI) field of the data control block.
(0)
The number of buffers and buffer length can be specified in general register 0. The following illustration shows that if (0) is coded, register 0 must contain the binary values for the number of buffers and buffer length.
Number of buffers (bits 0-15) followed by buffer length (bits 16-31)

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014