smartmontools SVN Rev 5388
Utility to control and monitor storage systems with "S.M.A.R.T."
Public Member Functions | Private Member Functions | Private Attributes | List of all members
jmb39x::jmb39x_device Class Reference
Collaboration diagram for jmb39x::jmb39x_device:
Collaboration graph
[legend]

Public Member Functions

 jmb39x_device (smart_interface *intf, smart_device *smartdev, const char *req_type, uint8_t version, uint8_t port, uint8_t lba, bool force)
 
virtual ~jmb39x_device ()
 
virtual bool open () override
 Open device, return false on error. More...
 
virtual bool close () override
 Close device, return false on error. More...
 
virtual bool ata_pass_through (const ata_cmd_in &in, ata_cmd_out &out) override
 ATA pass through. More...
 
- Public Member Functions inherited from tunnelled_device< ata_device, smart_device >
virtual void release (const smart_device *dev) override
 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
virtual bool ata_pass_through (const ata_cmd_in &in, ata_cmd_out &out)=0
 ATA pass through. More...
 
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 ()
 
bool is_ata () const
 Return true if ATA device. More...
 
bool is_scsi () const
 Return true if SCSI device. More...
 
bool is_nvme () const
 Return true if NVMe 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...
 
nvme_deviceto_nvme ()
 Downcast to NVMe device. More...
 
const nvme_deviceto_nvme () const
 Downcast to NVMe 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...
 
virtual bool is_open () const =0
 Return true if device is open. More...
 
virtual bool open ()=0
 Open device, return false on error. More...
 
virtual bool close ()=0
 Close device, return false on error. More...
 
virtual smart_deviceautodetect_open ()
 Open device with autodetection support. More...
 
virtual bool is_powered_down ()
 Early test if device is powered up or down. More...
 
virtual bool owns (const smart_device *dev) const
 Return true if other device is owned by this device. More...
 
virtual void release (const smart_device *dev)
 Release ownership of other device. More...
 
- Public Member Functions inherited from tunnelled_device_base
virtual ~tunnelled_device_base ()
 
virtual bool is_open () const override
 Return true if device is open. More...
 
virtual bool open () override
 Open device, return false on error. More...
 
virtual bool close () override
 Close device, return false on error. More...
 
virtual bool owns (const smart_device *dev) const override
 Return true if other device is owned by this device. More...
 
virtual void release (const smart_device *dev) override
 Release ownership of other device. More...
 

Private Member Functions

bool raw_read (uint8_t(&data)[512])
 
bool raw_write (const uint8_t(&data)[512])
 
bool run_jmb_command (const uint8_t *cmd, unsigned cmdsize, uint8_t(&response)[512])
 
void report_orig_data_lost () const
 
bool restore_orig_data ()
 

Private Attributes

uint8_t m_version
 
uint8_t m_port
 
uint8_t m_lba
 
bool m_force
 
bool m_blocked
 
bool m_orig_write_back
 
uint32_t m_cmd_id
 
uint8_t m_orig_data [512]
 

Additional Inherited Members

- Public Types inherited from tunnelled_device< ata_device, smart_device >
typedef smart_device tunnel_device_type
 
- Static Public Member Functions inherited from smart_device
static int get_num_objects ()
 Get current number of allocated 'smart_device' objects. More...
 
- 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, smart_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. 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)
 

Detailed Description

Definition at line 312 of file dev_jmb39x_raid.cpp.

Constructor & Destructor Documentation

◆ jmb39x_device()

jmb39x::jmb39x_device::jmb39x_device ( smart_interface intf,
smart_device smartdev,
const char *  req_type,
uint8_t  version,
uint8_t  port,
uint8_t  lba,
bool  force 
)

Definition at line 348 of file dev_jmb39x_raid.cpp.

◆ ~jmb39x_device()

jmb39x::jmb39x_device::~jmb39x_device ( )
virtual

Definition at line 359 of file dev_jmb39x_raid.cpp.

Member Function Documentation

◆ ata_pass_through()

bool jmb39x::jmb39x_device::ata_pass_through ( const ata_cmd_in in,
ata_cmd_out out 
)
overridevirtual

ATA pass through.

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

Implements ata_device.

Definition at line 621 of file dev_jmb39x_raid.cpp.

◆ close()

bool jmb39x::jmb39x_device::close ( )
overridevirtual

Close device, return false on error.

Reimplemented from tunnelled_device_base.

Definition at line 584 of file dev_jmb39x_raid.cpp.

◆ open()

bool jmb39x::jmb39x_device::open ( )
overridevirtual

Open device, return false on error.

Reimplemented from tunnelled_device_base.

Definition at line 477 of file dev_jmb39x_raid.cpp.

◆ raw_read()

bool jmb39x::jmb39x_device::raw_read ( uint8_t(&)  data[512])
private

Definition at line 368 of file dev_jmb39x_raid.cpp.

◆ raw_write()

bool jmb39x::jmb39x_device::raw_write ( const uint8_t(&)  data[512])
private

Definition at line 385 of file dev_jmb39x_raid.cpp.

◆ report_orig_data_lost()

void jmb39x::jmb39x_device::report_orig_data_lost ( ) const
private

Definition at line 456 of file dev_jmb39x_raid.cpp.

◆ restore_orig_data()

bool jmb39x::jmb39x_device::restore_orig_data ( )
private

Definition at line 464 of file dev_jmb39x_raid.cpp.

◆ run_jmb_command()

bool jmb39x::jmb39x_device::run_jmb_command ( const uint8_t *  cmd,
unsigned  cmdsize,
uint8_t(&)  response[512] 
)
private

Definition at line 401 of file dev_jmb39x_raid.cpp.

Member Data Documentation

◆ m_blocked

bool jmb39x::jmb39x_device::m_blocked
private

Definition at line 336 of file dev_jmb39x_raid.cpp.

◆ m_cmd_id

uint32_t jmb39x::jmb39x_device::m_cmd_id
private

Definition at line 338 of file dev_jmb39x_raid.cpp.

◆ m_force

bool jmb39x::jmb39x_device::m_force
private

Definition at line 334 of file dev_jmb39x_raid.cpp.

◆ m_lba

uint8_t jmb39x::jmb39x_device::m_lba
private

Definition at line 333 of file dev_jmb39x_raid.cpp.

◆ m_orig_data

uint8_t jmb39x::jmb39x_device::m_orig_data[512]
private

Definition at line 339 of file dev_jmb39x_raid.cpp.

◆ m_orig_write_back

bool jmb39x::jmb39x_device::m_orig_write_back
private

Definition at line 337 of file dev_jmb39x_raid.cpp.

◆ m_port

uint8_t jmb39x::jmb39x_device::m_port
private

Definition at line 332 of file dev_jmb39x_raid.cpp.

◆ m_version

uint8_t jmb39x::jmb39x_device::m_version
private

Definition at line 331 of file dev_jmb39x_raid.cpp.


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