smartmontools  SVN Rev 4092
Utility to control and monitor storage systems with "S.M.A.R.T."
Public Member Functions | Private Attributes | List of all members
sat::sat_device Class Reference

SAT support. More...

Collaboration diagram for sat::sat_device:
Collaboration graph
[legend]

Public Member Functions

 sat_device (smart_interface *intf, scsi_device *scsidev, const char *req_type, int passthrulen=0, bool enable_auto=false)
 
virtual ~sat_device () throw ()
 
virtual smart_deviceautodetect_open ()
 Open device with autodetection support. More...
 
virtual bool ata_pass_through (const ata_cmd_in &in, ata_cmd_out &out)
 ATA pass through. More...
 
virtual bool scsi_pass_through (scsi_cmnd_io *iop)
 SCSI pass through. More...
 
- Public Member Functions inherited from tunnelled_device< ata_device, scsi_device >
virtual void release (const smart_device *dev)
 Release ownership of other device. More...
 
tunnel_device_typeget_tunnel_dev ()
 
const tunnel_device_typeget_tunnel_dev () const
 
- Public Member Functions inherited from ata_device
bool ata_pass_through (const ata_cmd_in &in)
 ATA pass through without output registers. More...
 
virtual bool ata_identify_is_cached () const
 Return true if OS caches ATA identify sector. More...
 
- Public Member Functions inherited from smart_device
virtual ~smart_device () throw ()
 
bool is_ata () const
 Return true if ATA device. More...
 
bool is_scsi () const
 Return true if SCSI device. More...
 
ata_deviceto_ata ()
 Downcast to ATA device. More...
 
const ata_deviceto_ata () const
 Downcast to ATA device (const). More...
 
scsi_deviceto_scsi ()
 Downcast to SCSI device. More...
 
const scsi_deviceto_scsi () const
 Downcast to SCSI device (const). More...
 
const device_infoget_info () const
 Get device info struct. More...
 
const char * get_dev_name () const
 Get device (path)name. More...
 
const char * get_info_name () const
 Get informal name. More...
 
const char * get_dev_type () const
 Get device type. More...
 
const char * get_req_type () const
 Get type requested by user, empty if none. More...
 
const error_infoget_err () const
 Get last error info struct. More...
 
int get_errno () const
 Get last error number. More...
 
const char * get_errmsg () const
 Get last error message. More...
 
virtual bool is_syscall_unsup () const
 Return true if last error indicates an unsupported system call. More...
 
bool set_err (int no, const char *msg,...) __attribute_format_printf(3
 Set last error number and message. More...
 
bool bool set_err (const error_info &err)
 Set last error info struct. More...
 
void clear_err ()
 Clear last error info. More...
 
bool set_err (int no)
 Set last error number and default message. More...
 
- Public Member Functions inherited from tunnelled_device_base
virtual ~tunnelled_device_base () throw ()
 
virtual bool is_open () const
 Return true if device is open. More...
 
virtual bool open ()
 Open device, return false on error. More...
 
virtual bool close ()
 Close device, return false on error. More...
 
virtual bool owns (const smart_device *dev) const
 Return true if other device is owned by this device. More...
 

Private Attributes

int m_passthrulen
 
bool m_enable_auto
 

Additional Inherited Members

- Public Types inherited from tunnelled_device< ata_device, scsi_device >
typedef scsi_device tunnel_device_type
 
- 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)
 
- 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. More...
 
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). More...
 
void hide_ata (bool hide=true)
 Hide/unhide ATA interface. More...
 
 ata_device ()
 Default constructor, registers device as ATA. More...
 
- 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. More...
 
 smart_device (do_not_use_in_implementation_classes)
 Dummy constructor for abstract classes. More...
 
device_infoset_info ()
 R/W access to device info struct. More...
 
smart_interfacesmi ()
 Get interface which produced this object. More...
 
const smart_interfacesmi () const
 Get interface which produced this object (const). More...
 
- 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. More...
 
 scsi_device ()
 Default constructor, registers device as SCSI. More...
 

Detailed Description

SAT support.

Implements ATA by tunnelling through SCSI.

Definition at line 107 of file scsiata.cpp.

Constructor & Destructor Documentation

sat::sat_device::sat_device ( smart_interface intf,
scsi_device scsidev,
const char *  req_type,
int  passthrulen = 0,
bool  enable_auto = false 
)

Definition at line 132 of file scsiata.cpp.

sat::sat_device::~sat_device ( )
throw (
)
virtual

Definition at line 151 of file scsiata.cpp.

Member Function Documentation

bool sat::sat_device::ata_pass_through ( const ata_cmd_in in,
ata_cmd_out out 
)
virtual

ATA pass through.

Return false on error. Must be implemented in derived class.

Implements ata_device.

Definition at line 248 of file scsiata.cpp.

smart_device * sat::sat_device::autodetect_open ( )
virtual

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 499 of file scsiata.cpp.

bool sat::sat_device::scsi_pass_through ( scsi_cmnd_io iop)
virtual

SCSI pass through.

Returns false on error.

Implements scsi_device.

Definition at line 489 of file scsiata.cpp.

Member Data Documentation

bool sat::sat_device::m_enable_auto
private

Definition at line 128 of file scsiata.cpp.

int sat::sat_device::m_passthrulen
private

Definition at line 127 of file scsiata.cpp.


The documentation for this class was generated from the following file: