HP Integrity NonStop H-Series User Manual
Page 24
Interfacing With the Open SCSI I/O Process (IOP)
The WRITEREAD Buffer Header Block
•
The IOP does not support the specified version of the header block.
•
The IOP detects an error in the organization and layout of the buffer or in these
contents of the buffer that can be checked before the CCB is executed.
ccb_offset
This 2-byte field contains the value of the byte offset of the CCB from the beginning
of the WRITEREAD buffer. It can be the same value as the hdr_size field or some
other size if the application programmer wants to put additional information or
padding between the header block and the CCB.
spare_1
This 2-byte field is reserved for future use.
spare_2
This 2-byte field is reserved for future use.
hdr_end
This 4-byte field contains a specific ASCII value that indicates the end of the buffer.
This value must be set to THRU in ASCII (that is, 0h54485255) so that you can
find it easily when you investigate problems.
Example Declaration for WRITEREAD Buffer Header Block
This example shows a typical C declaration for the WRITEREAD buffer header block:
struct block_header
{
long hdr_begin; /* Set to value 0h50415353 (= “PASS”) */
short hdr_size; /* Set to size of header block (=20) */
short version; /* Used to check for compatibility */
short buffer_status;
short ccb_offset; /* Byte offset of CCB from start of
WRITEREAD buffer */
short spare_1; /* A spare field */
short spare_2; /* Another spare field */
long hdr_end; /* Set to value 0h54485255 (= “THRU”) */
}