code: func (c *SCSICmd) Read(b []byte) (n int, err error) {
  	toRead := len(b)
  	boff := 0
  	for toRead != 0 {
  		if c.vecoffset == len(c.vecs) {
  			return boff, io.EOF
  		}
  		read := copy(b[boff:], c.vecs[c.vecoffset][c.offset:])
  		boff += read
  		toRead -= read
  		c.offset += read
  		if c.offset == len(c.vecs[c.vecoffset]) {
  			c.vecoffset++
  			c.offset = 0
  		}
  	}
  	return boff, nil
  }
docs: // Read, for a SCSICmd, is a io.Reader from the data buffer attached to this SCSI command.
  // If there's data to be written to the virtual device, this is the way to access it.