On Mon, 2018-07-30 at 14:52 -0400, Douglas Gilbert wrote: +AD4- I designed 'struct sg+AF8-io+AF8-v4' found in include/uapi/linux/bsg.h to handle storage +AD4- related protocols, not just the SCSI command set. After the guard, the next +AD4- two fields in that structure are: +AD4- +AF8AXw-u32 protocol+ADs- /+ACo- +AFs-i+AF0- 0 -+AD4- SCSI , .... +ACo-/ +AD4- +AF8AXw-u32 subprotocol+ADs- /+ACo- +AFs-i+AF0- 0 -+AD4- SCSI command, 1 -+AD4- SCSI task +AD4- management function, .... +ACo-/ +AD4- +AD4- So there is lots of room for other protocols. Hi Doug, That's great, but it seems like most bsg drivers use other data structures than struct sg+AF8-io+AF8-v4. See e.g. struct fc+AF8-bsg+AF8-request and struct fc+AF8-bsg+AF8-reply in include/uapi/scsi/scsi+AF8-bsg+AF8-fc.h. See also struct iscsi+AF8-bsg+AF8-request and struct iscsi+AF8-bsg+AF8-reply in include/scsi/scsi+AF8-bsg+AF8-iscsi.h. The output of git grep -nH ' +AD0- job-+AD4-request+ADs-' did not reveal any bsg driver that uses struct sg+AF8-io+AF8-v4. Did I perhaps misunderstand something? Thanks, Bart.