[][src]Crate scsi

A crate for both interacting with SCSI devices as a host and for writing new SCSI device software/firmware.

Currently the main focus of this crate is Bulk Only USB Mass Storage Device compatibility, since that comprises a significant chunk of use cases. However, more functionality can be requested and/or PRed as necessary or desired.

Modules

scsi

Contains implementations for the different SCSI commands and responses, as well as helper utilities to, for example, treat the SCSI device as a normal block devies.

Structs

ScsiError

A general error struct for the package.

Enums

ErrorCause

The cause of a returned error. This is implemented as an enum with a large number of variants to reduce allocations.

UsbTransferDirection

The direction that the USB transfer was going when it errored.

Traits

BufferPullable

Allows for a struct to deserialize itself from a raw byte buffer.

BufferPushable

Allows a struct to serialize itself to a raw byte buffer.

CommunicationChannel

The trait that all communication devices should implement if they are to be used to transfer SCSI information.