⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scb.hpp

📁 使用ASPI包装成的一些通用类
💻 HPP
字号:
////////////////////////////////////////////////////////////
//
// Module SCB.HPP
//
// ASPI class library
//
// Project: A Programmer's Guide to SCSI
//
// Copyright (C) 1997, Brian Sawert
// Portions copyright (C) 1995, Larry Martin
// All rights reserved
//
////////////////////////////////////////////////////////////


#ifndef SCB_HPP_INCLUDED
#define SCB_HPP_INCLUDED


#include "aspi.h"


typedef enum ScbError
      {
      Err_None                = 0,
      Err_CheckCondition            = 1,
      Err_Aborted                = 2,
      Err_InvalidCommand            = 3,
      Err_InvalidHostAdapter        = 4,
      Err_NoDevice               = 5,
      Err_InvalidSrb             = 6,
      Err_FailedInit             = 7,
      Err_Busy                = 8,
      Err_BufferTooBig           = 9,
      Err_SelectionTimeout       = 10,
      Err_DataOverrun               = 11,
      Err_UnexpectedBusFree         = 12,
      Err_TargetPhase               = 13,
      Err_Timeout                = 14,
      Err_CommandTimeout            = 15,
      Err_MessageReject          = 16,
      Err_BusReset               = 17,
      Err_ParityError               = 18,
      Err_RequestSenseFailed        = 19,
      Err_TargetBusy             = 20,
      Err_TargetReservationConflict = 21,
      Err_TargetQueueFull           = 22,
      Err_OutOfMemory               = 23,
      Err_AspiDriver             = 24,
      Err_Unknown                = 25,
      Err_NoEvent                = 26
      } ScbError;

class ScsiCmdBlock
   {

   public:

   ScsiRequestBlock srb;
   ScbError LastError;

   ScsiCmdBlock();
   ~ScsiCmdBlock();

   void Init( unsigned cmd, unsigned adapter=0, unsigned target=0, unsigned lun=0 );

   // The following routines assume an SC_EXEC_SCSI_CMD type command
   void SetCdb(void *cdb, unsigned nbytes);
   void GetSense(void *sense, unsigned maxbytes);
   void SetDataBuffer(void *bufp, unsigned buflen);
   ScbError Execute(long timeout = -1L);

   };


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -