cdb_ModeSelect Class Reference
[SCSI Library]

#include <cdb.h>

Inheritance diagram for cdb_ModeSelect:

Inheritance graph
[legend]
Collaboration diagram for cdb_ModeSelect:

Collaboration graph
[legend]

List of all members.


Detailed Description

SCSI Mode Select command.

Definition at line 443 of file cdb.h.


Public Member Functions

 cdb_ModeSelect (data_Mode &a_mode)
virtual ~cdb_ModeSelect ()
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_ModeGetData () const

Private Attributes

 log_CLASSID_m
cdb_ModeSelect_t m_modeSelectCmd
data_Modem_data

Constructor & Destructor Documentation

cdb_ModeSelect::cdb_ModeSelect ( data_Mode a_mode  ) 

Definition at line 34 of file cdb_modeselect.cpp.

References GetBufferSize(), m_modeSelectCmd, op_MODE_SELECT, cdb_ModeSelect_t::opcode, cdb_ModeSelect_t::paramLen, and cdb_ModeSelect_t::pf.

00035     : m_data(a_mode) {
00036 
00037     memset (&m_modeSelectCmd, 0, sizeof(m_modeSelectCmd));
00038     m_modeSelectCmd.opcode = op_MODE_SELECT;
00039     m_modeSelectCmd.pf = 1;
00040     m_modeSelectCmd.paramLen = static_cast<UInt8_t>(GetBufferSize());
00041 }

Here is the call graph for this function:

cdb_ModeSelect::~cdb_ModeSelect (  )  [virtual]

Definition at line 43 of file cdb_modeselect.cpp.

00043                                {
00044 }


Member Function Documentation

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

Reimplemented from scsi_CDB.

Definition at line 93 of file cdb_modeselect.cpp.

References m_modeSelectCmd.

00093                                                    {
00094     return reinterpret_cast<const UInt8_t*>(&m_modeSelectCmd);
00095 }

UInt32_t cdb_ModeSelect::GetCmdSize (  )  const [virtual]

Reimplemented from scsi_CDB.

Definition at line 97 of file cdb_modeselect.cpp.

References m_modeSelectCmd.

00097                                           {
00098     return sizeof(m_modeSelectCmd);
00099 }

Direction_e cdb_ModeSelect::GetTransferDirection (  )  const [virtual]

Implements scsi_CDB.

Definition at line 101 of file cdb_modeselect.cpp.

References TRANSFER_OUT.

00101                                                        {
00102     return TRANSFER_OUT;
00103 }

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

Reimplemented from scsi_CDB.

Definition at line 46 of file cdb_modeselect.cpp.

References data_Mode::GetModeStruct(), and m_data.

00046                                                 {
00047     return reinterpret_cast<UInt8_t*>(
00048         const_cast<data_Mode_t*>(&(m_data.GetModeStruct())) );
00049 }

Here is the call graph for this function:

UInt32_t cdb_ModeSelect::GetBufferSize (  )  const [virtual]

Reimplemented from scsi_CDB.

Definition at line 51 of file cdb_modeselect.cpp.

References data_ModePartPage_t::addPart, data_Mode_t::ait, data_ModePartitions_t::blkDesc, data_Mode_t::compress, data_Mode::GetModeStruct(), data_Mode::GetPage(), data_Mode_t::hdr, log_ERR_m, log_FUNC_m, m_data, data_Mode_t::part, data_ModePartitions_t::partPage, data_Mode::pg_AIT_APPENDPART, data_Mode::pg_AITCFG, data_Mode::pg_COMPRESSION, data_Mode::pg_PART, and size.

Referenced by cdb_ModeSelect().

00051                                              {
00052 
00053     const data_Mode_t &mode = m_data.GetModeStruct();
00054 
00055     switch (m_data.GetPage()) {
00056         case data_Mode::pg_PART:
00057         case data_Mode::pg_AIT_APPENDPART:
00058         {
00059             const data_ModePartitions_t &part = mode.part;
00060 
00061             UInt32_t size =
00062                 sizeof(mode.hdr) + sizeof(part.blkDesc) +
00063                 sizeof(part.partPage) +
00064                 sizeof(UInt16_t) * (part.partPage.addPart + 1);
00065             return size;
00066             break;
00067         }
00068         case data_Mode::pg_AITCFG:
00069         {
00070             return sizeof(mode.hdr) + sizeof(mode.ait);;
00071             break;
00072         }
00073         case data_Mode::pg_COMPRESSION:
00074         {
00075             return sizeof(mode.hdr) + sizeof(mode.compress);
00076             break;
00077         }
00078         default:
00079         {
00080             log_FUNC_m(GetBufferSize);
00081             log_ERR_m("Unknown page for MODE SELECT.");
00082             return 0;
00083             break;
00084         }
00085     };
00086     {
00087         log_FUNC_m(GetBufferSize);
00088         log_ERR_m("Unknown page for MODE SELECT.");
00089         return 0;
00090     }
00091 }

Here is the call graph for this function:

Here is the caller graph for this function:

const data_Mode & cdb_ModeSelect::GetData (  )  const

Definition at line 105 of file cdb_modeselect.cpp.

References m_data.

00105                                                {
00106     return m_data;
00107 }


Member Data Documentation

Reimplemented from scsi_CDB.

Definition at line 459 of file cdb.h.

Definition at line 461 of file cdb.h.

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

Definition at line 462 of file cdb.h.

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


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

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