p1 OpenVMS usage:buffer type: vector byte (unsigned) access: read only mechanism: (Alpha and I64) by 32- or 64-bit reference (VAX) by 32-bit reference The address of the buffer to receive the incoming data. The length of this buffer is specified by the p2 argument. p2 OpenVMS usage:buffer_length type: access: quadword unsigned (Alpha and I64); longword unsigned (VAX) mechanism: read only (Alpha and I64) by 64-bit value The length (in bytes) of the buffer available to hold the incoming data. The address of this buffer is specified by the p1 argument. p3 OpenVMS usage:socket_name type: vector byte (unsigned) access: read only mechanism: by item_list_3 descriptor The remote port number and IP address of the source of the datagram or raw IP message (not TCP). The p3 argument is the address of an item_list_3 descriptor that points to the socket address structure into which the remote port number and IP address of the message source is written. p4 OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Longword of flags to specify attributes for the read operations. The following table lists the available read flags. Read Flag Description TCPIP$C_MSG_OOB Reads an out-of-band byte. TCPIP$C_MSG_PEEK Reads a message but leaves the message in the queue. TCPIP$C_MSG_NBIO Does not block the I/O operation if the receive queue is empty (similar to using IO$M_NOWAIT). TCPIP$C_MSG_PURGE Flushes data from the queue (similar to using IO$M_PURGE). TCPIP$C_MSG_ Blocks the completion of the operation until BLOCKALL the buffer is filled completely or until the connection is closed (similar to using IO$M_ LOCKBUF). p6 OpenVMS usage:buffer_list type: vector byte (unsigned) access: read only mechanism: (Alpha and I64) by 32- or 64-bit descriptor-fixed-length descriptor (VAX) by 32-bit descriptor-fixed-length descriptor Output buffer list describing one or more buffers to hold the incoming data. The p6 argument is the 32- or 64-bit address (on Alpha and I64 systems) or the 32-bit address (on VAX systems) of a descriptor that points to a output buffer list. Buffers are filled in the order specified by the output buffer list. The transfer-length value returned in the I/O status block is the total number of bytes transferred to all buffers. If you use the p1 and p2 arguments, do not use the p6 argument; they are mutually exclusive.