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

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

?? blkif.c

?? xen 3.2.2 源碼
?? C
字號:
/* * tools/blktap_user/blkif.c *  * The blkif interface for blktap.  A blkif describes an in-use virtual disk. * (c) 2005 Andrew Warfield and Julian Chesterfield * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version 2 * as published by the Free Software Foundation; or, when distributed * separately from the Linux kernel or incorporated into other * software packages, subject to the following license: * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this source file (the "Software"), to deal in the Software without * restriction, including without limitation the rights to use, copy, modify, * merge, publish, distribute, sublicense, and/or sell copies of the Software, * and to permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * IN THE SOFTWARE. */#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <string.h>#include <err.h>#include <unistd.h>#include "blktaplib.h"#if 0#define DPRINTF(_f, _a...) printf ( _f , ## _a )#else#define DPRINTF(_f, _a...) ((void)0)#endif#define BLKIF_HASHSZ 1024#define BLKIF_HASH(_d,_h) (((int)(_d)^(int)(_h))&(BLKIF_HASHSZ-1))static blkif_t      *blkif_hash[BLKIF_HASHSZ];blkif_t *blkif_find_by_handle(domid_t domid, unsigned int handle){	blkif_t *blkif = blkif_hash[BLKIF_HASH(domid, handle)];	while ( (blkif != NULL) && 		((blkif->domid != domid) || (blkif->handle != handle)) )		blkif = blkif->hash_next;	return blkif;}blkif_t *alloc_blkif(domid_t domid){	blkif_t *blkif;	DPRINTF("Alloc_blkif called [%d]\n",domid);	blkif = (blkif_t *)malloc(sizeof(blkif_t));	if (!blkif)		return NULL;	memset(blkif, 0, sizeof(*blkif));	blkif->domid = domid;	blkif->devnum = -1;	return blkif;}/*Controller callbacks*/static int (*new_devmap_hook)(blkif_t *blkif) = NULL;void register_new_devmap_hook(int (*fn)(blkif_t *blkif)){	new_devmap_hook = fn;}static int (*new_unmap_hook)(blkif_t *blkif) = NULL;void register_new_unmap_hook(int (*fn)(blkif_t *blkif)){	new_unmap_hook = fn;}static int (*new_blkif_hook)(blkif_t *blkif) = NULL;void register_new_blkif_hook(int (*fn)(blkif_t *blkif)){	new_blkif_hook = fn;}int blkif_init(blkif_t *blkif, long int handle, long int pdev,                long int readonly){	domid_t domid;	blkif_t **pblkif;	int devnum;		if (blkif == NULL)		return -EINVAL;		domid = blkif->domid;	blkif->handle   = handle;	blkif->pdev     = pdev;	blkif->readonly = readonly;		/*	 * Call out to the new_blkif_hook. 	 * The tap application should define this,	 * and it should return having set blkif->ops	 * 	 */	if (new_blkif_hook == NULL)	{		DPRINTF("Probe detected a new blkif, but no new_blkif_hook!");		return -1;	}	if (new_blkif_hook(blkif)!=0) {		DPRINTF("BLKIF: Image open failed\n");		return -1;	}		/* Now wire it in. */	pblkif = &blkif_hash[BLKIF_HASH(domid, handle)];	DPRINTF("Created hash entry: %d [%d,%ld]\n", 		BLKIF_HASH(domid, handle), domid, handle);		while ( *pblkif != NULL )	{		if ( ((*pblkif)->domid == domid) && 		     ((*pblkif)->handle == handle) )		{			DPRINTF("Could not create blkif: already exists\n");			return -1;		}		pblkif = &(*pblkif)->hash_next;	}	blkif->hash_next = NULL;	*pblkif = blkif;		if (new_devmap_hook == NULL)	{		DPRINTF("Probe setting up new blkif but no devmap hook!");		return -1;	}		devnum = new_devmap_hook(blkif);	if (devnum == -1)		return -1;	blkif->devnum = devnum;		return 0;}void free_blkif(blkif_t *blkif){	blkif_t **pblkif, *curs;	image_t *image;		pblkif = &blkif_hash[BLKIF_HASH(blkif->domid, blkif->handle)];	while ( (curs = *pblkif) != NULL )	{		if ( blkif == curs )		{			*pblkif = curs->hash_next;		}		pblkif = &curs->hash_next;	}	if (blkif != NULL) {		if ((image=(image_t *)blkif->prv)!=NULL) {			free(blkif->prv);		}		if (blkif->info!=NULL) {			free(blkif->info);		}		if (new_unmap_hook != NULL) new_unmap_hook(blkif);		free(blkif);	}}void __init_blkif(void){    	memset(blkif_hash, 0, sizeof(blkif_hash));}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美四级电影在线观看| 免费成人性网站| 99免费精品视频| ...av二区三区久久精品| 国产日韩欧美激情| 精品国产一区二区三区四区四 | 久久精品亚洲国产奇米99| 成人污视频在线观看| 97se亚洲国产综合自在线观| 高清不卡一区二区| 欧美精品久久天天躁| 91性感美女视频| 在线观看91精品国产麻豆| 美国一区二区三区在线播放| 精品处破学生在线二十三| 国产一区二区三区在线观看精品| 精品99久久久久久| av在线一区二区三区| 亚洲欧美日韩国产成人精品影院 | 麻豆一区二区在线| 国产三级三级三级精品8ⅰ区| 91在线精品秘密一区二区| 亚洲已满18点击进入久久| 欧美福利视频一区| 国产成人午夜电影网| 国产精品乱码一区二三区小蝌蚪| 国产精品91一区二区| 欧美精品一区二区三区高清aⅴ| 国产成人亚洲综合a∨婷婷| 精品国产伦一区二区三区观看方式| 亚洲成人777| 久久亚洲精华国产精华液| 9色porny自拍视频一区二区| 亚洲成人一区在线| 久久久综合网站| 欧美日韩一区三区四区| 国产精品12区| 日本伊人色综合网| 亚洲欧美日韩在线播放| 精品国产不卡一区二区三区| 色婷婷国产精品久久包臀| 国产综合色精品一区二区三区| 一区二区三区丝袜| 国产日韩欧美一区二区三区乱码| 欧美日韩久久不卡| 99热这里都是精品| 国产成人亚洲综合a∨婷婷| 日本亚洲最大的色成网站www| 亚洲免费av高清| 久久久国产综合精品女国产盗摄| 欧美无人高清视频在线观看| 丁香婷婷综合激情五月色| 日韩有码一区二区三区| 国产综合色在线| 国产欧美一区二区在线| 日韩欧美一级二级| 狠狠狠色丁香婷婷综合久久五月| 久久免费午夜影院| 91超碰这里只有精品国产| 亚洲国产裸拍裸体视频在线观看乱了| 国产成人av一区二区| 中文字幕视频一区二区三区久| 丁香另类激情小说| 久久不见久久见中文字幕免费| 欧美一区午夜精品| 在线观看亚洲精品| 成人av在线一区二区三区| 久久福利视频一区二区| 日韩不卡手机在线v区| 亚洲一区在线观看免费| 日韩美女精品在线| 国产精品久久久久影视| 国产亚洲欧美激情| 久久久精品影视| 亚洲精品在线观| 久久久亚洲欧洲日产国码αv| 3atv在线一区二区三区| 欧美久久婷婷综合色| 欧美日韩国产在线观看| 欧美理论电影在线| 3d成人动漫网站| 日韩欧美高清一区| 337p粉嫩大胆色噜噜噜噜亚洲| 日韩欧美的一区| 日韩精品一区二区三区蜜臀| 精品日韩99亚洲| 久久这里只精品最新地址| 久久久午夜电影| 国产欧美精品在线观看| 国产精品麻豆一区二区| 亚洲视频图片小说| 亚洲一区二区精品视频| 爽好久久久欧美精品| 麻豆91免费观看| 国产老女人精品毛片久久| 成人免费视频国产在线观看| www.亚洲免费av| 在线观看三级视频欧美| 在线不卡中文字幕播放| 2021国产精品久久精品| 国产精品久久久久久久蜜臀| 亚洲欧美日韩国产手机在线 | 国产99久久久久久免费看农村| 国产成人午夜视频| 欧洲精品视频在线观看| 91精品国产综合久久久久久漫画| 欧美成人一区二区三区片免费| 国产亚洲欧美在线| 一区二区三区不卡视频在线观看| 日韩极品在线观看| 国产乱色国产精品免费视频| av电影在线观看完整版一区二区| 亚洲一区二区黄色| 久久精品国产精品青草| 国产日韩高清在线| 自拍偷拍欧美激情| 亚洲成av人片在线| 精东粉嫩av免费一区二区三区| 91福利国产精品| 日韩免费看的电影| 136国产福利精品导航| 亚洲成在线观看| 国产专区欧美精品| 91精品国产综合久久福利软件 | 欧美色成人综合| 欧美mv日韩mv| 一区二区免费在线| 激情深爱一区二区| 欧美日韩综合色| 中文字幕av一区二区三区| 日韩和欧美一区二区| 粉嫩aⅴ一区二区三区四区五区| 欧美日韩第一区日日骚| 欧美激情自拍偷拍| 青青草97国产精品免费观看无弹窗版| 成人一区二区三区| 日韩三级av在线播放| 亚洲精品久久久久久国产精华液| 美女国产一区二区三区| 99热精品一区二区| 日韩欧美一区二区视频| 一区二区三区中文在线观看| 国产一区二区三区免费观看| 欧美久久一二三四区| 18成人在线观看| 大美女一区二区三区| 欧美va在线播放| 亚洲成人激情av| 色婷婷精品大视频在线蜜桃视频| 国产拍揄自揄精品视频麻豆| 蜜臀av一区二区三区| 欧美视频一区二区三区在线观看| 欧美激情综合在线| 国产乱人伦偷精品视频不卡| 91精品国产综合久久久蜜臀粉嫩| 亚洲午夜在线视频| 日本韩国精品一区二区在线观看| 国产精品午夜久久| 激情小说欧美图片| 日韩三级视频中文字幕| 日本人妖一区二区| 欧美日韩综合在线| 亚洲高清免费在线| 欧美日韩一区三区| 亚洲成人在线免费| 777精品伊人久久久久大香线蕉| 亚洲伊人色欲综合网| 91久久精品午夜一区二区| 亚洲视频在线一区观看| hitomi一区二区三区精品| 国产精品国产三级国产| 成人手机电影网| 136国产福利精品导航| 91久久奴性调教| 亚洲国产人成综合网站| 8v天堂国产在线一区二区| 自拍偷拍欧美精品| 国产精品成人一区二区艾草 | 欧美成人高清电影在线| 91久久线看在观草草青青| 日本高清免费不卡视频| 美女视频一区二区三区| 亚洲午夜精品网| 国产色产综合色产在线视频| av一二三不卡影片| 欧美经典一区二区| 精品福利av导航| 精品视频在线免费看| 69堂精品视频| 美女一区二区久久| 欧美刺激脚交jootjob| 久久国产尿小便嘘嘘| 日韩欧美国产一区二区在线播放| 青青草国产精品亚洲专区无| 欧美一级欧美三级| 国产一区二区三区四 | 色老综合老女人久久久| 18成人在线观看| 不卡影院免费观看| 石原莉奈一区二区三区在线观看|