User Manual

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-19
Buffer-Status Values
Buffer-Status Values
Buffer status is indicated by a 2-byte field in the WRITEREAD buffer header block. See
Figure 3-4 on page 3-7. This field is set to a nonzero value by the IOP if either:
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 the
contents of the buffer that can be checked before the CCB is executed.
The buffer-status value needs to be checked only if a returned file-system error-code
value (see Table 3-6 on page 3-16) indicates that something might be wrong with the
buffer. Table 3-7 shows possible values for the buffer-status field, gives the FESTATUS
literals that could correspond to those values, and supplies possible error causes or
meanings for each status value.
CAM-StatusValues
The CAM-status field is supported in the CAM structure used in Open SCSI
passthrough mode. Because of the nature of the WRITEREAD procedure call, which is
used in the Open SCSI interface, polling the CAM-status field in the buffer does not
Table 3-7. Buffer-Status Values and Their Meanings
Buffer-Status
Value FESTATUS Literal Error Cause or Meaning
0 FEOK No error occurred in either buffer format or data.
1 FEBADFORMAT The buffer header block contains an
unsupported buffer version.
2 FEBADFORMAT The buffer header block did not contain the
string 0h54485255 (THRU in ASCII) in the last
field (hdr_end).
3 FEBADCOUNT The buffer is too short to contain the complete
header and the smallest allowable CCB.
The FEBADCOUNT literal might be returned in
cases where there is no valid buffer status; for
example, if the IOP detects a buffer that is not
long enough to contain even a valid header
block.
4 FEBADFORMAT The CCB offset points back to the header block.
5 FEREQUEST
or
FEINVALOP
The IOP could not identify the command as a
valid passthrough command. The IOP did not
locate the string 0h50415353 (PASS in ASCII) in
the first field of the header block (hdr_begin), or
the IOP did not locate the string 0h54485255
(THRU in ASCII) in the last field of the header
block (hdr_end).