smartmontools SVN Rev 5450
Utility to control and monitor storage systems with "S.M.A.R.T."
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Static Private Member Functions | Private Attributes | List of all members
os_win32::csmi_device Class Referenceabstract
Collaboration diagram for os_win32::csmi_device:
Collaboration graph

Public Types

enum  { max_number_of_ports = 32 }

Public Member Functions

unsigned get_ports_used ()
 Get bitmask of used ports. 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...

Protected Types

typedef signed char port_2_index_map[max_number_of_ports]
- Protected Types inherited from smart_device
enum  do_not_use_in_implementation_classes { never_called }
 Dummy enum for dummy constructor. More...

Protected Member Functions

 csmi_device ()
int get_phy_info (CSMI_SAS_PHY_INFO &phy_info, port_2_index_map &p2i)
 Get phy info and port mapping, return #ports or -1 on error. More...
bool select_port (int port)
 Select physical drive. More...
const CSMI_SAS_PHY_ENTITYget_phy_ent () const
 Get info for selected physical drive. More...
virtual bool csmi_ioctl (unsigned code, IOCTL_HEADER *csmi_buffer, unsigned csmi_bufsiz)=0
 Call platform-specific CSMI ioctl. 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...

Static Private Member Functions

static bool guess_amd_drives (CSMI_SAS_PHY_INFO &phy_info, unsigned max_phy_drives)

Private Attributes

 CSMI info for this phy. More...

Additional Inherited Members

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

Detailed Description

Definition at line 1961 of file os_win32.cpp.

Member Typedef Documentation

◆ port_2_index_map

typedef signed char os_win32::csmi_device::port_2_index_map[max_number_of_ports]

Definition at line 1975 of file os_win32.cpp.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Definition at line 1965 of file os_win32.cpp.

Constructor & Destructor Documentation

◆ csmi_device()

os_win32::csmi_device::csmi_device ( )

Definition at line 1971 of file os_win32.cpp.

Member Function Documentation

◆ csmi_ioctl()

virtual bool os_win32::csmi_device::csmi_ioctl ( unsigned  code,
IOCTL_HEADER *  csmi_buffer,
unsigned  csmi_bufsiz 
protectedpure virtual

Call platform-specific CSMI ioctl.

Implemented in os_win32::win_csmi_device.

◆ get_phy_ent()

const CSMI_SAS_PHY_ENTITY & os_win32::csmi_device::get_phy_ent ( ) const

Get info for selected physical drive.

Definition at line 1984 of file os_win32.cpp.

◆ get_phy_info()

int os_win32::csmi_device::get_phy_info ( CSMI_SAS_PHY_INFO phy_info,
port_2_index_map p2i 

Get phy info and port mapping, return #ports or -1 on error.

Definition at line 2042 of file os_win32.cpp.

◆ get_ports_used()

unsigned os_win32::csmi_device::get_ports_used ( )

Get bitmask of used ports.

Definition at line 2184 of file os_win32.cpp.

◆ guess_amd_drives()

bool os_win32::csmi_device::guess_amd_drives ( CSMI_SAS_PHY_INFO phy_info,
unsigned  max_phy_drives 

Definition at line 2000 of file os_win32.cpp.

◆ select_port()

bool os_win32::csmi_device::select_port ( int  port)

Select physical drive.

Definition at line 2214 of file os_win32.cpp.

Member Data Documentation

◆ m_phy_ent

CSMI_SAS_PHY_ENTITY os_win32::csmi_device::m_phy_ent

CSMI info for this phy.

Definition at line 1992 of file os_win32.cpp.

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