smartmontools SVN Rev 5643
Utility to control and monitor storage systems with "S.M.A.R.T."
|
SAT support. More...
Public Types | |
enum | sat_scsi_mode { sat_always , sat_auto , scsi_always } |
enum | sat_variant { sat_standard , sat_asm1352r } |
Public Types inherited from tunnelled_device< ata_device, scsi_device > | |
typedef scsi_device | tunnel_device_type |
Public Member Functions | |
sat_device (smart_interface *intf, scsi_device *scsidev, const char *req_type, sat_scsi_mode mode=sat_always, int passthrulen=0, sat_variant variant=sat_standard, int port=0) | |
virtual | ~sat_device () |
virtual smart_device * | autodetect_open () override |
Open device with autodetection support. | |
virtual bool | ata_pass_through (const ata_cmd_in &in, ata_cmd_out &out) override |
ATA pass through. | |
virtual bool | scsi_pass_through (scsi_cmnd_io *iop) override |
SCSI pass through. | |
Public Member Functions inherited from tunnelled_device< ata_device, scsi_device > | |
virtual void | release (const smart_device *dev) override |
Release ownership of other device. | |
tunnel_device_type * | get_tunnel_dev () |
const tunnel_device_type * | get_tunnel_dev () const |
Public Member Functions inherited from ata_device | |
virtual bool | ata_pass_through (const ata_cmd_in &in, ata_cmd_out &out)=0 |
ATA pass through. | |
bool | ata_pass_through (const ata_cmd_in &in) |
ATA pass through without output registers. | |
virtual bool | ata_identify_is_cached () const |
Return true if OS caches ATA identify sector. | |
Public Member Functions inherited from smart_device | |
virtual | ~smart_device () |
bool | is_ata () const |
Return true if ATA device. | |
bool | is_scsi () const |
Return true if SCSI device. | |
bool | is_nvme () const |
Return true if NVMe device. | |
ata_device * | to_ata () |
Downcast to ATA device. | |
const ata_device * | to_ata () const |
Downcast to ATA device (const). | |
scsi_device * | to_scsi () |
Downcast to SCSI device. | |
const scsi_device * | to_scsi () const |
Downcast to SCSI device (const). | |
nvme_device * | to_nvme () |
Downcast to NVMe device. | |
const nvme_device * | to_nvme () const |
Downcast to NVMe device (const). | |
const device_info & | get_info () const |
Get device info struct. | |
const char * | get_dev_name () const |
Get device (path)name. | |
const char * | get_info_name () const |
Get informal name. | |
const char * | get_dev_type () const |
Get device type. | |
const char * | get_req_type () const |
Get type requested by user, empty if none. | |
const error_info & | get_err () const |
Get last error info struct. | |
int | get_errno () const |
Get last error number. | |
const char * | get_errmsg () const |
Get last error message. | |
virtual bool | is_syscall_unsup () const |
Return true if last error indicates an unsupported system call. | |
bool | set_err (int no, const char *msg,...) __attribute_format_printf(3 |
Set last error number and message. | |
bool bool | set_err (const error_info &err) |
Set last error info struct. | |
void | clear_err () |
Clear last error info. | |
bool | set_err (int no) |
Set last error number and default message. | |
virtual bool | is_open () const =0 |
Return true if device is open. | |
virtual bool | open ()=0 |
Open device, return false on error. | |
virtual bool | close ()=0 |
Close device, return false on error. | |
virtual smart_device * | autodetect_open () |
Open device with autodetection support. | |
virtual bool | is_powered_down () |
Early test if device is powered up or down. | |
virtual bool | owns (const smart_device *dev) const |
Return true if other device is owned by this device. | |
virtual void | release (const smart_device *dev) |
Release ownership of other device. | |
Public Member Functions inherited from tunnelled_device_base | |
virtual | ~tunnelled_device_base () |
virtual bool | is_open () const override |
Return true if device is open. | |
virtual bool | open () override |
Open device, return false on error. | |
virtual bool | close () override |
Close device, return false on error. | |
virtual bool | owns (const smart_device *dev) const override |
Return true if other device is owned by this device. | |
virtual void | release (const smart_device *dev) override |
Release ownership of other device. | |
Public Member Functions inherited from scsi_device | |
virtual bool | scsi_pass_through (scsi_cmnd_io *iop)=0 |
SCSI pass through. | |
bool | scsi_pass_through_and_check (scsi_cmnd_io *iop, const char *msg="") |
void | set_rcap16_first () |
Always try READ CAPACITY(10) (rcap10) first but once we know rcap16 is needed, use it instead. | |
bool | use_rcap16 () const |
void | set_spc4_or_higher () |
bool | is_spc4_or_higher () const |
bool | query_cmd_support () |
bool | checked_cmd_support () const |
enum scsi_cmd_support | cmd_support_level (uint8_t opcode, bool sa_valid, uint16_t sa, bool for_lsense_spc=false) const |
Private Attributes | |
int | m_passthrulen |
sat_scsi_mode | m_mode |
sat_variant | m_variant |
int | m_port |
Additional Inherited Members | |
Static Public Member Functions inherited from smart_device | |
static int | get_num_objects () |
Get current number of allocated 'smart_device' objects. | |
Protected Types inherited from ata_device | |
enum | { supports_data_out = 0x01 , supports_smart_status = 0x02 , supports_output_regs = 0x04 , supports_multi_sector = 0x08 , supports_48bit_hi_null = 0x10 , supports_48bit = 0x20 } |
Flags for ata_cmd_is_supported(). More... | |
Protected Types inherited from smart_device | |
enum | do_not_use_in_implementation_classes { never_called } |
Dummy enum for dummy constructor. More... | |
Protected Member Functions inherited from tunnelled_device< ata_device, scsi_device > | |
tunnelled_device (tunnel_device_type *tunnel_dev) | |
tunnelled_device (tunnel_device_type *tunnel_dev, unsigned nsid) | |
Protected Member Functions inherited from ata_device | |
bool | ata_cmd_is_supported (const ata_cmd_in &in, unsigned flags, const char *type=0) |
Check command input parameters. | |
bool | ata_cmd_is_ok (const ata_cmd_in &in, bool data_out_support=false, bool multi_sector_support=false, bool ata_48bit_support=false) |
Check command input parameters (old version). | |
void | hide_ata (bool hide=true) |
Hide/unhide ATA interface. | |
ata_device () | |
Default constructor, registers device as ATA. | |
Protected Member Functions inherited from smart_device | |
smart_device (smart_interface *intf, const char *dev_name, const char *dev_type, const char *req_type) | |
Constructor to init interface and device info. | |
smart_device (do_not_use_in_implementation_classes) | |
Dummy constructor for abstract classes. | |
device_info & | set_info () |
R/W access to device info struct. | |
smart_interface * | smi () |
Get interface which produced this object. | |
const smart_interface * | smi () const |
Get interface which produced this object (const). | |
Protected Member Functions inherited from tunnelled_device_base | |
tunnelled_device_base (smart_device *tunnel_dev) | |
Protected Member Functions inherited from scsi_device | |
void | hide_scsi (bool hide=true) |
Hide/unhide SCSI interface. | |
scsi_device () | |
Default constructor, registers device as SCSI. | |
Enumerator | |
---|---|
sat_always | |
sat_auto | |
scsi_always |
Definition at line 109 of file scsiata.cpp.
Enumerator | |
---|---|
sat_standard | |
sat_asm1352r |
Definition at line 114 of file scsiata.cpp.
sat::sat_device::sat_device | ( | smart_interface * | intf, |
scsi_device * | scsidev, | ||
const char * | req_type, | ||
sat_scsi_mode | mode = sat_always , |
||
int | passthrulen = 0 , |
||
sat_variant | variant = sat_standard , |
||
int | port = 0 |
||
) |
Definition at line 139 of file scsiata.cpp.
|
virtual |
Definition at line 162 of file scsiata.cpp.
|
overridevirtual |
ATA pass through.
Return false on error. Must be implemented in derived class.
Implements ata_device.
Definition at line 259 of file scsiata.cpp.
|
overridevirtual |
Open device with autodetection support.
May return another device for further access. In this case, the original pointer is no longer valid. Default implementation calls 'open()' and returns 'this'.
Reimplemented from smart_device.
Definition at line 522 of file scsiata.cpp.
|
overridevirtual |
SCSI pass through.
Returns false on error.
Implements scsi_device.
Definition at line 514 of file scsiata.cpp.
|
private |
Definition at line 133 of file scsiata.cpp.
|
private |
Definition at line 132 of file scsiata.cpp.
|
private |
Definition at line 135 of file scsiata.cpp.
|
private |
Definition at line 134 of file scsiata.cpp.