Open SCSI Integrator's Manual for NonStop S-Series Servers

The Open SCSI I/O Process (IOP)
Open SCSI Integrator’s Manual for NonStop Servers422988-002
4-19
Buffer-Status Values
Buffer-Status Values
Buffer status is indicated by a two-byte field in the WRITEREAD buffer header block
(see Figure 4-4 on page 4-7). This field is set to a nonzero value by the IOP if either of
the following is true:
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 those
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 4-6
on page 4-16) indicates that something might be wrong with the
buffer. Table 4-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.
Note. For a complete description of the Guardian file-system error messages, error codes and
their meanings, and the cause, possible effect on the system, and recommended recovery
action for each message, refer to the Guardian Procedure Errors and Messages Manual.
Table 4-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. An
example of such a case is the IOP detecting 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).