bot.h
上传用户:sourcesun
上传日期:2013-09-23
资源大小:362k
文件大小:2k
源码类别:

DNA

开发平台:

Asm

  1. /*************************************************************************
  2.  *
  3.  *    Used with ICCARM and AARM.
  4.  *
  5.  *    (c) Copyright IAR Systems 2005
  6.  *
  7.  *    File name   : bot.h
  8.  *    Description : Define USB Mass storage device bulk-only transport module
  9.  *
  10.  *    History :
  11.  *    1. Data        : September 8, 2005
  12.  *       Author      : Stanimir Bonev
  13.  *       Description : Create
  14.  *
  15.  *    $Revision: 1.2.2.1 $
  16. **************************************************************************/
  17. #include <includes.h>
  18. #ifndef __BOT_H
  19. #define __BOT_H
  20. #define CbwSignature 0x43425355
  21. #define CswSignature 0x53425355
  22. typedef enum
  23. {
  24.   BotWaitCbw = 0, BotEpDataOut, BotEpDataIn, BotSendCsw, BotFatalError,
  25. } BotState_t;
  26. typedef enum
  27. {
  28.   UsbBotInterfaceGetMaxLun = 0xFE,
  29.   MassStorageClassReqReset ,
  30. } MassStorageClassRequest_t;
  31. typedef enum
  32. {
  33.   BotPass = 0, BotError, BotNotReady, BotNotAlignment
  34. } BotToUserStatus_t;
  35. typedef enum
  36. {
  37.   CswPassed = 0, CswFailed, CswPhaseError
  38. } CSWStatus_t;
  39. typedef enum
  40. {
  41.   BotDataFormHostToDev = 0,BotDataFormDevToHost,
  42. } BotDataDir_t;
  43. typedef union
  44. {
  45.   Int8U Data;
  46.   struct
  47.   {
  48.     Int8U     : 7;
  49.     Int8U Dir : 1;
  50.   };
  51. } CbwFlags_t;
  52. #pragma pack(1)
  53. typedef union
  54. {
  55.   Int8U Data[31];
  56.   struct
  57.   {
  58.     Int32U      dCBWSignature;
  59.     Int32U      dCBWTag;
  60.     Int32U      dCBWDataTransferLength;
  61.     CbwFlags_t  bmCBWFlags;
  62.     Int8U       bCBWLUN;
  63.     Int8U       bCBWCBLength;
  64.     Int8U       CBWCB[16];
  65.   };
  66. } Cbw_t, * pCbw_t;
  67. typedef union
  68. {
  69.   Int8U Data[13];
  70.   struct
  71.   {
  72.     Int32U dCSWSignature;
  73.     Int32U dCSWTag;
  74.     Int32U dCSWDataResidue;
  75.     Int8U  bCSWStatus;
  76.   };
  77. } Csw_t, * pCsw_t;
  78. typedef union
  79. {
  80.   Int8U Flags;
  81.   struct
  82.   {
  83.     Int8U PhaseError  : 1;
  84.     Int8U CmdFault    : 1;
  85.     Int8U BotStatus   : 1;
  86.     Int8U DataComplete: 1;
  87.     Int8U ShortPacket : 1;
  88.   };
  89. } BotStatus_t;
  90. #define bPhaseErrorMask_t       0x01
  91. #define bCmdFaultMask_t         0x02
  92. #define bBotStatusMask_t        0x04
  93. #define bBotDataCompleteMask_t  0x10
  94. #pragma pack()
  95. #endif //__BOT_H