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

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

?? pciio.c

?? 根據添加了fs2410平臺的arch目錄
?? C
?? 第 1 頁 / 共 3 頁
字號:
devfs_handle_tpciio_info_dev_get(pciio_info_t pciio_info){    return (pciio_info->c_vertex);}/*ARGSUSED*/pciio_bus_tpciio_info_bus_get(pciio_info_t pciio_info){    /* XXX for now O2 always gets back bus 0 */    return (pciio_bus_t)0;}pciio_slot_tpciio_info_slot_get(pciio_info_t pciio_info){    return (pciio_info->c_slot);}pciio_function_tpciio_info_function_get(pciio_info_t pciio_info){    return (pciio_info->c_func);}pciio_vendor_id_tpciio_info_vendor_id_get(pciio_info_t pciio_info){    return (pciio_info->c_vendor);}pciio_device_id_tpciio_info_device_id_get(pciio_info_t pciio_info){    return (pciio_info->c_device);}devfs_handle_tpciio_info_master_get(pciio_info_t pciio_info){    return (pciio_info->c_master);}arbitrary_info_tpciio_info_mfast_get(pciio_info_t pciio_info){    return (pciio_info->c_mfast);}pciio_provider_t       *pciio_info_pops_get(pciio_info_t pciio_info){    return (pciio_info->c_pops);}error_handler_f	       *pciio_info_efunc_get(pciio_info_t pciio_info){    return (pciio_info->c_efunc);}error_handler_arg_t    *pciio_info_einfo_get(pciio_info_t pciio_info){    return (pciio_info->c_einfo);}pciio_space_tpciio_info_bar_space_get(pciio_info_t info, int win){    return info->c_window[win].w_space;}iopaddr_tpciio_info_bar_base_get(pciio_info_t info, int win){    return info->c_window[win].w_base;}size_tpciio_info_bar_size_get(pciio_info_t info, int win){    return info->c_window[win].w_size;}iopaddr_tpciio_info_rom_base_get(pciio_info_t info){    return info->c_rbase;}size_tpciio_info_rom_size_get(pciio_info_t info){    return info->c_rsize;}/* ===================================================================== *          GENERIC PCI INITIALIZATION FUNCTIONS *//* *    pciioinit: called once during device driver *      initializtion if this driver is configured into *      the system. */voidpciio_init(void){    cdl_p                   cp;#if DEBUG && ATTACH_DEBUG    printf("pciio_init\n");#endif    /* Allocate the registry.     * We might already have one.     * If we don't, go get one.     * MPness: someone might have     * set one up for us while we     * were not looking; use an atomic     * compare-and-swap to commit to     * using the new registry if and     * only if nobody else did first.     * If someone did get there first,     * toss the one we allocated back     * into the pool.     */    if (pciio_registry == NULL) {	cp = cdl_new(EDGE_LBL_PCI, "vendor", "device");	if (!compare_and_swap_ptr((void **) &pciio_registry, NULL, (void *) cp)) {	    cdl_del(cp);	}    }    ASSERT(pciio_registry != NULL);}/* *    pciioattach: called for each vertex in the graph *      that is a PCI provider. *//*ARGSUSED */intpciio_attach(devfs_handle_t pciio){#if DEBUG && ATTACH_DEBUG#if defined(SUPPORT_PRINTING_V_FORMAT)    printk("%v: pciio_attach\n", pciio);#else    printk("0x%x: pciio_attach\n", pciio);#endif#endif    return 0;}/* * Associate a set of pciio_provider functions with a vertex. */voidpciio_provider_register(devfs_handle_t provider, pciio_provider_t *pciio_fns){    hwgraph_info_add_LBL(provider, INFO_LBL_PFUNCS, (arbitrary_info_t) pciio_fns);}/* * Disassociate a set of pciio_provider functions with a vertex. */voidpciio_provider_unregister(devfs_handle_t provider){    arbitrary_info_t        ainfo;    hwgraph_info_remove_LBL(provider, INFO_LBL_PFUNCS, (long *) &ainfo);}/* * Obtain a pointer to the pciio_provider functions for a specified Crosstalk * provider. */pciio_provider_t       *pciio_provider_fns_get(devfs_handle_t provider){    arbitrary_info_t        ainfo = 0;    (void) hwgraph_info_get_LBL(provider, INFO_LBL_PFUNCS, &ainfo);    return (pciio_provider_t *) ainfo;}/*ARGSUSED4 */intpciio_driver_register(			 pciio_vendor_id_t vendor_id,			 pciio_device_id_t device_id,			 char *driver_prefix,			 unsigned flags){    /* a driver's init routine might call     * pciio_driver_register before the     * system calls pciio_init; so we     * make the init call ourselves here.     */    if (pciio_registry == NULL)	pciio_init();    return cdl_add_driver(pciio_registry,			  vendor_id, device_id,			  driver_prefix, flags, NULL);}/* * Remove an initialization function. */voidpciio_driver_unregister(			   char *driver_prefix){    /* before a driver calls unregister,     * it must have called register; so     * we can assume we have a registry here.     */    ASSERT(pciio_registry != NULL);    cdl_del_driver(pciio_registry, driver_prefix, NULL);}/*  * Set the slot status for a device supported by the  * driver being registered. */voidpciio_driver_reg_callback(                           devfs_handle_t pconn_vhdl,			   int key1,			   int key2,                           int error){}/*  * Set the slot status for a device supported by the  * driver being unregistered. */voidpciio_driver_unreg_callback(                           devfs_handle_t pconn_vhdl,			   int key1,			   int key2,                           int error){}/* * Call some function with each vertex that * might be one of this driver's attach points. */voidpciio_iterate(char *driver_prefix,	      pciio_iter_f * func){    /* a driver's init routine might call     * pciio_iterate before the     * system calls pciio_init; so we     * make the init call ourselves here.     */    if (pciio_registry == NULL)	pciio_init();    ASSERT(pciio_registry != NULL);    cdl_iterate(pciio_registry, driver_prefix, (cdl_iter_f *) func);}devfs_handle_tpciio_device_register(		devfs_handle_t connectpt,	/* vertex for /hw/.../pciio/%d */		devfs_handle_t master,	/* card's master ASIC (PCI provider) */		pciio_slot_t slot,	/* card's slot */		pciio_function_t func,	/* card's func */		pciio_vendor_id_t vendor_id,		pciio_device_id_t device_id){    return pciio_device_info_register	(connectpt, pciio_device_info_new (NULL, master, slot, func,					   vendor_id, device_id));}voidpciio_device_unregister(devfs_handle_t pconn){    DEV_FUNC(pconn,device_unregister)(pconn);}pciio_info_tpciio_device_info_new(		pciio_info_t pciio_info,		devfs_handle_t master,		pciio_slot_t slot,		pciio_function_t func,		pciio_vendor_id_t vendor_id,		pciio_device_id_t device_id){    if (!pciio_info)	NEW(pciio_info);    ASSERT(pciio_info != NULL);    pciio_info->c_slot = slot;    pciio_info->c_func = func;    pciio_info->c_vendor = vendor_id;    pciio_info->c_device = device_id;    pciio_info->c_master = master;    pciio_info->c_mfast = hwgraph_fastinfo_get(master);    pciio_info->c_pops = pciio_provider_fns_get(master);    pciio_info->c_efunc = 0;    pciio_info->c_einfo = 0;    return pciio_info;}voidpciio_device_info_free(pciio_info_t pciio_info){    /* NOTE : pciio_info is a structure within the pcibr_info     *	      and not a pointer to memory allocated on the heap !!     */    BZERO((char *)pciio_info,sizeof(pciio_info));}devfs_handle_tpciio_device_info_register(		devfs_handle_t connectpt,		/* vertex at center of bus */		pciio_info_t pciio_info)	/* details about the connectpt */{    char		name[32];    devfs_handle_t	pconn;    pciio_slot_func_to_name(name,			    pciio_info->c_slot,			    pciio_info->c_func);    if (GRAPH_SUCCESS !=	hwgraph_path_add(connectpt, name, &pconn))	return pconn;    pciio_info->c_vertex = pconn;    pciio_info_set(pconn, pciio_info);#ifdef BRINGUP    {	int pos;	char dname[256];	pos = devfs_generate_path(pconn, dname, 256);#ifdef DEBUG_PCIIO	printk("%s : pconn path= %s \n", __FUNCTION__, &dname[pos]);#endif    }#endif /* BRINGUP */    /*     * create link to our pci provider     */    device_master_set(pconn, pciio_info->c_master);#if USRPCI    /*     * Call into usrpci provider to let it initialize for     * the given slot.     */    if (pciio_info->c_slot != PCIIO_SLOT_NONE)	usrpci_device_register(pconn, pciio_info->c_master, pciio_info->c_slot);#endif    return pconn;}voidpciio_device_info_unregister(devfs_handle_t connectpt,			     pciio_info_t pciio_info){    char		name[32];    devfs_handle_t	pconn;    if (!pciio_info)	return;    pciio_slot_func_to_name(name,			    pciio_info->c_slot,			    pciio_info->c_func);    hwgraph_edge_remove(connectpt,name,&pconn);    pciio_info_set(pconn,0);    /* Remove the link to our pci provider */    hwgraph_edge_remove(pconn, EDGE_LBL_MASTER, NULL);    hwgraph_vertex_unref(pconn);    hwgraph_vertex_destroy(pconn);    }/* Add the pci card inventory information to the hwgraph */static voidpciio_device_inventory_add(devfs_handle_t pconn_vhdl){    pciio_info_t	pciio_info = pciio_info_get(pconn_vhdl);    ASSERT(pciio_info);    ASSERT(pciio_info->c_vertex == pconn_vhdl);    /* Donot add inventory  for non-existent devices */    if ((pciio_info->c_vendor == PCIIO_VENDOR_ID_NONE)	||	(pciio_info->c_device == PCIIO_DEVICE_ID_NONE))	return;    device_inventory_add(pconn_vhdl,INV_IOBD,INV_PCIADAP,			 pciio_info->c_vendor,pciio_info->c_device,			 pciio_info->c_slot);}static voidpciio_device_inventory_remove(devfs_handle_t pconn_vhdl){#ifdef LATER    hwgraph_inventory_remove(pconn_vhdl,-1,-1,-1,-1,-1);#endif}/*ARGSUSED */intpciio_device_attach(devfs_handle_t pconn,		    int          drv_flags){    pciio_info_t            pciio_info;    pciio_vendor_id_t       vendor_id;    pciio_device_id_t       device_id;    int pciba_attach(devfs_handle_t);    pciio_device_inventory_add(pconn);    pciio_info = pciio_info_get(pconn);    vendor_id = pciio_info->c_vendor;    device_id = pciio_info->c_device;    /* we don't start attaching things until     * all the driver init routines (including     * pciio_init) have been called; so we     * can assume here that we have a registry.     */    ASSERT(pciio_registry != NULL);    /*     * Since pciba is not called from cdl routines .. call it here.     */    pciba_attach(pconn);    return(cdl_add_connpt(pciio_registry, vendor_id, device_id, pconn, drv_flags));}intpciio_device_detach(devfs_handle_t pconn,		    int          drv_flags){    pciio_info_t            pciio_info;    pciio_vendor_id_t       vendor_id;    pciio_device_id_t       device_id;    pciio_device_inventory_remove(pconn);    pciio_info = pciio_info_get(pconn);    vendor_id = pciio_info->c_vendor;    device_id = pciio_info->c_device;    /* we don't start attaching things until     * all the driver init routines (including     * pciio_init) have been called; so we     * can assume here that we have a registry.     */    ASSERT(pciio_registry != NULL);    return(cdl_del_connpt(pciio_registry, vendor_id, device_id,		          pconn, drv_flags));}/* * pciio_error_register: * arrange for a function to be called with * a specified first parameter plus other * information when an error is encountered * and traced to the pci slot corresponding * to the connection point pconn. * * may also be called with a null function * pointer to "unregister" the error handler. * * NOTE: subsequent calls silently overwrite * previous data for this vertex. We assume that * cooperating drivers, well, cooperate ... */voidpciio_error_register(devfs_handle_t pconn,		     error_handler_f *efunc,		     error_handler_arg_t einfo){    pciio_info_t            pciio_info;    pciio_info = pciio_info_get(pconn);    ASSERT(pciio_info != NULL);    pciio_info->c_efunc = efunc;    pciio_info->c_einfo = einfo;}/* * Check if any device has been found in this slot, and return * true or false * vhdl is the vertex for the slot */intpciio_slot_inuse(devfs_handle_t pconn_vhdl){    pciio_info_t            pciio_info = pciio_info_get(pconn_vhdl);    ASSERT(pciio_info);    ASSERT(pciio_info->c_vertex == pconn_vhdl);    if (pciio_info->c_vendor) {	/*	 * Non-zero value for vendor indicate	 * a board being found in this slot.	 */	return 1;    }    return 0;}intpciio_dma_enabled(devfs_handle_t pconn_vhdl){	return DEV_FUNC(pconn_vhdl, dma_enabled)(pconn_vhdl);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
热久久免费视频| 欧美精品18+| 91精品国产91久久久久久最新毛片| 国产精品乱码人人做人人爱 | 国产成人精品午夜视频免费| 在线观看精品一区| 国产免费观看久久| 日韩激情视频网站| 一本色道a无线码一区v| 久久久精品国产免大香伊| 午夜久久久影院| 在线观看不卡视频| 国产精品成人免费| 高清不卡在线观看| 欧美xxxxxxxxx| 三级精品在线观看| 欧美军同video69gay| 亚洲美女在线一区| 91免费版pro下载短视频| 亚洲国产高清在线| 粉嫩av一区二区三区| 欧美videossexotv100| 亚洲va欧美va人人爽| 欧美性欧美巨大黑白大战| 亚洲欧美另类在线| av电影在线不卡| 国产欧美日韩视频一区二区| 国产成人av电影| 久久精品一区八戒影视| 激情文学综合丁香| 久久亚洲春色中文字幕久久久| 久久国产精品99久久人人澡| 91精品国产全国免费观看| 免费在线看一区| 欧美一区二区三区在| 蜜臀av性久久久久蜜臀av麻豆| 日韩色在线观看| 日韩va欧美va亚洲va久久| 欧美一区2区视频在线观看| 日韩电影在线免费| 欧美xingq一区二区| 国产成人精品www牛牛影视| 中文字幕的久久| 色偷偷久久一区二区三区| 亚洲国产精品综合小说图片区| 欧美无乱码久久久免费午夜一区| 亚洲第一综合色| 日韩三级精品电影久久久| 国产在线观看免费一区| 国产精品久久久久婷婷二区次| 97精品超碰一区二区三区| 亚洲精品久久嫩草网站秘色| 欧美视频一区在线| 免费在线观看视频一区| 国产欧美精品一区aⅴ影院| jiyouzz国产精品久久| 亚洲免费在线看| 91精品国产高清一区二区三区 | 亚洲午夜精品网| 日韩无一区二区| av激情综合网| 婷婷久久综合九色综合伊人色| 精品国产人成亚洲区| 99久久精品国产导航| 天堂在线亚洲视频| 国产人久久人人人人爽| 欧美性感一区二区三区| 免费欧美在线视频| 中文字幕一区三区| 日韩欧美高清dvd碟片| 成人国产精品视频| 亚洲高清视频在线| 欧美一区二区三区日韩视频| 成人av先锋影音| 一区二区三区成人在线视频| 精品国产乱码久久久久久蜜臀| www.亚洲精品| 最新国产の精品合集bt伙计| 欧美一区三区二区| 岛国av在线一区| 奇米色一区二区三区四区| 1区2区3区欧美| 日韩欧美一卡二卡| 欧美色综合网站| 91免费版在线| 国产成+人+日韩+欧美+亚洲| 亚洲丰满少妇videoshd| 欧美激情一区二区在线| 精品黑人一区二区三区久久| 精品视频全国免费看| 99在线精品观看| 从欧美一区二区三区| 久久精品国产精品青草| 亚洲bt欧美bt精品| 亚洲天堂网中文字| 欧美国产一区二区在线观看| 精品国内二区三区| 欧美一级理论片| 欧美区在线观看| 欧美四级电影在线观看| 91视频精品在这里| 99精品国产视频| 成人午夜视频网站| 岛国av在线一区| 岛国一区二区在线观看| 国产精品一区二区三区99| 麻豆91精品91久久久的内涵| 日本视频免费一区| 丝袜国产日韩另类美女| 日韩精品欧美成人高清一区二区| 夜色激情一区二区| 亚洲精品日韩综合观看成人91| 国产精品成人一区二区三区夜夜夜| 欧美激情一区二区三区在线| 国产精品水嫩水嫩| 国产精品水嫩水嫩| ...av二区三区久久精品| 国产精品无码永久免费888| 国产精品白丝在线| 一区二区三区加勒比av| 一区二区三区在线影院| 亚洲超丰满肉感bbw| 日日夜夜精品视频免费| 蜜桃视频在线观看一区二区| 国内精品写真在线观看| 成人h动漫精品一区二区| 色综合婷婷久久| 欧美日韩成人一区二区| 日韩欧美在线影院| 国产亚洲1区2区3区| 亚洲欧洲精品一区二区精品久久久 | 欧美写真视频网站| 5566中文字幕一区二区电影| 精品国免费一区二区三区| 国产视频视频一区| 亚洲免费观看高清在线观看| 亚洲成人精品一区二区| 免费日韩伦理电影| 成人午夜激情在线| 欧美在线999| 精品国产电影一区二区| 中文字幕一区二区三区不卡在线| 亚洲制服丝袜在线| 国产一区二区三区不卡在线观看 | 激情综合网天天干| 99re成人在线| 日韩欧美久久久| 国产精品萝li| 青娱乐精品视频在线| av亚洲产国偷v产偷v自拍| 欧美日韩不卡在线| 欧美高清在线一区二区| 天涯成人国产亚洲精品一区av| 国产露脸91国语对白| 欧美日韩精品欧美日韩精品一 | 亚洲免费三区一区二区| 偷拍日韩校园综合在线| 国产精品99久久久久久有的能看| 91视频免费观看| 久久男人中文字幕资源站| 亚洲愉拍自拍另类高清精品| 国产精品99久久久| 欧美精三区欧美精三区| 专区另类欧美日韩| 玖玖九九国产精品| 欧美日韩精品一区二区| 国产精品久久福利| 久久99精品一区二区三区三区| 日本福利一区二区| 日本一区二区免费在线 | 日韩欧美亚洲国产精品字幕久久久| 中文字幕一区二区三区不卡| 免费高清视频精品| 欧美性大战久久久久久久蜜臀 | 波多野结衣中文字幕一区二区三区| 91精品啪在线观看国产60岁| 一区二区三区中文免费| 从欧美一区二区三区| www国产精品av| 久久精品理论片| 91麻豆精品国产91久久久 | 亚洲三级电影全部在线观看高清| 国产在线精品一区二区| 欧美一区二区精品在线| 亚洲午夜久久久久久久久电影网| 成人激情小说网站| 国产精品美女久久久久久久网站| 国产一区在线观看麻豆| 精品国产凹凸成av人网站| 日本亚洲免费观看| 7799精品视频| 男人的j进女人的j一区| 51精品国自产在线| 首页国产欧美久久| 欧美色图12p| 亚洲大片精品永久免费| 欧洲色大大久久| 午夜av一区二区| 制服.丝袜.亚洲.另类.中文| 日韩国产欧美在线观看|