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

📄 rbc.lst

📁 D12 USB源代码 硬盘
💻 LST
📖 第 1 页 / 共 4 页
字号:

 862   3                              TPBulksup_ErrorHandler(CASE13,BOTXfer_wResidue);
 863   3                              RBC_BuildSenseData(SCSI_SENSE_ILLEGAL_REQUEST,SCSI_ADSENSE_INVALID_PARAMETER,0);
 864   3      
 865   3                              //retStatus = FALSE;
 866   3                              TPBulk_CSWHandler();// Goto USBFSM4BOT_CSWPROC;
 867   3                              return retStatus;
 868   3                      }
 869   2                      else if(CBW_wXferLen == BOTXfer_wResidue)
 870   2                      {
 871   3                              TPBulksup_ErrorHandler(CASE12,BOTXfer_wResidue);
 872   3                              RBC_BuildSenseData(SCSI_SENSE_NO_SENSE,0,0);
 873   3                              retStatus = TRUE;
 874   3                      }
 875   2                      else
 876   2                      {
 877   3                              TPBulksup_ErrorHandler(CASE11,BOTXfer_wResidue);
 878   3                              RBC_BuildSenseData(SCSI_SENSE_NO_SENSE,0,0);
 879   3                              retStatus = TRUE;
 880   3                      }
 881   2      
 882   2                      BOTFSMstate = USBFSM4BOT_DATAOUT;
 883   2              }
 884   1              else
 885   1              {
 886   2                      BOTXfer_wResidue = CBW_wXferLen;
 887   2                      TPBulksup_ErrorHandler(CASECMDFAIL,BOTXfer_wResidue);
 888   2                      RBC_BuildSenseData(SCSI_SENSE_ILLEGAL_REQUEST,SCSI_ADSENSE_INVALID_CDB,0);
 889   2      
 890   2                      //retStatus = FALSE;
 891   2                      TPBulk_CSWHandler();// Goto USBFSM4BOT_CSWPROC;
 892   2              }
 893   1      
 894   1              return retStatus;
 895   1      
 896   1      #undef cdbModeSelectSPC
 897   1      }
 898          
 899          BOOLEAN SPC_ModeSense(void)
 900          {
 901   1      #define cdbModeSenseSPC RBC_CDB.SpcCdb_ModeSense
 902   1              BOOLEAN retStatus = FALSE;
 903   1      
 904   1              if(cdbModeSenseSPC.PageCode == MODE_PAGE_RBC_DEVICE_PARAMETERS )
 905   1              {
 906   2                      switch(cdbModeSenseSPC.PageControl)
 907   2                      {
 908   3                      case PAGECTRL_CHANGEABLE:
 909   3      
 910   3                              BOTXfer_pData =(PINT8) &ParaHeadMask;
 911   3                              BOTXfer_wResidue = sizeof(PARAMETER_LIST_LENGTH);
 912   3                              break;
 913   3      
 914   3                      case PAGECTRL_DEFAULT:
 915   3                      case PAGECTRL_CURRENT:
 916   3      
 917   3                              BOTXfer_pData =(PINT8) &DefaultParaHead;
 918   3                              BOTXfer_wResidue = sizeof(PARAMETER_LIST_LENGTH);
 919   3                              break;
 920   3      
 921   3                      case PAGECTRL_SAVED:
 922   3                      default:
 923   3                              //retStatus = FALSE;
C51 COMPILER V7.06   RBC                                                                   02/17/2004 14:42:23 PAGE 16  

 924   3                              TPBulksup_ErrorHandler(CASECMDFAIL,BOTXfer_wResidue);
 925   3                              RBC_BuildSenseData(SCSI_SENSE_ILLEGAL_REQUEST,SCSI_ADSENSE_SAVE_ERROR,0);
 926   3                              TPBulk_CSWHandler();// Goto USBFSM4BOT_CSWPROC;
 927   3                              break;
 928   3                      }
 929   2      
 930   2                      if(CBW_wXferLen < BOTXfer_wResidue)
 931   2                      {
 932   3                              BOTXfer_wResidue = CBW_wXferLen;
 933   3                              TPBulksup_ErrorHandler(CASE6,BOTXfer_wResidue);
 934   3                              RBC_BuildSenseData(SCSI_SENSE_NO_SENSE,0,0);
 935   3                      }
 936   2                      else if(CBW_wXferLen == BOTXfer_wResidue)
 937   2                      {
 938   3                              TPBulksup_ErrorHandler(CASE6,BOTXfer_wResidue);
 939   3                              RBC_BuildSenseData(SCSI_SENSE_NO_SENSE,0,0);
 940   3                      }
 941   2                      else
 942   2                      {
 943   3                              TPBulksup_ErrorHandler(CASE5,BOTXfer_wResidue);
 944   3                              RBC_BuildSenseData(SCSI_SENSE_NO_SENSE,0,0);
 945   3                      }
 946   2      
 947   2                      retStatus = TRUE;
 948   2                      BOTFSMstate = USBFSM4BOT_DATAIN;// Goto USBFSM4BOT_DATAIN
 949   2              }
 950   1              else
 951   1              {
 952   2                      //retStatus = FALSE;
 953   2                      TPBulksup_ErrorHandler(CASECMDFAIL,BOTXfer_wResidue);
 954   2                      RBC_BuildSenseData(SCSI_SENSE_ILLEGAL_REQUEST,SCSI_ADSENSE_INVALID_CDB,0);
 955   2                      TPBulk_CSWHandler();// Goto USBFSM4BOT_CSWPROC;
 956   2              }
 957   1      
 958   1              return retStatus;
 959   1      #undef cdbModeSenseSPC
 960   1      }
 961          
 962          BOOLEAN SPC_LockMedia(void)
 963          {
 964   1      #define cdbLockSPC RBC_CDB.SpcCdb_Remove
 965   1      
 966   1      
 967   1              RBC_PropertyData.bits.MediumRemovFlag = cdbLockSPC.Prevent;
 968   1      
 969   1              if (RBC_PropertyData.bits.MediumRemovFlag == 01)
 970   1                      IDE_CS = 0;
 971   1                      else
 972   1                      IDE_CS = 1;
 973   1              TPBulksup_ErrorHandler(CASE1,0);
 974   1              RBC_BuildSenseData(SCSI_SENSE_NO_SENSE,0,0);
 975   1              TPBulk_CSWHandler();// Goto USBFSM4BOT_CSWPROC;
 976   1              return TRUE;
 977   1      
 978   1      #undef cdbLockSPC
 979   1      }
 980          
 981          BOOLEAN SPC_TestUnit(void)
 982          {
 983   1      #define cdbTestUnit RBC_CDB.SpcCdb_TestUnit
 984   1      
 985   1      
C51 COMPILER V7.06   RBC                                                                   02/17/2004 14:42:23 PAGE 17  

 986   1              if( ATABF_IsAttached )
 987   1              {
 988   2                      TPBulksup_ErrorHandler(CASE1,0);
 989   2                      RBC_BuildSenseData(SCSI_SENSE_NO_SENSE,0,0);
 990   2              }
 991   1              else
 992   1              {
 993   2                      TPBulksup_ErrorHandler(CASECMDFAIL,0);
 994   2                      RBC_BuildSenseData(SCSI_SENSE_NOT_READY,SCSI_ADSENSE_NO_MEDIA_IN_DEVICE,0);
 995   2              }
 996   1      
 997   1              TPBulk_CSWHandler();// Goto USBFSM4BOT_CSWPROC;
 998   1              return TRUE;
 999   1      
1000   1      #undef cdbTestUnit
1001   1      }
1002          
1003          BOOLEAN SPC_RequestSense(void)
1004          {
1005   1      #define cdbRequestSenseSPC RBC_CDB.SpcCdb_RequestSense
1006   1      
1007   1              /*
1008   1              // Adjust TPBulkXfer Paras
1009   1              */
1010   1      
1011   1          Xfer_Space &= BOTXFERSPACE_MASK;
1012   1        //  BOTXfer_atRAM = 1;
1013   1            BOTXfer_atROM = 1;
1014   1      
1015   1              BOTXfer_pData =(PINT8)&Req_SenseData ;
1016   1              BOTXfer_wResidue = sizeof(Req_SenseData);
1017   1      
1018   1              TPBulksup_ErrorHandler(CASE6,BOTXfer_wResidue);
1019   1      
1020   1              BOTFSMstate = USBFSM4BOT_DATAIN;
1021   1      
1022   1              return TRUE;
1023   1      #undef cdbRequestSenseSPC
1024   1      }
1025          
1026          //Optional
1027          BOOLEAN RBC_Format(void)
1028          {
1029   1              TPBulksup_ErrorHandler(CASECMDFAIL,0);
1030   1              RBC_BuildSenseData(SCSI_SENSE_MEDIUM_ERROR,SCSI_ADSENSE_FORMAT_ERROR,0x01);
1031   1              TPBulk_CSWHandler();// Goto USBFSM4BOT_CSWPROC;
1032   1              return TRUE;
1033   1      
1034   1      }
1035          
1036          BOOLEAN SPC_Reserve6(void)
1037          {
1038   1              TPBulksup_ErrorHandler(CASECMDFAIL,0);
1039   1              RBC_BuildSenseData(SCSI_SENSE_ILLEGAL_REQUEST,SCSI_ADSENSE_ILLEGAL_COMMAND,0);
1040   1              TPBulk_CSWHandler();// Goto USBFSM4BOT_CSWPROC;
1041   1              return TRUE;
1042   1      }
1043          
1044          BOOLEAN SPC_Release6(void)
1045          {
1046   1              TPBulksup_ErrorHandler(CASECMDFAIL,0);
1047   1              RBC_BuildSenseData(SCSI_SENSE_ILLEGAL_REQUEST,SCSI_ADSENSE_ILLEGAL_COMMAND,0);
C51 COMPILER V7.06   RBC                                                                   02/17/2004 14:42:23 PAGE 18  

1048   1              TPBulk_CSWHandler();// Goto USBFSM4BOT_CSWPROC;
1049   1              return TRUE;
1050   1      }
1051          
1052          BOOLEAN SPC_PersisReserveIn(void)
1053          {
1054   1              TPBulksup_ErrorHandler(CASECMDFAIL,0);
1055   1              RBC_BuildSenseData(SCSI_SENSE_ILLEGAL_REQUEST,SCSI_ADSENSE_ILLEGAL_COMMAND,0);
1056   1              TPBulk_CSWHandler();// Goto USBFSM4BOT_CSWPROC;
1057   1              return TRUE;
1058   1      
1059   1      }
1060          
1061          BOOLEAN SPC_PersisReserveOut(void)
1062          {
1063   1      
1064   1              //Just Retrieve and discard data from USB FIFO
1065   1      
1066   1          Xfer_Space &= BOTXFERSPACE_MASK;
1067   1          BOTXfer_atROM = 1;
1068   1      
1069   1          BOTXfer_pData = (PINT8)0;
1070   1              BOTXfer_wResidue = CBW_wXferLen;
1071   1      
1072   1              TPBulksup_ErrorHandler(CASECMDFAIL,BOTXfer_wResidue);
1073   1              RBC_BuildSenseData(SCSI_SENSE_ILLEGAL_REQUEST,SCSI_ADSENSE_ILLEGAL_COMMAND,0);
1074   1      
1075   1              BOTFSMstate = USBFSM4BOT_DATAOUT;
1076   1      
1077   1              return TRUE;
1078   1      }
1079          
1080          BOOLEAN SPC_WriteBuff(void)
1081          {
1082   1      #define cdbWriteBuff RBC_CDB.SpcCdb_WriteBuffer
1083   1      
1084   1              //Just Retrieve and discard data from USB FIFO
1085   1      
1086   1          Xfer_Space &= BOTXFERSPACE_MASK;
1087   1          BOTXfer_atROM = 1;
1088   1      
1089   1          BOTXfer_pData = (PINT8)0;
1090   1              BOTXfer_wResidue = CBW_wXferLen;
1091   1      
1092   1              TPBulksup_ErrorHandler(CASECMDFAIL,BOTXfer_wResidue);
1093   1              RBC_BuildSenseData(SCSI_SENSE_ILLEGAL_REQUEST,SCSI_ADSENSE_CMDSEQ_ERROR,0);
1094   1      
1095   1              BOTFSMstate = USBFSM4BOT_DATAOUT;
1096   1      
1097   1              return TRUE;
1098   1      #undef cdbWriteBuff
1099   1      }
1100          
1101          
1102          
1103          void RBC_BuildSenseData(INT8 SenseKey, INT8 ASC, INT8 ASCQ)
1104          {
1105   1      
1106   1      /*
1107   1              RBC_SenseData.ResponseCode = SCSI_RESPONSECODE_CURRENT_ERROR;
1108   1              RBC_SenseData.Valid = 0;
1109   1              //RBC_SenseData.SegmentNum = 0;
C51 COMPILER V7.06   RBC                                                                   02/17/2004 14:42:23 PAGE 19  

1110   1              RBC_SenseData.SenseKey =  SenseKey;
1111   1              //RBC_SenseData.Reserved0 = 0;
1112   1              //RBC_SenseData.WrongLenIndicator = 0;
1113   1              //RBC_SenseData.EndofMedium = 0;
1114   1              //RBC_SenseData.FileMark = 0;
1115   1              //RBC_SenseData.Info_0 = 0;
1116   1              //RBC_SenseData.Info_1 = 0;
1117   1              //RBC_SenseData.Info_2 = 0;
1118   1              //RBC_SenseData.Info_3 = 0;
1119   1              RBC_SenseData.AdditionalSenseLen = 0xa;
1120   1              //RBC_SenseData.CommandSpecInfo_0 = 0;
1121   1              //RBC_SenseData.CommandSpecInfo_1 = 0;
1122   1              //RBC_SenseData.CommandSpecInfo_2 = 0;
1123   1              //RBC_SenseData.CommandSpecInfo_3 = 0;
1124   1              RBC_SenseData.ASC = ASC;
1125   1              RBC_SenseData.ASCQ = ASCQ;
1126   1              //RBC_SenseData.FieldReplacableUnitCode = 0;
1127   1              //RBC_SenseData.SenseKeySpec_0 = 0;
1128   1              //RBC_SenseData.SenseKeySpecValid = 0;
1129   1              //RBC_SenseData.SenseKeySpec_1 = 0;
1130   1              //RBC_SenseData.SenseKeySpec_2 = 0;
1131   1      */
1132   1      }
*** WARNING C280 IN LINE 1103 OF RBC.C: 'SenseKey': unreferenced local variable
*** WARNING C280 IN LINE 1103 OF RBC.C: 'ASC': unreferenced local variable
*** WARNING C280 IN LINE 1103 OF RBC.C: 'ASCQ': unreferenced local variable


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1427    ----
   CONSTANT SIZE    =    216    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1       3
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       4
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  3 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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