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

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

?? usrusbcbiufidevinit.c

?? IXP425的BSP代碼
?? C
字號:
/* usrUsbCbiUfiDevInit.c - USB Mass Storage CBI driver initialization *//* Copyright 1999-2002 Wind River Systems, Inc. *//*Modification history--------------------01e,20dec01,wef  declare usrFdiskPartRead.01d,07dec01,wef  Fixed more warnings.01b,13nov01,wef  Removed warnings, added CBIO layer for dosFs2.01a,10dec00,wef  Created*/ /*DESCRIPTION This configlette initializes the USB Mass Storage Control / Bulk / Interruptdriver and places it in the driver table.  On boot, it can be refered to by the name given specified by CBI_DRIVE_NAME.  This assumes the USB host stack has already been initialized and has a host controller driver attached. *//* includes */#include "dosFsLib.h"#include "dcacheCbio.h"#include "dpartCbio.h"#include "usb/usbdLib.h"#include "usb/usbQueueLib.h"#include "drv/usb/usbCbiUfiDevLib.h"#ifdef _WRS_VXWORKS_5_X#include "usrFdiskPartLib.h"#endif/* defines */#define VX_UNBREAKABLE	0x0002			/* No debuging into this task *//* locals */LOCAL QUEUE_HANDLE 	cbiCallbackQueue;LOCAL USB_MESSAGE  	cbiDeviceStatus;LOCAL USBD_NODE_ID	ufiNodeId;		/* Store for nodeId of the UFI device */LOCAL BLK_DEV		* pUfiBlkDev = NULL;	/* Store for drive structure */LOCAL BOOL		ufiConnected = FALSE;	/* True if a UFI device exists        */LOCAL BOOL		ufiDevInUse  = FALSE;	/* True while IO operations are       */						/* operations are being performed     */ /* externals */#ifndef _WRS_VXWORKS_5_XIMPORT STATUS usrFdiskPartRead    (    CBIO_DEV_ID cDev,            /* device from which to read blocks */    PART_TABLE_ENTRY *pPartTab,  /* table where to fill results */    int nPart                    /* # of entries in <pPartTable> */    );#endif/*************************************************************************** ufiMountDrive - mounts a drive to the DOSFS.** RETURNS: OK or ERROR*/LOCAL STATUS ufiMountDrive    (    USBD_NODE_ID attachCode		/* attach code */    )    {    CBIO_DEV_ID cbio;    /* Create the block device with in the driver */    pUfiBlkDev = (BLK_DEV *) usbCbiUfiBlkDevCreate (ufiNodeId);    if (pUfiBlkDev == NULL)	{	printf ("usbCbiUfiBlkDevCreate() returned ERROR\n");	return ERROR;	}    /* optional dcache */    cbio = dcacheDevCreate ((CBIO_DEV_ID) pUfiBlkDev, 0, 0, "usbCbiCache");    if( NULL == cbio )        {        /* insufficient memory, will avoid the cache */         printf ("WARNING: Failed to create disk cache\n");         }    /* Mount the drive to DOSFS */    if (dosFsDevCreate (CBI_DRIVE_NAME, cbio, 0x20, NONE) == ERROR)	{	printf ("dosFsDevCreate () returned ERROR\n");	return ERROR;	}    return OK;    }	/*************************************************************************** ufiAttachCallback - user attach callback for USB UFI class driver.** RETURNS: Nothing*/LOCAL VOID ufiAttachCallback    (    pVOID arg,			    /* caller-defined argument */    USBD_NODE_ID nodeId,	    /* pointer to UFI Device */    UINT16 attachCode		    /* attach code */    )    {    usbQueuePut (cbiCallbackQueue,		 0,				/* msg */		 attachCode,			/* wParam */		 (UINT32) nodeId,		/* lParam */		 5000);    }/***************************************************************************** ufiClientThread- Handle control of drives being plugged / unplugged** This function controls what happens when a new drive gets plugged in* or when an existing drive gets removed.** RETURNS: Nothing*/ LOCAL VOID ufiClientThread(void)    {#if 0    DEV_HDR *hdr;#endif    while (1)        {        usbQueueGet (cbiCallbackQueue, &cbiDeviceStatus, OSS_BLOCK);	/* If attached. Only one device is supported at a time */	if ((cbiDeviceStatus.wParam == USB_UFI_ATTACH) && (ufiConnected != TRUE))	    {	    ufiConnected = TRUE;		/* UFI device detected*/	    /* Store nodeId of UFI device */	    ufiNodeId    = (USBD_NODE_ID) cbiDeviceStatus.lParam;	    /* Lock the device for protection */	    if (usbCbiUfiDevLock (ufiNodeId) != OK)		printf ("usbCbiUfiDevLock() returned ERROR\n");	    /* Mount the drive to the DOS file system */	    if (ufiMountDrive(ufiNodeId) != OK)		printf ("ufiMountDrive () returned ERROR\n");	    printf ("UFI Device Installed as %s\n", CBI_DRIVE_NAME);	    }	else	    {	    /* Ufi device removed */	    if (cbiDeviceStatus.lParam == (UINT32) ufiNodeId)    		{ 		ufiConnected = FALSE;   /* Declare that device doesn't exist */		if ((ufiDevInUse == FALSE) && (pUfiBlkDev != NULL))		    {				    /* 		     * Remove the dosFs handles if the device is not		     * being used 		     */#if 0/*  * This is the ideal way to handle this, but  * iosDevDelete () is not supported on block  * devices. */		    if ( (hdr = iosDevFind (CBI_DRIVE_NAME, NULL)) != NULL )			iosDevDelete (hdr);#endif 		    /* 		     * Unlock the UFI device structure, so that it 		     * gets destroyed 		     */		    if (usbCbiUfiDevUnlock ((USBD_NODE_ID) cbiDeviceStatus.lParam)					 != OK)			printf ("usbCbiUfiDevUnlock() returned ERROR\n");		    printf ("%s removed and uninstalled from FS\n", CBI_DRIVE_NAME);		    /* Mark BlkDev structure as dead */		    pUfiBlkDev = NULL;		    }		}	    }	}    }/***************************************************************************** ufiClntRegister- Mass Storage Drive Registration** This function registers a CBI - UFI drive with the USBD.  In addition, it* also spawns a task to handle plugging / unplugging activity.** RETURNS: Nothing*/ LOCAL VOID ufiClntRegister (void)    {       int taskId;    /*  This queue is used to pass status parameters to the task spawned below */    if (usbQueueCreate (128, &cbiCallbackQueue)!=OK)	printf("callback queue creation error\n ");    /* Spawn a task to manage drive removal and insertion */    if((taskId = taskSpawn ("tUfiClnt", 			    5, 			    VX_UNBREAKABLE,			    20000, 			    (FUNCPTR) ufiClientThread, 			    0, 0, 0, 0, 0, 0, 0, 0, 0, 0 )) ==ERROR)	printf(" TaskSpawn Error...!\n");      /* Register for dynamic attach callback */     if (usbCbiUfiDynamicAttachRegister (ufiAttachCallback, (pVOID)NULL) != OK)	printf ("usbCbiUfiDynamicAttachRegister() returned ERROR\n");    }/*************************************************************************** usrUsbCbiUfiDevInit - initializes USB UFI Mass storage driver.** RETURNS: Nothing*/ void usrUsbCbiUfiDevInit (void)     {    /* Initialize the UFI class driver */     if (usbCbiUfiDevInit () == OK)	printf ("usbCbiUfiDevInit() returned OK\n");    else	printf ("usbCbiUfiDevInit() returned ERROR\n");     /* Registration routine */    ufiClntRegister ();    }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久伊人网影院| 欧美大片拔萝卜| 日韩小视频在线观看专区| 久久日韩精品一区二区五区| 一区二区三区在线视频观看58| 久久av中文字幕片| 欧美性一级生活| 欧美激情在线免费观看| 久久国产精品99精品国产| 欧美在线三级电影| 亚洲婷婷在线视频| 国产mv日韩mv欧美| 久久夜色精品国产欧美乱极品| 亚洲国产成人va在线观看天堂| av电影天堂一区二区在线| 久久一区二区三区四区| 毛片av一区二区| 欧美日韩在线免费视频| 亚洲欧美精品午睡沙发| 成人a免费在线看| 久久精品日产第一区二区三区高清版| 丝袜诱惑制服诱惑色一区在线观看| 97se亚洲国产综合自在线| 国产精品美女久久久久久久久久久| 久久成人免费电影| 91精品国产综合久久精品app| 一区二区三区中文免费| 91欧美一区二区| 亚洲丝袜制服诱惑| 91色porny在线视频| 亚洲欧美综合另类在线卡通| 国产91精品露脸国语对白| 国产三级精品三级在线专区| 国产乱子轮精品视频| 精品国产亚洲在线| 亚洲综合色网站| 久久影音资源网| 毛片av一区二区| 91精品国产色综合久久不卡电影 | 中文字幕一区二区三区色视频| 极品美女销魂一区二区三区免费| 日韩欧美中文一区二区| 精品午夜一区二区三区在线观看 | 在线亚洲人成电影网站色www| 一区在线观看视频| 一道本成人在线| 性欧美大战久久久久久久久| 欧美日韩国产高清一区| 裸体一区二区三区| 久久―日本道色综合久久| 成人毛片视频在线观看| 亚洲人成网站在线| 欧美日韩国产经典色站一区二区三区| 午夜欧美2019年伦理| 国产亚洲欧美色| 99久久精品国产导航| 亚洲黄色片在线观看| 欧美一区二区视频在线观看2022 | 成人教育av在线| 亚洲男人的天堂av| 欧美日本在线观看| 九九精品一区二区| 免播放器亚洲一区| 精品日本一线二线三线不卡| 国产在线一区二区| 中文字幕一区二区视频| 色噜噜久久综合| 久久狠狠亚洲综合| 综合电影一区二区三区| 日韩一级片网址| av色综合久久天堂av综合| 亚洲mv大片欧洲mv大片精品| 国产亚洲综合在线| 欧美日韩亚洲综合在线| 国产成人综合自拍| 一区二区三区美女| 久久精品一区二区三区四区| 欧美艳星brazzers| 国产不卡视频一区二区三区| 亚洲电影第三页| 国产精品每日更新| 日韩一卡二卡三卡四卡| 日本丰满少妇一区二区三区| 国产在线视视频有精品| 亚洲一区二区av电影| 欧美图区在线视频| 91精品国产高清一区二区三区蜜臀| 国产成人精品免费网站| 视频一区免费在线观看| 中文字幕在线不卡一区| 日韩免费视频线观看| 日本精品免费观看高清观看| 国产一区二区三区不卡在线观看| 亚洲一区在线看| 日韩一区中文字幕| 久久夜色精品一区| 91精品国产综合久久久久久久久久 | 国产一区高清在线| 日韩精品乱码免费| 亚洲一区二区三区不卡国产欧美| 欧美激情一区二区三区| 欧美大片顶级少妇| 日韩午夜电影av| 51精品久久久久久久蜜臀| 91福利视频久久久久| 99久久精品情趣| 成人一级黄色片| 国产91在线看| 国产成人精品亚洲日本在线桃色| 久久99精品久久久久久动态图 | 亚洲欧洲一区二区在线播放| 久久久久久亚洲综合| 亚洲精品在线观看视频| 欧美大片在线观看一区二区| 欧美一区二区成人6969| 日韩一区二区三区在线视频| 欧美日韩国产一区| 欧美丰满美乳xxx高潮www| 欧美日韩精品免费| 欧美一级高清片| 欧美一级理论性理论a| 欧美成人精品高清在线播放| 欧美一区二区国产| 日韩视频在线观看一区二区| 日韩精品资源二区在线| 精品三级在线观看| 久久精品一二三| 国产精品视频看| 亚洲人成小说网站色在线| 亚洲尤物在线视频观看| 午夜伦理一区二区| 久久99精品国产麻豆不卡| 国产老女人精品毛片久久| www.爱久久.com| 在线视频一区二区三区| 欧美一区二区三区精品| 久久久精品免费免费| 国产精品久久久久影院老司| 亚洲一区二区精品久久av| 日韩高清欧美激情| 国产精品77777竹菊影视小说| av在线一区二区三区| 欧美日韩中字一区| 26uuu国产日韩综合| 亚洲欧美日韩电影| 日本成人在线网站| www.色综合.com| 91精品中文字幕一区二区三区| 久久久久国产免费免费| 亚洲美女视频在线观看| 日本免费在线视频不卡一不卡二| 国产精品综合一区二区三区| 一本大道久久a久久精品综合| 欧美一区二区三区四区视频| 国产精品理论在线观看| 午夜欧美电影在线观看| 国产91精品精华液一区二区三区 | 亚洲狠狠丁香婷婷综合久久久| 日本亚洲免费观看| 不卡的av中国片| 日韩欧美二区三区| 一区二区三区日韩| 国产成人av影院| 在线播放一区二区三区| 中文字幕日韩一区| 久久99精品国产麻豆婷婷| 在线视频国内自拍亚洲视频| 久久久午夜精品理论片中文字幕| 亚洲午夜精品在线| av在线这里只有精品| 日韩免费成人网| 亚洲国产精品一区二区久久| 成人黄色小视频在线观看| 欧美xxxxx裸体时装秀| 一区二区三区免费网站| 成人综合在线视频| 精品久久久久久最新网址| 亚洲第一在线综合网站| 色欧美日韩亚洲| 国产亚洲一区二区三区| 麻豆成人综合网| 欧美日韩一区视频| 亚洲免费av网站| 成人黄色电影在线| 国产欧美一二三区| 国产综合久久久久影院| 欧美精选一区二区| 午夜电影久久久| 欧美亚洲综合网| 一区二区三区欧美视频| 色视频欧美一区二区三区| 国产精品不卡一区| 成人午夜激情视频| 中文幕一区二区三区久久蜜桃| 黄色资源网久久资源365| 日韩视频一区二区在线观看| 日本欧美在线观看| 日韩欧美二区三区| 国产一区二区三区免费| 久久伊人中文字幕|