亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? scsi_decoder.h

?? 基于at90usb1287的數據存儲器例子
?? H
字號:
/**
 * @file scsi_decoder.h,v
 *
 * Copyright (c) 2004 Atmel.
 *
 * Please read file license.txt for copyright notice.
 *
 * @brief This file contains declarations for the SCSI decoder module.
 *
 * @version 1.2 at90usb128-usbkey-demo-storage-df-1_0_4 $Id: scsi_decoder.h,v 1.2 2005/11/03 08:47:41 rletendu Exp $
 *
 * @todo
 * @bug
 */
#ifndef _SCSI_DECODER_H_
#define _SCSI_DECODER_H_

//_____ I N C L U D E S ____________________________________________________


//_____ M A C R O S ________________________________________________________

typedef struct
{
  U8      key;
  U8      asc;
  U8      ascq;
} s_scsi_sense;


//_____ D E C L A R A T I O N S ____________________________________________

Bool scsi_decode_command  (void);

/****************************************************************************/
/* Command for all SCSI device types                                        */
/****************************************************************************/

#define SBC_CMD_TEST_UNIT_READY                   (0x00)
#define SBC_CMD_REQUEST_SENSE                     (0x03)
#define SBC_CMD_FORMAT_UNIT                       (0x04)
#define SBC_CMD_READ_6                            (0x08)
#define SBC_CMD_INQUIRY                           (0x12)
#define SBC_CMD_MODE_SELECT_6                     (0x15)
#define SBC_CMD_MODE_SENSE_6                      (0x1A)
#define SBC_CMD_START_STOP_UNIT                   (0x1B)
#define SBC_CMD_RECEIVE_DIAGNOSTICS               (0x1C)
#define SBC_CMD_SEND_DIAGNOSTIC                   (0x1D)
#define SBC_CMD_PREVENT_ALLOW_MEDIUM_REMOVAL      (0x1E)
#define SBC_CMD_READ_LONG                         (0x23)
#define SBC_CMD_READ_CAPACITY                     (0x25)
#define SBC_CMD_READ_CD_ROM_CAPACITY              (0x25)
#define SBC_CMD_READ_10                           (0x28)
#define SBC_CMD_WRITE_10                          (0x2A)
#define SBC_CMD_VERIFY_10                         (0x2F)
#define SBC_CMD_SYNCHRONIZE_CACHE                 (0x35)
#define SBC_CMD_WRITE_BUFFER                      (0x3B)
#define SBC_CMD_CHANGE_DEFINITION                 (0x40)
#define SBC_CMD_READ_TOC                          (0x43)
#define SBC_CMD_MODE_SELECT_10                    (0x55)
#define SBC_CMD_RESERVE_10                        (0x56)
#define SBC_CMD_RELEASE_10                        (0x57)
#define SBC_CMD_MODE_SENSE_10                     (0x5A)

#define SBC_CONTROL_BYTE                          (0x00)
#define SBC_CMD_DIR_IN                            (0x80)
#define SBC_CMD_DIR_OUT                           (0x00)


/****************************************************************************/
/* Sense Key Code                                                           */
/****************************************************************************/
#define SBC_SENSE_KEY_NO_SENSE                        (0x00)
#define SBC_SENSE_KEY_RECOVERED_ERROR                 (0x01)
#define SBC_SENSE_KEY_NOT_READY                       (0x02)
#define SBC_SENSE_KEY_MEDIUM_ERROR                    (0x03)
#define SBC_SENSE_KEY_HARDWARE_ERROR                  (0x04)
#define SBC_SENSE_KEY_ILLEGAL_REQUEST                 (0x05)
#define SBC_SENSE_KEY_UNIT_ATTENTION                  (0x06)
#define SBC_SENSE_KEY_DATA_PROTECT                    (0x07)
#define SBC_SENSE_KEY_BLANK_CHECK                     (0x08)
#define SBC_SENSE_KEY_VENDOR_SPECIFIC                 (0x09)
#define SBC_SENSE_KEY_COPY_ABORTED                    (0x0A)
#define SBC_SENSE_KEY_ABORTED_COMMAND                 (0x0B)
#define SBC_SENSE_KEY_VOLUME_OVERFLOW                 (0x0D)
#define SBC_SENSE_KEY_MISCOMPARE                      (0x0E)

/****************************************************************************/
/* ASC code assignments                                                     */
/****************************************************************************/
#define SBC_ASC_NO_ADDITIONAL_SENSE_INFORMATION       (0x00)
#define SBC_ASC_LOGICAL_UNIT_NOT_READY                (0x04)
#define SBC_ASC_INVALID_FIELD_IN_CDB                  (0x24)
#define SBC_ASC_WRITE_PROTECTED                       (0x27)
#define SBC_ASC_FORMAT_ERROR                          (0x31)
#define SBC_ASC_INVALID_COMMAND_OPERATION_CODE        (0x20)
#define SBC_ASC_NOT_READY_TO_READY_CHANGE             (0x28)
#define SBC_ASC_MEDIUM_NOT_PRESENT                    (0x3A)

/****************************************************************************/
/* ASCQ code assignments                                                    */
/****************************************************************************/
#define SBC_ASCQ_FORMAT_COMMAND_FAILED                (0x01)
#define SBC_ASCQ_INITIALIZING_COMMAND_REQUIRED        (0x02)
#define SBC_ASCQ_OPERATION_IN_PROGRESS                (0x07)


/****************************************************************************/
/* REQUEST SENSE PARAMETERS                                                 */
/****************************************************************************/
#define SBC_RESPONSE_CODE_SENSE                       (0x70)
#define SBC_ADDITIONAL_SENSE_LENGTH                   (0x0A)
#define SBC_COMMAND_SPECIFIC_INFORMATION_3            (0x00)
#define SBC_COMMAND_SPECIFIC_INFORMATION_2            (0x00)
#define SBC_COMMAND_SPECIFIC_INFORMATION_1            (0x00)
#define SBC_COMMAND_SPECIFIC_INFORMATION_0            (0x00)
#define SBC_FIELD_REPLACEABLE_UNIT_CODE               (0x00)
#define SBC_SENSE_KEY_SPECIFIC_2                      (0x00)
#define SBC_SENSE_KEY_SPECIFIC_1                      (0x00)
#define SBC_SENSE_KEY_SPECIFIC_0                      (0x00)

/******* number of bytes of READ CAPACITY response *********/
#define SBC_READ_CAPACITY_LENGTH                      (0x08)


/****************************************************************************/
/*MODE SENSE and REQUEST SENSE DEFINITIONS                                  */
/****************************************************************************/

/*************** Direct access medium type ****************/
#define SBC_DEFAULT_MEDIUM_TYPE                       (0x00)
#define SBC_FLEXIBLE_DISK_SINGLE_SIDED_UNSPECIFIED    (0x01)
#define SBC_FLEXIBLE_DISK_DOUBLE_SIDED_UNSPECIFIED    (0x02)

#define SBC_MEDIUM_TYPE                               SBC_DEFAULT_MEDIUM_TYPE

#define SBC_DEV_SPEC_PARAM_WR_ENABLE                  (0x00)
#define SBC_DEV_SPEC_PARAM_WR_PROTECT                 (0x80)
#define SBC_BLOCK_DESCRIPTOR_LENGTH                   (0x00)

#define SBC_MSK_DBD                                   (0x08)
#define SBC_MSK_PAGE_CONTROL                          (0xC0)
#define SBC_MSK_PAGE_CODE                             (0x3F)


/************ General Page Code paramaters *****************/
#define SBC_PAGE_CODE_READ_WRITE_ERROR_RECOVERY       (0x01)
#define SBC_PAGE_CODE_FORMAT_DEVICE                   (0x03)
#define SBC_PAGE_CODE_FLEXIBLE_DISK                   (0x05)
#define SBC_PAGE_CODE_INFORMATIONAL_EXCEPTIONS        (0x1C)
#define SBC_PAGE_CODE_ALL                             (0x3F)


#define SBC_PAGE_LENGTH_INFORMATIONAL_EXCEPTIONS      (0x0A)
#define SBC_PAGE_LENGTH_READ_WRITE_ERROR_RECOVERY     (0x0A)
#define SBC_PAGE_LENGTH_FLEXIBLE_DISK                 (0x1E)
#define SBC_PAGE_LENGTH_FORMAT_DEVICE                 (0x16)



#define SBC_MODE_DATA_LENGTH_INFORMATIONAL_EXCEPTIONS   (SBC_PAGE_LENGTH_INFORMATIONAL_EXCEPTIONS + 2 + 3)
#define SBC_MODE_DATA_LENGTH_READ_WRITE_ERROR_RECOVERY  (SBC_PAGE_LENGTH_READ_WRITE_ERROR_RECOVERY + 2 + 3 )
#define SBC_MODE_DATA_LENGTH_FLEXIBLE_DISK              (SBC_PAGE_LENGTH_FLEXIBLE_DISK + 2 + 3 )
#define SBC_MODE_DATA_LENGTH_FORMAT_DEVICE              (SBC_PAGE_LENGTH_FORMAT_DEVICE + 2 + 3 )
/*SBC_PAGE_LENGTH_FLEXIBLE_DISK + 2  + \*/
#define SBC_MODE_DATA_LENGTH_CODE_ALL                 (SBC_PAGE_LENGTH_READ_WRITE_ERROR_RECOVERY + 2 + \
                                                       SBC_PAGE_LENGTH_INFORMATIONAL_EXCEPTIONS + 2 + \
                                                       SBC_BLOCK_DESCRIPTOR_LENGTH + \
                                                       + 3 )

/*                                                       SBC_MODE_DATA_LENGTH_FORMAT_DEVICE + 2 + \*/
/****** Information exceptions control page parameters *****/
#define SBC_MRIE                                      (0x05)

/*************** Format device page parameters *************/
#define SBC_TRACK_PER_ZONE_MSB                        (0x00)
#define SBC_TRACK_PER_ZONE_LSB                        (0x00)
#define SBC_ALTERNATE_SECTORS_PER_ZONE_MSB            (0x00)
#define SBC_ALTERNATE_SECTORS_PER_ZONE_LSB            (0x00)
#define SBC_ALTERNATE_TRACK_PER_ZONE_MSB              (0x00)
#define SBC_ALTERNATE_TRACK_PER_ZONE_LSB              (0x00)
#define SBC_ALTERNATE_TRACK_PER_LU_MSB                (0x00)
#define SBC_ALTERNATE_TRACK_PER_LU_LSB                (0x00)

/************* Flexible Disk page Parameters ***************/
#define SBC_TRANSFER_RATE_MSB                         (0x13)
#define SBC_TRANSFER_RATE_LSB                         (0x88)
/* 1388h    5 Mbit/s   */
/* 07D0h    2 Mbit/s   */
/* 03E8h    1 Mbit/s   */
/* 01F4h    500 kbit/s */
/* 012Ch    300 kbit/s */
/* 00FAh    250 kbit/s */

#define SBC_NUMBER_OF_HEAD                            (0x04)
#define SBC_SECTOR_PER_TRACK                          (0x20)
#define SBC_DATA_BYTE_PER_SECTOR_MSB                  (0x02)
#define SBC_DATA_BYTE_PER_SECTOR_LSB                  (0x00)
#define SBC_NUMBER_OF_CYLINDERS_MSB                   (0x01)
#define SBC_NUMBER_OF_CYLINDERS_LSB                   (0xE9)
#define SBC_STARTING_CYLINDER_WRITE_COMPENSATION_MSB  (0x00)
#define SBC_STARTING_CYLINDER_WRITE_COMPENSATION_LSB  (0x00)
#define SBC_STARTING_CYLINDER_REDUCED_WRITE_MSB       (0x00)
#define SBC_STARTING_CYLINDER_REDUCED_WRITE_LSB       (0x00)
#define SBC_DEVICE_STEP_RATE_MSB                      (0x00)
#define SBC_DEVICE_STEP_RATE_LSB                      (0x00)
#define SBC_DEVICE_STEP_PULSE_WIDTH                   (0x00)
#define SBC_HEAD_SETTLE_DELAY_MSB                     (0x00)
#define SBC_HEAD_SETTLE_DELAY_LSB                     (0x00)
#define SBC_MOTOR_ON_DELAY                            (0x00)
#define SBC_MOTOR_OFF_DELAY                           (0x00)
#define SBC_STEP_PULSE_PER_CYLINDER                   (0x00)
#define SBC_WRITE_COMPENSATION                        (0x00)
#define SBC_HEAD_LOAD_DELAY                           (0x00)
#define SBC_HEAD_UNLOAD_DELAY                         (0x00)
#define SBC_PIN34_PIN2                                (0x00)
#define SBC_PIN4_PIN1                                 (0x00)
#define SBC_MEDIUM_ROTATION_RATE_MSB                  (0x00)
#define SBC_MEDIUM_ROTATION_RATE_LSB                  (0x00)

/************ Read/Write Error Recovery parameters**********/
#define SBC_READ_RETRY_COUNT                          (0x03)
#define SBC_WRITE_RETRY_COUNT                         (0x80)
#define SBC_CORRECTION_SPAN                           (0x00)
#define SBC_HEAD_OFFSET_COUNT                         (0x00)
#define SBC_DATA_STROBE_OFFSET                        (0x00)
#define SBC_RECOVERY_LIMIT_MSB                        (0x00)
#define SBC_RECOVERY_LIMIT_LSB                        (0x00)


/*_____ D E F I N I T I O N ________________________________________________*/

#define SBC_MAX_INQUIRY_DATA                          (0x60) // value ?

struct sbc_st_std_inquiry_data
{
  Byte    DeviceType : 5;
  Byte    PeripheralQualifier : 3;

  Byte    Reserved1 : 7;
  Byte    RemovableMedia : 1;

  Byte    Version;

  Byte    Reserved3 : 5;
  Byte    NormACA : 1;
  Byte    Obsolete0 : 1;
  Byte    AERC : 1;

  Byte    Reserved4[3];

  Byte    SoftReset : 1;
  Byte    CommandQueue : 1;
  Byte    Reserved5 : 1;
  Byte    LinkedCommands : 1;
  Byte    Synchronous : 1;
  Byte    Wide16Bit : 1;
  Byte    Wide32Bit : 1;
  Byte    RelativeAddressing : 1;
};


//_____ D E C L A R A T I O N S ____________________________________________

#define Sbc_send_failed()                 (g_scsi_status = COMMAND_FAILED)
#define Sbc_send_check_condition()        (g_scsi_status = CHECK_CONDITION)
#define Sbc_send_good()                   (g_scsi_status = COMMAND_PASSED)

/*#define Sbc_valid_write_usb(length)       ( Usb_set_TXRDY(), \
                                            dCBWDataTransferLength -= length, \
                                            while (!Usb_tx_complete()),\
                                            Usb_clear_TXCMPL() )
*/
#define Sbc_build_sense(skey, sasc, sascq)   ( g_scsi_sense.key  = skey, \
                                               g_scsi_sense.asc  = sasc, \
                                               g_scsi_sense.ascq = sascq )

#define Sbc_valid_write_usb(length)          ( Usb_send_in(), \
                                               g_scsi_data_remaining -= length )


#define COMMAND_PASSED                0x00
#define COMMAND_FAILED                0x01
#define CHECK_CONDITION               0x02
#define PHASE_ERROR                   0x02


Bool  sbc_inquiry (void);
Bool  sbc_mode_sense( Bool sense_10 );
Bool  sbc_mode_select_6 (void);
Bool  sbc_request_sense (void);
Bool  sbc_format (void);
Bool  sbc_write_10 (void);
Bool  sbc_read_10  (void);
Bool  sbc_test_unit_ready(void);
Bool  sbc_read_capacity(void);
Bool  sbc_prevent_allow_medium_removal(void);

void  sbc_lun_status_is_good(void);
void  sbc_lun_status_is_busy_or_change(void);
void  sbc_lun_status_is_not_present(void);
void  sbc_lun_status_is_fail(void);
void  sbc_lun_status_is_protected(void);

#endif /* _SCSI_DECODER_H_ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国欧美国产一区| 色婷婷av一区二区| 色综合色狠狠天天综合色| 欧美一区二区在线不卡| 亚洲国产裸拍裸体视频在线观看乱了 | 亚洲精品一区二区三区在线观看| 精品蜜桃在线看| 一区二区三区中文字幕精品精品| 久久99精品国产麻豆婷婷 | 91精品国产黑色紧身裤美女| 久久精品免视看| 久久99日本精品| 欧美人狂配大交3d怪物一区 | 成人免费观看视频| 在线播放亚洲一区| 亚洲一区中文在线| 99亚偷拍自图区亚洲| 久久免费视频色| 日韩二区在线观看| 欧美系列亚洲系列| 亚洲男人的天堂网| 久久久噜噜噜久噜久久综合| 成人午夜视频网站| 久久精品国产999大香线蕉| 国产91丝袜在线18| 欧美成人高清电影在线| 亚洲成人av电影| 欧美日韩成人综合| 丝袜国产日韩另类美女| 51精品秘密在线观看| 亚洲成人动漫av| 欧美伦理视频网站| 图片区小说区国产精品视频| 欧美在线视频不卡| 亚洲国产成人91porn| 欧美日韩国产精选| 日韩和的一区二区| 欧美电影免费观看高清完整版在线 | 欧美成人精品1314www| 日本不卡一区二区三区| 欧美久久久久久蜜桃| 国产一区二区三区蝌蚪| 亚洲午夜免费视频| 日本一区二区三区四区在线视频 | 在线观看网站黄不卡| 亚洲人妖av一区二区| av亚洲精华国产精华| ...xxx性欧美| 91久久香蕉国产日韩欧美9色| 成人免费在线播放视频| 欧美日韩美少妇| 日韩不卡手机在线v区| 欧美不卡视频一区| 国产宾馆实践打屁股91| 国产欧美日韩精品在线| 91免费版在线| 日韩国产欧美在线视频| 久久久久久久久久电影| 成人免费视频播放| 午夜在线电影亚洲一区| 精品国产91久久久久久久妲己| 在线观看中文字幕不卡| 成人黄色网址在线观看| 91视频一区二区三区| 久久综合给合久久狠狠狠97色69| 日本不卡在线视频| 久久精品在线观看| 91老师国产黑色丝袜在线| 日日夜夜精品视频天天综合网| 久久久久一区二区三区四区| 91亚洲精品久久久蜜桃| 免费观看成人av| 国产精品久久久久影视| 在线成人小视频| 成人动漫一区二区三区| 一区二区三区影院| 久久日韩精品一区二区五区| 色综合天天综合狠狠| 久久国产成人午夜av影院| 国产欧美一区二区三区在线老狼| 色噜噜久久综合| 国内成+人亚洲+欧美+综合在线| 亚洲伦理在线精品| 精品国产免费人成在线观看| 色婷婷亚洲精品| 成人理论电影网| 久久精品国产一区二区三| 亚洲最大的成人av| 欧美一区二区福利视频| 欧美亚洲丝袜传媒另类| 成人在线视频首页| 精品夜夜嗨av一区二区三区| 一二三四社区欧美黄| 欧美经典一区二区三区| 在线不卡一区二区| 欧洲国内综合视频| 经典一区二区三区| 日韩高清在线一区| 午夜欧美视频在线观看| 亚洲视频你懂的| 国产精品卡一卡二| 欧美激情一区在线| 国产清纯在线一区二区www| 欧美一级专区免费大片| 在线观看成人小视频| 91网上在线视频| 国产电影精品久久禁18| 国产一区三区三区| 日韩欧美在线一区二区三区| 首页综合国产亚洲丝袜| 欧美亚洲国产bt| 91一区一区三区| 成人av综合一区| 粉嫩嫩av羞羞动漫久久久| 免费视频一区二区| 喷白浆一区二区| 蜜桃视频第一区免费观看| 三级成人在线视频| 亚洲国产精品精华液网站| 亚洲国产日韩综合久久精品| 亚洲一区二区三区中文字幕在线| 亚洲三级免费观看| 一区二区三区四区不卡视频 | 欧美日韩一区二区三区高清| 91福利资源站| 欧美日韩精品二区第二页| 欧洲精品中文字幕| 制服丝袜亚洲播放| 久久综合九色综合97婷婷| 国产人成一区二区三区影院| 国产精品久久久久国产精品日日| 国产精品国产精品国产专区不片 | 美女网站色91| 国产精品影视天天线| 国产成人福利片| av激情成人网| 欧美少妇一区二区| 日韩欧美另类在线| 欧美极品美女视频| 亚洲影视资源网| 精品亚洲成av人在线观看| 国精产品一区一区三区mba桃花| 成人免费毛片app| 欧美亚洲国产怡红院影院| 日韩欧美亚洲另类制服综合在线| 国产午夜精品一区二区三区视频| 中文字幕欧美一区| 婷婷综合在线观看| 成人自拍视频在线| 在线不卡欧美精品一区二区三区| 久久蜜桃一区二区| 一区二区三区欧美日韩| 日本不卡123| 成人的网站免费观看| 欧美喷潮久久久xxxxx| 国产日韩欧美高清| 午夜视频在线观看一区二区| 国产91色综合久久免费分享| 欧美体内she精视频| 久久婷婷成人综合色| 亚洲一区二区精品3399| 国产一区二区导航在线播放| 在线亚洲免费视频| 国产视频一区二区在线| 亚洲成人激情综合网| 成人丝袜高跟foot| 91精品欧美综合在线观看最新| 中文字幕欧美三区| 久久国产免费看| 欧美在线观看视频在线| 国产精品女人毛片| 精品一区二区三区香蕉蜜桃| 欧美在线999| 国产精品国产三级国产有无不卡| 午夜私人影院久久久久| 91久久一区二区| 国产精品私人自拍| 激情国产一区二区| 91精品国产高清一区二区三区蜜臀 | 亚洲精品ww久久久久久p站| 天天爽夜夜爽夜夜爽精品视频| 国产a精品视频| 日韩精品一区二区三区视频播放| 亚洲成人在线观看视频| 91亚洲大成网污www| 国产精品久久久久久一区二区三区| 免费看黄色91| 7777精品伊人久久久大香线蕉超级流畅 | 欧美成人乱码一区二区三区| 亚洲国产精品一区二区www| 99久久精品免费看国产免费软件| 欧美大片顶级少妇| 久久精品国产澳门| 精品日本一线二线三线不卡| 日本不卡在线视频| 日韩一区二区三免费高清| 日日夜夜免费精品| 欧美日韩国产成人在线免费| 亚洲午夜久久久久久久久久久| 91麻豆文化传媒在线观看|