beautypg.com

The writeread buffer header block, Figure 3-4, Writeread buffer header block structure – HP Integrity NonStop H-Series User Manual

Page 23

background image

Interfacing With the Open SCSI I/O Process (IOP)

Open SCSI for Fibre Channel Controller Integrator’s Manual for HP Integrity NonStop NS-Series Servers

3 -7

The WRITEREAD Buffer Header Block

The WRITEREAD Buffer Header Block

The header block for the WRITEREAD buffer (

Figure 3-4

) contains fields needed by

the IOP to determine whether the buffer contains a CCB for controlling the device, to
check for compatibility, and to find the relevant pieces of data in the buffer.

The fields of the header block contain this information:

hdr_begin

This 4-byte field contains a specific ASCII value that indicates to the IOP that the
buffer contains a CCB to control the SCSI device. This value must be set to PASS
in ASCII (that is, 0h50415353) so that you can find it easily when you investigate
problems.

hdr_size

This 2-byte field contains the size of the header block in bytes. This value must be
set to 20.

version

This 2-byte field contains a version number used by the IOP and clients to
coordinate changes to the header block structure. The value of this field is initially
set to 1, and it is incremented each time the header block structure changes.
These changes are restricted to using the spare fields or adding an additional field
in front of the hdr_end field. It is intended that existing fields will not be moved or
redefined.

buffer_status

This 2-byte field is set to a nonzero value if either:

Figure 3-4. WRITEREAD Buffer Header Block Structure

hdr_begin

("PASS")

hdr_size

version

buffer_status

ccb_offset

spare_1

spare_2

hdr_end

("THRU")

Header

Block

CCB

Sense Buffer

(optional)

Data Buffer

(optional)

009

CDT

.CDD