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

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

?? isapnp_proc.c

?? mgcp協議源代碼。支持多種編碼:g711
?? C
?? 第 1 頁 / 共 2 頁
字號:
	for (i = next = 0; i < 2; i++) {		tmp = isapnp_read_word(ISAPNP_CFG_IRQ + (i << 1));		if (!(tmp >> 8))			continue;		if (!next) {			isapnp_printf(buffer, "%sActive IRQ ", space);			next = 1;		}		isapnp_printf(buffer, "%s%i", i > 0 ? "," : "", tmp >> 8);		if (tmp & 0xff)			isapnp_printf(buffer, " [0x%x]", tmp & 0xff);	}	if (next)		isapnp_printf(buffer, "\n");	for (i = next = 0; i < 2; i++) {		tmp = isapnp_read_byte(ISAPNP_CFG_DMA + i);		if (tmp == 4)			continue;		if (!next) {			isapnp_printf(buffer, "%sActive DMA ", space);			next = 1;		}		isapnp_printf(buffer, "%s%i", i > 0 ? "," : "", tmp);	}	if (next)		isapnp_printf(buffer, "\n");	for (i = next = 0; i < 4; i++) {		tmp = isapnp_read_dword(ISAPNP_CFG_MEM + (i << 3));		if (!tmp)			continue;		if (!next) {			isapnp_printf(buffer, "%sActive memory ", space);			next = 1;		}		isapnp_printf(buffer, "%s0x%x", i > 0 ? "," : "", tmp);	}	if (next)		isapnp_printf(buffer, "\n");	isapnp_cfg_end();}static void isapnp_print_device(isapnp_info_buffer_t *buffer, struct pnp_dev *dev){	int block, block1;	char *space = "    ";	struct isapnp_resources *res, *resa;	if (!dev)		return;	isapnp_printf(buffer, "  Logical device %i '", dev->devfn);	isapnp_print_devid(buffer, dev->vendor, dev->device);	isapnp_printf(buffer, ":%s'", dev->name[0]?dev->name:"Unknown");	isapnp_printf(buffer, "\n");#if 0	isapnp_cfg_begin(dev->bus->number, dev->devfn);	for (block = 0; block < 128; block++)		if ((block % 16) == 15)			isapnp_printf(buffer, "%02x\n", isapnp_read_byte(block));		else			isapnp_printf(buffer, "%02x:", isapnp_read_byte(block));	isapnp_cfg_end();#endif	if (dev->regs)		isapnp_printf(buffer, "%sSupported registers 0x%x\n", space, dev->regs);	isapnp_print_compatible(buffer, dev);	isapnp_print_configuration(buffer, dev);	for (res = (struct isapnp_resources *)dev->sysdata, block = 0; res; res = res->next, block++) {		isapnp_printf(buffer, "%sResources %i\n", space, block);		isapnp_print_resources(buffer, "      ", res);		for (resa = res->alt, block1 = 1; resa; resa = resa->alt, block1++) {			isapnp_printf(buffer, "%s  Alternate resources %i:%i\n", space, block, block1);			isapnp_print_resources(buffer, "        ", resa);		}	}}/* *  Main read routine */ static void isapnp_info_read(isapnp_info_buffer_t *buffer){	struct pnp_bus *card;	struct pnp_dev *dev;		for (card = isapnp_cards; card;              card = card->next) {		isapnp_printf(buffer, "Card %i '", card->number);		isapnp_print_devid(buffer, card->vendor, card->device);		isapnp_printf(buffer, ":%s'", card->name[0]?card->name:"Unknown");		if (card->pnpver)			isapnp_printf(buffer, " PnP version %x.%x", card->pnpver >> 4, card->pnpver & 0x0f);		if (card->productver)			isapnp_printf(buffer, " Product version %x.%x", card->productver >> 4, card->productver & 0x0f);		isapnp_printf(buffer,"\n");		for (dev = card->devices; dev; dev = dev->sibling)			isapnp_print_device(buffer, dev);	}}/* * */static struct pnp_bus *isapnp_info_card;static struct pnp_dev *isapnp_info_device;static char *isapnp_get_str(char *dest, char *src, int len){	int c;	while (*src == ' ' || *src == '\t')		src++;	if (*src == '"' || *src == '\'') {		c = *src++;		while (--len > 0 && *src && *src != c) {			*dest++ = *src++;		}		if (*src == c)			src++;	} else {		while (--len > 0 && *src && *src != ' ' && *src != '\t') {			*dest++ = *src++;		}	}	*dest = 0;	while (*src == ' ' || *src == '\t')		src++;	return src;}static unsigned char isapnp_get_hex(unsigned char c){	if (c >= '0' || c <= '9')		return c - '0';	if (c >= 'a' || c <= 'f')		return (c - 'a') + 10;	if (c >= 'A' || c <= 'F')		return (c - 'A') + 10;	return 0;}static unsigned int isapnp_parse_id(const char *id){	if (strlen(id) != 7) {		printk("isapnp: wrong PnP ID\n");		return 0;	}	return (ISAPNP_VENDOR(id[0], id[1], id[2])<<16) |			(isapnp_get_hex(id[3])<<4) |			(isapnp_get_hex(id[4])<<0) |			(isapnp_get_hex(id[5])<<12) |			(isapnp_get_hex(id[6])<<8);}static int isapnp_set_card(char *line){	int idx, idx1;	unsigned int id;	char index[16], value[32];	isapnp_info_card = NULL;	line = isapnp_get_str(index, line, sizeof(index));	isapnp_get_str(value, line, sizeof(value));	idx = idx1 = simple_strtoul(index, NULL, 0);	id = isapnp_parse_id(value);	isapnp_info_card = isapnp_find_card(id >> 16, id & 0xffff, NULL);	while (isapnp_info_card && idx1-- > 0)		isapnp_info_card = isapnp_find_card(id >> 16, id & 0xffff, isapnp_info_card);	if (isapnp_info_card == NULL) {		printk("isapnp: card '%s' order %i not found\n", value, idx);		return 1;	}	if (isapnp_cfg_begin(isapnp_info_card->number, -1)<0) {		printk("isapnp: configuration start sequence for device '%s' failed\n", value);		isapnp_info_card = NULL;		return 1;	}	return 0;}static int isapnp_select_csn(char *line){	int csn;	char index[16], value[32];	isapnp_info_device = NULL;	isapnp_get_str(index, line, sizeof(index));	csn = simple_strtoul(index, NULL, 0);	for (isapnp_info_card = isapnp_cards; isapnp_info_card; isapnp_info_card = isapnp_info_card->next)		if (isapnp_info_card->number == csn)			break;	if (isapnp_info_card == NULL) {		printk("isapnp: cannot find CSN %i\n", csn);		return 1;	}	if (isapnp_cfg_begin(isapnp_info_card->number, -1)<0) {		printk("isapnp: configuration start sequence for device '%s' failed\n", value);		isapnp_info_card = NULL;		return 1;	}	return 0;}static int isapnp_set_device(char *line){	int idx, idx1;	unsigned int id;	char index[16], value[32];	line = isapnp_get_str(index, line, sizeof(index));	isapnp_get_str(value, line, sizeof(value));	idx = idx1 = simple_strtoul(index, NULL, 0);	id = isapnp_parse_id(value);	isapnp_info_device = isapnp_find_dev(isapnp_info_card, id >> 16, id & 0xffff, NULL);	while (isapnp_info_device && idx-- > 0)		isapnp_info_device = isapnp_find_dev(isapnp_info_card, id >> 16, id & 0xffff, isapnp_info_device);	if (isapnp_info_device == NULL) {		printk("isapnp: device '%s' order %i not found\n", value, idx);		return 1;	}	isapnp_device(isapnp_info_device->devfn);	return 0;}static int isapnp_autoconfigure(void){	if (isapnp_info_device == NULL) {		printk("isapnp: device is not set\n");		return 0;	}	if (isapnp_info_device->active)		isapnp_info_device->deactivate(isapnp_info_device);	if (isapnp_info_device->prepare(isapnp_info_device) < 0) {		printk("isapnp: cannot prepare device for the activation");		return 0;	}	if (isapnp_info_device->activate(isapnp_info_device) < 0) {		printk("isapnp: cannot activate device");		return 0;	}	return 0;}static int isapnp_set_port(char *line){	int idx, port;	char index[16], value[32];	line = isapnp_get_str(index, line, sizeof(index));	isapnp_get_str(value, line, sizeof(value));	idx = simple_strtoul(index, NULL, 0);	port = simple_strtoul(value, NULL, 0);	if (idx < 0 || idx > 7) {		printk("isapnp: wrong port index %i\n", idx);		return 1;	}	if (port < 0 || port > 0xffff) {		printk("isapnp: wrong port value 0x%x\n", port);		return 1;	}	isapnp_write_word(ISAPNP_CFG_PORT + (idx << 1), port);	if (!isapnp_info_device->resource[idx].flags)		return 0;	if (isapnp_info_device->resource[idx].flags & IORESOURCE_AUTO) {		isapnp_info_device->resource[idx].start = port;		isapnp_info_device->resource[idx].end += port - 1;		isapnp_info_device->resource[idx].flags &= ~IORESOURCE_AUTO;	} else {		isapnp_info_device->resource[idx].end -= isapnp_info_device->resource[idx].start;		isapnp_info_device->resource[idx].start = port;		isapnp_info_device->resource[idx].end += port;	}	return 0;}static void isapnp_set_irqresource(struct resource *res, int irq){	res->start = res->end = irq;	res->flags = IORESOURCE_IRQ;} static int isapnp_set_irq(char *line){	int idx, irq;	char index[16], value[32];	line = isapnp_get_str(index, line, sizeof(index));	isapnp_get_str(value, line, sizeof(value));	idx = simple_strtoul(index, NULL, 0);	irq = simple_strtoul(value, NULL, 0);	if (idx < 0 || idx > 1) {		printk("isapnp: wrong IRQ index %i\n", idx);		return 1;	}	if (irq == 2)		irq = 9;	if (irq < 0 || irq > 15) {		printk("isapnp: wrong IRQ value %i\n", irq);		return 1;	}	isapnp_write_byte(ISAPNP_CFG_IRQ + (idx << 1), irq);	isapnp_set_irqresource(isapnp_info_device->irq_resource + idx, irq);	return 0;} static void isapnp_set_dmaresource(struct resource *res, int dma){	res->start = res->end = dma;	res->flags = IORESOURCE_DMA;} static int isapnp_set_dma(char *line){	int idx, dma;	char index[16], value[32];	line = isapnp_get_str(index, line, sizeof(index));	isapnp_get_str(value, line, sizeof(value));	idx = simple_strtoul(index, NULL, 0);	dma = simple_strtoul(value, NULL, 0);	if (idx < 0 || idx > 1) {		printk("isapnp: wrong DMA index %i\n", idx);		return 1;	}	if (dma < 0 || dma > 7) {		printk("isapnp: wrong DMA value %i\n", dma);		return 1;	}	isapnp_write_byte(ISAPNP_CFG_DMA + idx, dma);	isapnp_set_dmaresource(isapnp_info_device->dma_resource + idx, dma);	return 0;} static int isapnp_set_mem(char *line){	int idx;	unsigned int mem;	char index[16], value[32];	line = isapnp_get_str(index, line, sizeof(index));	isapnp_get_str(value, line, sizeof(value));	idx = simple_strtoul(index, NULL, 0);	mem = simple_strtoul(value, NULL, 0);	if (idx < 0 || idx > 3) {		printk("isapnp: wrong memory index %i\n", idx);		return 1;	}	mem >>= 8;	isapnp_write_word(ISAPNP_CFG_MEM + (idx<<2), mem & 0xffff);	if (!isapnp_info_device->resource[idx + 8].flags)		return 0;	if (isapnp_info_device->resource[idx + 8].flags & IORESOURCE_AUTO) {		isapnp_info_device->resource[idx + 8].start = mem & ~0x00ffff00;		isapnp_info_device->resource[idx + 8].end += (mem & ~0x00ffff00) - 1;		isapnp_info_device->resource[idx + 8].flags &= ~IORESOURCE_AUTO;	} else {		isapnp_info_device->resource[idx + 8].end -= isapnp_info_device->resource[idx + 8].start;		isapnp_info_device->resource[idx + 8].start = mem & ~0x00ffff00;		isapnp_info_device->resource[idx + 8].end += mem & ~0x00ffff00;	}	return 0;} static int isapnp_poke(char *line, int what){	int reg;	unsigned int val;	char index[16], value[32];	line = isapnp_get_str(index, line, sizeof(index));	isapnp_get_str(value, line, sizeof(value));	reg = simple_strtoul(index, NULL, 0);	val = simple_strtoul(value, NULL, 0);	if (reg < 0 || reg > 127) {		printk("isapnp: wrong register %i\n", reg);		return 1;	}	switch (what) {	case 1:		isapnp_write_word(reg, val);		break;	case 2:		isapnp_write_dword(reg, val);		break;	default:		isapnp_write_byte(reg, val);		break;	}	return 0;} static int isapnp_decode_line(char *line){	char cmd[32];	line = isapnp_get_str(cmd, line, sizeof(cmd));	if (!strcmp(cmd, "card"))		return isapnp_set_card(line);	if (!strcmp(cmd, "csn"))		return isapnp_select_csn(line);	if (!isapnp_info_card) {		printk("isapnp: card is not selected\n");		return 1;	}	if (!strncmp(cmd, "dev", 3))		return isapnp_set_device(line);	if (!isapnp_info_device) {		printk("isapnp: device is not selected\n");		return 1;	}	if (!strncmp(cmd, "auto", 4))		return isapnp_autoconfigure();	if (!strncmp(cmd, "act", 3)) {		isapnp_activate(isapnp_info_device->devfn);		isapnp_info_device->active = 1;		return 0;	}	if (!strncmp(cmd, "deact", 5)) {		isapnp_deactivate(isapnp_info_device->devfn);		isapnp_info_device->active = 0;		return 0;	}	if (!strcmp(cmd, "port"))		return isapnp_set_port(line);	if (!strcmp(cmd, "irq"))		return isapnp_set_irq(line);	if (!strcmp(cmd, "dma"))		return isapnp_set_dma(line);	if (!strncmp(cmd, "mem", 3))		return isapnp_set_mem(line);	if (!strcmp(cmd, "poke"))		return isapnp_poke(line, 0);	if (!strcmp(cmd, "pokew"))		return isapnp_poke(line, 1);	if (!strcmp(cmd, "poked"))		return isapnp_poke(line, 2);	printk("isapnp: wrong command '%s'\n", cmd);	return 1;}/* *  Main write routine */static void isapnp_info_write(isapnp_info_buffer_t *buffer){	int c, idx, idx1 = 0;	char line[128];	if (buffer->size <= 0)		return;	isapnp_info_card = NULL;	isapnp_info_device = NULL;	for (idx = 0; idx < buffer->size; idx++) {		c = buffer->buffer[idx];		if (c == '\n') {			line[idx1] = '\0';			if (line[0] != '#') {				if (isapnp_decode_line(line))					goto __end;			}			idx1 = 0;			continue;		}		if (idx1 >= sizeof(line)-1) {			printk("isapnp: line too long, aborting\n");			return;		}		line[idx1++] = c;	}      __end:	if (isapnp_info_card)		isapnp_cfg_end();}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
a4yy欧美一区二区三区| 欧美一区二区福利视频| 欧美精品在线观看一区二区| 精品国产伦理网| 亚洲一区影音先锋| 国产精品99久久久久久似苏梦涵 | 欧美在线观看一二区| 精品久久久久久久久久久院品网| 亚洲欧美日韩国产中文在线| 久99久精品视频免费观看| 色综合久久天天| 国产亚洲欧美激情| 久久国产精品72免费观看| 欧美综合在线视频| 亚洲欧美日韩在线| 成人不卡免费av| 国产亚洲欧洲一区高清在线观看| 婷婷久久综合九色综合绿巨人 | 久久99最新地址| 欧美日韩一区在线观看| 久久丁香综合五月国产三级网站 | 成人免费毛片a| 成人毛片老司机大片| 色999日韩国产欧美一区二区| www精品美女久久久tv| 男男视频亚洲欧美| 欧美日韩免费视频| 亚洲国产日产av| 欧美亚洲综合色| 亚洲女女做受ⅹxx高潮| 91免费看片在线观看| 日韩一区日韩二区| 91片黄在线观看| 亚洲人成在线播放网站岛国| 成人丝袜18视频在线观看| 国产日韩欧美一区二区三区综合| 久久66热偷产精品| 国产午夜精品福利| 国产91色综合久久免费分享| 中文av一区二区| 91在线国产福利| 亚洲老妇xxxxxx| 欧美性色欧美a在线播放| 亚洲一区二区三区四区在线免费观看| 欧洲亚洲国产日韩| 日韩福利视频网| 精品乱码亚洲一区二区不卡| 黑人巨大精品欧美黑白配亚洲| 精品国产99国产精品| 国产成a人亚洲精品| 国产精品久久久久久亚洲伦| 91麻豆成人久久精品二区三区| 一区二区三区四区乱视频| 欧美美女bb生活片| 久久99深爱久久99精品| 国产精品三级av| 欧美性受xxxx| 狂野欧美性猛交blacked| 国产亚洲精品aa| 色播五月激情综合网| 午夜欧美在线一二页| 欧美电视剧在线看免费| 成人在线视频首页| 亚洲精品水蜜桃| 日韩久久久精品| www.日韩av| 日日夜夜免费精品| 国产婷婷色一区二区三区四区| 色综合中文综合网| 亚洲国产成人va在线观看天堂| 4438x成人网最大色成网站| 精品亚洲欧美一区| 伊人开心综合网| 久久夜色精品国产噜噜av| eeuss鲁一区二区三区| 午夜久久电影网| 久久精品人人做人人综合| 欧美中文字幕不卡| 粉嫩av一区二区三区| 午夜天堂影视香蕉久久| 国产欧美日韩精品在线| 欧美日本国产视频| 成人av电影在线网| 久久精品免费看| 亚洲午夜久久久久久久久电影网 | 欧美日韩免费视频| 国产成人丝袜美腿| 日本亚洲视频在线| 亚洲欧美成aⅴ人在线观看| 久久综合资源网| 欧美人与z0zoxxxx视频| 99久久免费国产| 国产麻豆欧美日韩一区| 日韩国产欧美在线播放| 一区二区三区四区蜜桃| 国产欧美日韩三区| 欧美精品一区二区精品网| 欧美亚洲一区二区在线观看| 波多野结衣欧美| 国产精品一区二区不卡| 麻豆专区一区二区三区四区五区| 一区二区三区日韩| 国产精品久久久久久亚洲伦| 国产三级久久久| 精品国产一区久久| 欧美一卡2卡三卡4卡5免费| 91行情网站电视在线观看高清版| 成人黄页在线观看| 国产成人精品午夜视频免费| 国产综合成人久久大片91| 日本不卡一区二区| 婷婷成人激情在线网| 亚洲午夜在线视频| 亚洲国产日韩一级| 亚洲综合丝袜美腿| 亚洲一区欧美一区| 亚洲国产精品久久人人爱| 亚洲一二三专区| 性久久久久久久久久久久| 亚洲国产一区视频| 丝袜亚洲另类欧美| 日本不卡一区二区| 韩国成人精品a∨在线观看| 久久国产免费看| 国产精品资源网站| 成人黄色在线网站| 一本高清dvd不卡在线观看| 91成人在线精品| 欧美色国产精品| 欧美妇女性影城| 日韩精品中文字幕一区二区三区| 日韩精品一区二区三区在线播放| 日韩三级电影网址| 久久夜色精品国产噜噜av| 国产精品免费丝袜| 一区二区免费看| 美女mm1313爽爽久久久蜜臀| 国内外成人在线| 成人在线一区二区三区| 在线日韩一区二区| 日韩欧美视频在线| 国产精品美女久久久久高潮| 一区二区三区在线观看欧美| 五月激情综合色| 国产麻豆欧美日韩一区| 色欧美乱欧美15图片| 欧美精品国产精品| 国产三级欧美三级| 亚洲精品视频自拍| 另类的小说在线视频另类成人小视频在线| 国产精品主播直播| 在线观看亚洲精品视频| 精品国产免费人成电影在线观看四季| 国产精品久久久久影院老司 | 日本不卡在线视频| 北条麻妃一区二区三区| 欧美二区三区的天堂| 欧美国产1区2区| 亚洲第一在线综合网站| 国产精品77777| 欧美视频三区在线播放| 久久九九影视网| 午夜av电影一区| 成人国产亚洲欧美成人综合网| 欧美高清www午色夜在线视频| 国产精品嫩草影院av蜜臀| 美女视频网站久久| 91在线无精精品入口| 26uuu国产电影一区二区| 一二三四区精品视频| 国产寡妇亲子伦一区二区| 欧美日本国产视频| 亚洲色图欧洲色图| 国产精品99久久久久久久vr| 欧美丰满一区二区免费视频 | 久久久精品日韩欧美| 午夜电影网一区| 91色.com| 国产精品欧美一区喷水| 韩国精品一区二区| 欧美一区二区三区系列电影| 一区二区三区在线观看网站| 不卡在线视频中文字幕| 日韩欧美不卡在线观看视频| 午夜视频在线观看一区二区| 国产精品一二三在| 欧美一区二区福利在线| 午夜欧美在线一二页| 在线精品视频一区二区| 中文字幕一区在线观看| 国产成人精品一区二| 久久久亚洲国产美女国产盗摄| 日韩1区2区3区| 3d动漫精品啪啪1区2区免费| 亚洲影视在线播放| 91麻豆免费在线观看| 最新久久zyz资源站| 不卡的av电影| 亚洲国产精品t66y| 丁香亚洲综合激情啪啪综合|