smartmontools SVN Rev 5612
Utility to control and monitor storage systems with "S.M.A.R.T."
Public Member Functions | Protected Types | Protected Member Functions | List of all members
ata_device Class Referenceabstract

ATA device access. More...

#include <dev_interface.h>

Collaboration diagram for ata_device:
Collaboration graph
[legend]

Public Member Functions

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_deviceto_ata ()
 Downcast to ATA device.
 
const ata_deviceto_ata () const
 Downcast to ATA device (const).
 
scsi_deviceto_scsi ()
 Downcast to SCSI device.
 
const scsi_deviceto_scsi () const
 Downcast to SCSI device (const).
 
nvme_deviceto_nvme ()
 Downcast to NVMe device.
 
const nvme_deviceto_nvme () const
 Downcast to NVMe device (const).
 
const device_infoget_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_infoget_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_deviceautodetect_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.
 

Protected Types

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

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_infoset_info ()
 R/W access to device info struct.
 
smart_interfacesmi ()
 Get interface which produced this object.
 
const smart_interfacesmi () const
 Get interface which produced this object (const).
 

Additional Inherited Members

- Static Public Member Functions inherited from smart_device
static int get_num_objects ()
 Get current number of allocated 'smart_device' objects.
 

Detailed Description

ATA device access.

Definition at line 513 of file dev_interface.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protected

Flags for ata_cmd_is_supported().

Enumerator
supports_data_out 
supports_smart_status 
supports_output_regs 
supports_multi_sector 
supports_48bit_hi_null 
supports_48bit 

Definition at line 533 of file dev_interface.h.

Constructor & Destructor Documentation

◆ ata_device()

ata_device::ata_device ( )
inlineprotected

Default constructor, registers device as ATA.

Definition at line 567 of file dev_interface.h.

Member Function Documentation

◆ ata_cmd_is_ok()

bool ata_device::ata_cmd_is_ok ( const ata_cmd_in in,
bool  data_out_support = false,
bool  multi_sector_support = false,
bool  ata_48bit_support = false 
)
inlineprotected

Check command input parameters (old version).

Definition at line 550 of file dev_interface.h.

◆ ata_cmd_is_supported()

bool ata_device::ata_cmd_is_supported ( const ata_cmd_in in,
unsigned  flags,
const char *  type = 0 
)
protected

Check command input parameters.

Return false if required features are not implemented. Calls set_err(...) accordingly.

Definition at line 141 of file dev_interface.cpp.

◆ ata_identify_is_cached()

bool ata_device::ata_identify_is_cached ( ) const
virtual

Return true if OS caches ATA identify sector.

Default implementation returns false.

Reimplemented in anonymous_namespace{atacmds.cpp}::parsed_ata_device, and os_win32::win_ata_device.

Definition at line 190 of file dev_interface.cpp.

◆ ata_pass_through() [1/2]

bool ata_device::ata_pass_through ( const ata_cmd_in in)

ATA pass through without output registers.

Return false on error. Calls ata_pass_through(in, dummy), cannot be reimplemented.

Definition at line 135 of file dev_interface.cpp.

◆ ata_pass_through() [2/2]

virtual bool ata_device::ata_pass_through ( const ata_cmd_in in,
ata_cmd_out out 
)
pure virtual

◆ hide_ata()

void ata_device::hide_ata ( bool  hide = true)
inlineprotected

Hide/unhide ATA interface.

Definition at line 563 of file dev_interface.h.


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