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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? usbtargrbccmd.c

?? This the compressed USB driver source code for vxworks5.6. It has device controller driver and other
?? C
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
        /* If not an RBC device, return just the header with no page info */        g_deviceHdr.dataLen = sizeof(MODE_PARAMETER_HEADER)-1;        *ppData = (UINT8 *)&g_deviceHdr;        *pSize = sizeof(MODE_PARAMETER_HEADER);        }    /* return only what was requested */    if (allocLgth < *pSize)        *pSize = allocLgth;    /* set sense data */    usbTargRbcSenseDataSet (SCSI_SENSE_NO_SENSE, SCSI_ADSENSE_NO_SENSE, 0);    return(OK);    }/********************************************************************************* usbTargRbcTestUnitReady - test if the RBC device is ready** This routine tests whether the RBC block I/O device is ready.** RETURNS: OK or ERROR* * ERRNO:*  none.*/STATUS usbTargRbcTestUnitReady    (    UINT8	arg[6]		/* the RBC command */    )    {    /*     * set sense key to NO SENSE (0x0) and set additional sense code     * to NO ADDITIONAL SENSE INFORMATION      */    usbTargRbcSenseDataSet(SCSI_SENSE_NO_SENSE,SCSI_ADSENSE_NO_SENSE,0);    return(OK);    }/******************************************************************************** usbTargRbcBufferWrite - write micro-code to the RBC device** This routine writes micro-code to the RBC block I/O device.** RETURNS: OK or ERROR* * ERRNO:*  none.*/STATUS usbTargRbcBufferWrite    (    UINT8	arg[10],	/* the RBC command */    UINT8	** ppData,	/* micro-code location on device */    UINT32	* pSize		/* size of micro-code location on device */    )    {    UINT32	offset;		/* offset */    UINT32	paramListLgth;	/* paramter list length */    UINT8	mode;		/* mode */    mode = arg[1] & 0x7;    offset = (arg[3] << 16) | (arg[4] << 8) | arg[5];    paramListLgth = (arg[6] << 16) | (arg[7] << 8) | arg[8];    switch(mode)        {        case 5:            /*              * vendor-specific Microcode or control information is              * transferred to the device and saved saved to              * non-volatile memory              */             break;        case 7:            /*             * vendor-specific microcode or control information is             * transferred to the device with two or more WRITE BUFFER commands.              */            break;        default:             /* other modes optional for RBC devices and not implemented */            /*              * set sense key to ILLEGAL REQUEST (05h) and an ASC of COMMAND             * SEQUENCE ERROR (2Ch)              */            usbTargRbcSenseDataSet (SCSI_SENSE_ILLEGAL_REQUEST,                                     SCSI_ADSENSE_CMDSEQ_ERROR, 0x0);            return(ERROR);        }    /*     * The PARAMETER LIST LENGTH field specifies the maximum number of bytes      * that sent by the host to be stored in the specified buffer beginning     * at the buffer offset. If the BUFFER OFFSET and PARAMETER LIST LENGTH     * fields specify a transfer in excess of the buffer capacity, return      * ERROR and set the sense key to ILLEGAL REQUEST with an additional      * sense code of INVALID FIELD IN CDB.      */    if (paramListLgth + offset > DATA_BUFFER_LEN)        {        usbTargRbcSenseDataSet (SCSI_SENSE_ILLEGAL_REQUEST,                                 SCSI_ADSENSE_INVALID_CDB, 0x0);        return(ERROR);        }    usbTargRbcSenseDataSet(SCSI_SENSE_NO_SENSE, SCSI_ADSENSE_NO_SENSE, 0x0);    *ppData = &g_dataOutBfr[0];    *pSize = DATA_BUFFER_LEN;    return(OK);    }/* optional routines *//********************************************************************************* usbTargRbcFormat - format the RBC device** This routine formats the RBC block I/O device.** RETURNS: OK or ERROR* * ERRNO:*  none*/STATUS usbTargRbcFormat    (    UINT8	arg[6]		/* the RBC command */    )    {    /*      * This routine should not be called because the mode sense data indicates     * the unit cannot be formatted. If this routine is called, return a status     * of ERROR, a sense key of MEDIA ERROR (03h), an ASC/ASCQ     * of FORMAT COMMAND FAILED (31h /01h).      */    usbTargRbcSenseDataSet (SCSI_SENSE_MEDIUM_ERROR, SCSI_ADSENSE_FORMAT_ERROR,                            0x1);    return(ERROR);    }/********************************************************************************* usbTargRbcPersistentReserveIn - send reserve data to the host** This routine requests reserve data to be sent to the initiator.** RETURNS: OK or ERROR* * ERRNO:*  none*/STATUS usbTargRbcPersistentReserveIn    (    UINT8	arg[10],	/* the RBC command */    UINT8	** ppData,	/* location of reserve data on device */    UINT32	*pSize		/* size of reserve data */    )    {    *ppData = NULL;    *pSize  = 0;    /*     * This routine is optional and is not implemented. If this routine is called,     * return a status of ERROR, a sense key of ILLEGAL REQUEST (05h),     * and an ASC/ASCQ of INVALID COMMAND OPERATION CODE (20h).      */    usbTargRbcSenseDataSet (SCSI_SENSE_ILLEGAL_REQUEST,                             SCSI_ADSENSE_ILLEGAL_COMMAND, 0x0);    return(ERROR);    }/********************************************************************************* usbTargRbcPersistentReserveOut - reserve resources on the RBC device** This routine reserves resources on the RBC block I/O device.** RETURNS: OK or ERROR* * ERRNO:*  none*/STATUS usbTargRbcPersistentReserveOut    (    UINT8	arg[10],	/* the RBC command */    UINT8	** ppData,	/* location of reserve data on device */    UINT32	*pSize		/* size of reserve data */    )    {    *ppData = NULL;    *pSize = 0;    /*     * This routine is optional and is not implemented. If this routine is      * called, return a status of ERROR, a sense key of ILLEGAL REQUEST (05h),     * and an ASC/ASCQ of INVALID COMMAND OPERATION CODE (20h).     */    usbTargRbcSenseDataSet (SCSI_SENSE_ILLEGAL_REQUEST,                            SCSI_ADSENSE_ILLEGAL_COMMAND, 0x0);    return(ERROR);    }/********************************************************************************* usbTargRbcRelease - release a resource on the RBC device** This routine releases a resource on the RBC block I/O device.** RETURNS: OK or ERROR** ERRNO:*  none.*/STATUS usbTargRbcRelease    (    UINT8	arg[6]		/* the RBC command */    )    {    /*     * This routine is optional and is not implemented. If this routine is      * called, return a status of ERROR, a sense key of ILLEGAL REQUEST (05h),     * and an ASC/ASCQ of INVALID COMMAND OPERATION CODE (20h).     */    usbTargRbcSenseDataSet (SCSI_SENSE_ILLEGAL_REQUEST,                            SCSI_ADSENSE_ILLEGAL_COMMAND, 0x0);    return(ERROR);    }/********************************************************************************* usbTargRbcRequestSense - request sense data from the RBC device** This routine requests sense data from the RBC block I/O device.** RETURNS: OK or ERROR** ERRNO: N/A*/STATUS usbTargRbcRequestSense    (    UINT8	arg[6],		/* the RBC command */    UINT8	** ppData,	/* location of sense data on device */    UINT32	*pSize		/* size of sense data */    )    {    UINT8	allocLgth = arg[4];	/* allocation length */    *ppData = (UINT8 *)&g_senseData;    *pSize  = sizeof(SENSE_DATA);    if (allocLgth < *pSize)        *pSize = allocLgth;    return(OK);    }/********************************************************************************* usbTargRbcReserve - reserve a resource on the RBC device** This routine reserves a resource on the RBC block I/O device.** RETURNS: OK or ERROR* * ERRNO:*  none*/STATUS usbTargRbcReserve    (    UINT8	arg[6]		/* the RBC command */    )    {    /*     * set sense key to ILLEGAL REQUEST 0x5 and      * set additional sense code to INVALID COMMAND OPERATION CODE 0x20      */    usbTargRbcSenseDataSet (SCSI_SENSE_ILLEGAL_REQUEST,                            SCSI_ADSENSE_ILLEGAL_COMMAND, 0);    return(ERROR);    }/******************************************************************************** usbTargRbcCacheSync - synchronize the cache of the RBC device** This routine synchronizes the cache of the RBC block I/O device.** RETURNS: OK or ERROR* * ERRNO:*  none*/STATUS usbTargRbcCacheSync    (    UINT8	arg[10]		/* the RBC command */    )    {    usbTargRbcSenseDataSet (SCSI_SENSE_NO_SENSE,                            SCSI_ADSENSE_NO_SENSE, 0);    return(OK);    }/********************************************************************************* usbTargRbcBlockDevGet - return opaque pointer to the RBC BLK I/O DEV device * structure.** This routine returns an opaque pointer to the RBC BLK I/O DEV device * structure.** RETURNS: Pointer to the RBC BLK I/O DEV structure* * ERRNO:*  none*/pVOID usbTargRbcBlockDevGet (void)    {    /* return current instance of the RBC BLK_DEV structure */    return(g_rbcBlkDev);    }/********************************************************************************* usbTargRbcBlockDevSet - set the pointer to the RBC BLK I/O DEV device structure.** This routine sets the RBC BLK_DEV pointer that is accessed by the * usbTargRbcBlockDevGet() routine.** RETURNS: OK or ERROR* * ERRNO:*  none*/STATUS usbTargRbcBlockDevSet    (    pVOID	*blkDev		/* pointer to the BLK_DEV device */    )    {    /* set the RBC BLK_DEV pointer to the value of the argument */    g_rbcBlkDev = blkDev;    return(OK);    }/******************************************************************************** usbTargRbcBlockDevCreate - create an RBC BLK_DEV device.** This routine creates an RBC BLK I/O device. The RAM driver will be used for* the actual implementation.** RETURNS: Pointer to BLK_DEV structure* * ERRNO:*  none.*/STATUS usbTargRbcBlockDevCreate (void)    {    CBIO_DEV_ID		cbio;	/* CBIO_DEV_ID */    if (g_rbcBlkDev != NULL)        return(OK);#if (USB_MS_BLK_DRV == USB_MS_CBIO_DRV)    /* create a RAM disk cache block I/O device (CBIO) */    cbio = (CBIO_DEV_ID)ramDiskDevCreate        (        NULL,               /* where it is in memory (0 = malloc)     */        BYTES_PER_BLOCK,    /* number of bytes per block              */        BLKS_PER_TRACK,     /* number of blocks per track             */        NUM_BLOCKS,         /* number of blocks on this device        */        BLK_OFFSET          /* no. of blks to skip at start of device */        );    if (cbio == NULL)        {        usbDbgPrint("usbTargRbcBlockDevCreate: ramDiskDevCreate returned \                     NULL\n");        return(ERROR);        }    /* create the DOS file system */    if (dosFsDevCreate (BLK_DEV_NAME, cbio, 0x20, NONE) == ERROR)        {        usbDbgPrint ("usbTargRbcFileSystemCreate: dosFsDevCreate \                      returned ERROR\n");        return ERROR;        }    /* Format the first partition */      if(dosFsVolFormat (BLK_DEV_NAME, 2,0) == ERROR)        {        usbDbgPrint ("usbTargRbcBlockDevCreate: dosFsVolFormat returned \                      ERROR\n");        return ERROR;        }#elif (USB_MS_BLK_DRV == USB_MS_RAM_DRV)    /* create a RAM driver and use CBIO wrapper routines */            cbio = cbioWrapBlkDev (ramDevCreate (NULL, BYTES_PER_BLOCK, BLKS_PER_TRACK,	                                         NUM_BLOCKS, BLK_OFFSET));    if (cbio == NULL)        {        usbDbgPrint("usbTargRbcBlockDevCreate: ramDevCreate returned NULL\n");        return(ERROR);        }    if(cbioIoctl(cbio,CBIO_RESET,NULL) != OK)        {        usbDbgPrint ("usbTargRbcBlockDevCreate: CBIO_RESET returned ERROR\n");        return ERROR;        }#else#error usbTargRbcBlockDevCreate: USB_MS_BLK_DRV is an unknown device#endif    /* reset the device */    if(cbioIoctl(cbio,CBIO_RESET,NULL) != OK)        {        usbDbgPrint ("usbTargRbcBlockDevCreate: CBIO_RESET returned ERROR\n");        return ERROR;        }    /* save the pointer */    g_rbcBlkDev = (pVOID)cbio;    return(OK);    }/******************************************************************************** usbTargRbcVendorSpecific - vendor specific call** This routine is a vendor specific call.** RETURNS: OK* * ERRNO:*  none*/STATUS usbTargRbcVendorSpecific    (    UINT8	arg[10],	/* the RBC command */    UINT8	** ppData,	/* location of sense data on device */    UINT32	*  pSize	/* size of sense data */    )    {    *ppData = g_VendorSpecificData;    *pSize = VENDOR_SPECIFIC_23_LENGTH;    return(OK);    }

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品18+| 91原创在线视频| 精品久久国产老人久久综合| 性欧美疯狂xxxxbbbb| 欧美日韩aaaaaa| 美国十次了思思久久精品导航| 日韩一区二区高清| 国产 日韩 欧美大片| 国产精品乱码一区二三区小蝌蚪| 成人av在线电影| 一区二区三区中文在线| 欧美日韩国产天堂| 久久99精品久久久久久久久久久久 | 欧美精品一二三区| 日本欧美一区二区三区乱码| www激情久久| 91尤物视频在线观看| 亚洲mv在线观看| 欧美mv和日韩mv的网站| 成人精品视频一区二区三区| 一区二区免费视频| 2欧美一区二区三区在线观看视频| 国产成人免费在线视频| 一区二区三区国产| 精品国产伦理网| 色综合中文综合网| 9人人澡人人爽人人精品| 亚洲一区二区在线播放相泽| 日韩视频免费观看高清完整版在线观看 | 亚洲午夜视频在线观看| 欧美大尺度电影在线| 成人精品电影在线观看| 五月天视频一区| 国产色综合久久| 在线观看亚洲精品| 国产综合色在线| 亚洲午夜精品17c| 久久精品免视看| 欧美色老头old∨ideo| 国产伦精品一区二区三区视频青涩| 亚洲同性gay激情无套| 欧美大片在线观看| 欧美午夜精品久久久| 99re66热这里只有精品3直播| 亚洲午夜激情网页| 国产精品女主播在线观看| 91精品国产91综合久久蜜臀| 成人av影视在线观看| 久久国产生活片100| 亚洲最大成人网4388xx| 中文字幕第一区综合| 3d成人动漫网站| www.欧美亚洲| 精品午夜久久福利影院| 肉丝袜脚交视频一区二区| 亚洲欧美日本在线| 亚洲国产岛国毛片在线| 日韩欧美久久一区| 91.成人天堂一区| 色天使色偷偷av一区二区| av在线一区二区| 国产999精品久久久久久| 久久国产麻豆精品| 日韩主播视频在线| 性欧美疯狂xxxxbbbb| 一区二区三区四区av| 中文字幕一区二区三区在线观看 | 国精产品一区一区三区mba视频| 午夜国产不卡在线观看视频| 亚洲精品国产无套在线观| 国产喷白浆一区二区三区| 精品国产123| 精品美女一区二区三区| 91麻豆精品国产91久久久资源速度 | 久久综合网色—综合色88| 日韩一级大片在线观看| 欧美一区二区在线视频| 欧美精品一二三区| 欧美另类久久久品| 91麻豆精品91久久久久同性| 欧美日韩国产美| 在线播放中文字幕一区| 91麻豆精品国产自产在线| 91麻豆精品国产91久久久久久久久| 欧美精品丝袜久久久中文字幕| 欧美伊人久久久久久午夜久久久久| 在线免费精品视频| 欧美性猛交一区二区三区精品| 欧美性猛交xxxx乱大交退制版| 欧美视频在线不卡| 欧美一区二区三区在线观看| 日韩一级在线观看| 久久久久久久av麻豆果冻| 国产欧美日韩综合| 亚洲天堂免费看| 亚洲高清视频中文字幕| 蜜臂av日日欢夜夜爽一区| 久久69国产一区二区蜜臀| 国产成人三级在线观看| 99视频一区二区| 欧美四级电影网| 日韩精品一区二区三区在线观看| 久久久99免费| 亚洲精品国产第一综合99久久| 亚洲国产乱码最新视频| 麻豆精品视频在线观看| 国产精品 日产精品 欧美精品| 99在线精品一区二区三区| 色综合久久久久久久| 在线不卡免费av| 久久久三级国产网站| 日韩理论片网站| 丝袜美腿成人在线| 国产成人午夜精品影院观看视频 | 亚洲成av人片| 日本亚洲免费观看| 色婷婷综合在线| 精品人在线二区三区| 日韩美女精品在线| 婷婷综合五月天| 福利电影一区二区| 精品视频123区在线观看| 欧美成人女星排名| 国产精品嫩草久久久久| 亚洲一二三专区| 国内国产精品久久| 欧美性一区二区| 国产偷国产偷亚洲高清人白洁| 亚洲精品成人精品456| 久久精品国产网站| 色久综合一二码| 久久只精品国产| 免费xxxx性欧美18vr| 欧美亚洲综合久久| 欧美国产亚洲另类动漫| 日韩专区欧美专区| 色综合天天天天做夜夜夜夜做| 精品国产一区二区三区av性色| 亚洲免费观看高清在线观看| 久久99国产乱子伦精品免费| 色猫猫国产区一区二在线视频| 2020国产精品自拍| 日韩精品一级二级| 日本高清不卡视频| 欧美经典三级视频一区二区三区| 日本伊人精品一区二区三区观看方式 | 国产成人aaaa| 精品理论电影在线| 天天色 色综合| 欧美主播一区二区三区| 亚洲欧洲成人自拍| 成a人片亚洲日本久久| 久久九九国产精品| 国内精品视频一区二区三区八戒| 欧美老肥妇做.爰bbww视频| 亚洲久草在线视频| 99re热视频这里只精品| 国产喷白浆一区二区三区| 精品一区二区三区在线观看国产| 欧美色视频在线观看| 亚洲男同1069视频| 成人午夜免费电影| 日本一区二区三区dvd视频在线| 日韩精品欧美精品| 欧美日本在线播放| 日日嗨av一区二区三区四区| 欧美日韩国产三级| 亚洲一区二区三区激情| 欧美日韩专区在线| 首页欧美精品中文字幕| 欧美日韩精品一区二区| 亚洲成av人片| 在线综合+亚洲+欧美中文字幕| 午夜精品视频一区| 欧美精品一卡二卡| 蜜乳av一区二区| 欧美v亚洲v综合ⅴ国产v| 久久不见久久见免费视频1| 久久夜色精品国产噜噜av| 国产精品一区二区x88av| 久久久久久久久伊人| 国产精品 日产精品 欧美精品| 国产精品久久久久久久裸模| 91麻豆精品一区二区三区| 亚洲一区二区三区激情| 在线成人免费观看| 蜜桃视频一区二区| 久久老女人爱爱| www.欧美色图| 亚洲一区二区三区不卡国产欧美| 欧美日韩国产系列| 久久99精品国产91久久来源| 久久综合狠狠综合| 成人h动漫精品| 亚洲国产美女搞黄色| 6080日韩午夜伦伦午夜伦| 黑人精品欧美一区二区蜜桃| 国产欧美一区二区精品忘忧草| 99久久精品国产导航| 五月天激情综合网|