cdb_Inquiry Class Reference
[SCSI Library]

#include <cdb.h>

Inheritance diagram for cdb_Inquiry:

Inheritance graph
[legend]
Collaboration diagram for cdb_Inquiry:

Collaboration graph
[legend]

List of all members.


Detailed Description

CDB class, specialized for INQUIRY.

Definition at line 107 of file cdb.h.


Public Member Functions

 cdb_Inquiry (data_Inquiry::inq_Type_t a_what=data_Inquiry::inq_STD)
virtual ~cdb_Inquiry ()
virtual const UInt8_tGetCmdPointer () const
virtual UInt32_t GetCmdSize () const
virtual Direction_e GetTransferDirection () const
virtual UInt8_tGetBufferPointer () const
virtual UInt32_t GetBufferSize () const
const data_InquiryGetInquiry () const

Private Attributes

 log_CLASSID_m
 Checks obvious parameters of a CDB.
cdb_Inquiry_t m_inquiryCmd
data_Inquiry m_inquiry
cdb_Buf_t m_transferBuffer [1]

Constructor & Destructor Documentation

cdb_Inquiry::cdb_Inquiry ( data_Inquiry::inq_Type_t  a_what = data_Inquiry::inq_STD  ) 

Definition at line 33 of file cdb_inquiry.cpp.

References cdb_Inquiry_t::allocLen, cdb_Inquiry_t::evpd, data_Inquiry::GetInquiryData(), ie_INVALID_ARG, data_Inquiry::inq_DEVID, data_Inquiry::inq_PAGES, data_Inquiry::inq_SERNO, data_Inquiry::inq_STD, log_FUNC_m, log_MARKLINE_m, m_inquiry, m_inquiryCmd, op_INQUIRY, cdb_Inquiry_t::opcode, cdb_Inquiry_t::pageCode, data_Inquiry::pg_DEVID, data_Inquiry::pg_PAGES, and data_Inquiry::pg_SERNO.

00034     : m_inquiry(a_what) {
00035 
00036     log_FUNC_m(cdb_Inquiry);
00037 
00038     memset(&m_inquiryCmd, 0, sizeof(m_inquiryCmd));
00039     m_inquiryCmd.opcode = op_INQUIRY;
00040     switch (a_what) {
00041         case data_Inquiry::inq_STD:
00042             // Zeroes are already set.
00043             break;
00044         case data_Inquiry::inq_PAGES:
00045             m_inquiryCmd.evpd = 1;
00046             m_inquiryCmd.pageCode = (UInt8_t)data_Inquiry::pg_PAGES;
00047             break;
00048         case data_Inquiry::inq_SERNO:
00049             m_inquiryCmd.evpd = 1;
00050             m_inquiryCmd.pageCode = (UInt8_t)data_Inquiry::pg_SERNO;
00051             break;
00052         case data_Inquiry::inq_DEVID:
00053             m_inquiryCmd.evpd = 1;
00054             m_inquiryCmd.pageCode = (UInt8_t)data_Inquiry::pg_DEVID;
00055             break;
00056         default:
00057             log_MARKLINE_m;
00058             throw ivd_InternalError(ie_INVALID_ARG, "Inquiry page.");
00059             break;
00060     }
00061     m_inquiryCmd.allocLen = sizeof(m_inquiry.GetInquiryData());
00062 }

Here is the call graph for this function:

cdb_Inquiry::~cdb_Inquiry (  )  [virtual]

Definition at line 64 of file cdb_inquiry.cpp.

00064                           {
00065 }


Member Function Documentation

const UInt8_t * cdb_Inquiry::GetCmdPointer (  )  const [virtual]

Reimplemented from scsi_CDB.

Definition at line 67 of file cdb_inquiry.cpp.

References m_inquiryCmd.

00067                                                 {
00068     return reinterpret_cast<UInt8_t*>(
00069         const_cast<cdb_Inquiry_t*>(&m_inquiryCmd));
00070 }

UInt32_t cdb_Inquiry::GetCmdSize (  )  const [virtual]

Reimplemented from scsi_CDB.

Definition at line 72 of file cdb_inquiry.cpp.

References m_inquiryCmd.

00072                                        {
00073     return sizeof(m_inquiryCmd);
00074 }

Direction_e cdb_Inquiry::GetTransferDirection (  )  const [virtual]

Implements scsi_CDB.

Definition at line 76 of file cdb_inquiry.cpp.

References TRANSFER_IN.

00076                                                     {
00077     return TRANSFER_IN;
00078 }

UInt8_t * cdb_Inquiry::GetBufferPointer (  )  const [virtual]

Reimplemented from scsi_CDB.

Definition at line 80 of file cdb_inquiry.cpp.

References data_Inquiry::GetInquiryData(), and m_inquiry.

00080                                              {
00081     return reinterpret_cast<UInt8_t*>(
00082         const_cast<data_Inquiry_t*>(
00083             &(m_inquiry.GetInquiryData()) ) );
00084 }

Here is the call graph for this function:

UInt32_t cdb_Inquiry::GetBufferSize (  )  const [virtual]

Reimplemented from scsi_CDB.

Definition at line 86 of file cdb_inquiry.cpp.

References data_Inquiry::GetInquiryData(), and m_inquiry.

00086                                           {
00087     return sizeof(m_inquiry.GetInquiryData());
00088 }

Here is the call graph for this function:

const data_Inquiry& cdb_Inquiry::GetInquiry (  )  const [inline]

Definition at line 123 of file cdb.h.

Referenced by scsi_IO::InqSerialNumber(), and scsi_IO::InqStandard().

00123 { return m_inquiry; };

Here is the caller graph for this function:


Member Data Documentation

Checks obvious parameters of a CDB.

Reimplemented from scsi_CDB.

Definition at line 123 of file cdb.h.

Definition at line 133 of file cdb.h.

Referenced by cdb_Inquiry(), GetCmdPointer(), and GetCmdSize().

Definition at line 136 of file cdb.h.

Referenced by cdb_Inquiry(), GetBufferPointer(), and GetBufferSize().

Definition at line 139 of file cdb.h.


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

Generated on Mon Feb 27 19:02:18 2012 for OPENARCHIVE by  doxygen 1.5.6