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

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

?? acpi.c

?? MIZI Research, Inc.發布的嵌入式Linux內核源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
			printk("ACPI 2.0 MADT: LOCAL APIC entry\n"); break;		      case ACPI20_ENTRY_IO_APIC:			printk("ACPI 2.0 MADT: IO APIC entry\n"); break;		      case ACPI20_ENTRY_NMI_SOURCE:			printk("ACPI 2.0 MADT: NMI SOURCE entry\n"); break;		      case ACPI20_ENTRY_LOCAL_APIC_NMI:			printk("ACPI 2.0 MADT: LOCAL APIC NMI entry\n"); break;		      case ACPI20_ENTRY_INT_SRC_OVERRIDE:			break;		      default:			printk("ACPI 2.0 MADT: unknown entry skip\n"); break;			break;		}		p += p[1];	}	p = (char *) (madt + 1);	end = p + (madt->header.length - sizeof(acpi_madt_t));	while (p < end) {		switch (*p) {		      case ACPI20_ENTRY_LOCAL_APIC:			if (lsapic) break;			printk("ACPI 2.0 MADT: LOCAL APIC entry\n");			/* parse local apic if there's no local Sapic */			break;		      case ACPI20_ENTRY_IO_APIC:			if (iosapic) break;			printk("ACPI 2.0 MADT: IO APIC entry\n");			/* parse ioapic if there's no ioSapic */			break;		      default:			break;		}		p += p[1];	}	p = (char *) (madt + 1);	end = p + (madt->header.length - sizeof(acpi_madt_t));	while (p < end) {		switch (*p) {		      case ACPI20_ENTRY_INT_SRC_OVERRIDE:			printk("ACPI 2.0 MADT: INT SOURCE Override\n");			acpi_legacy_irq(p);			break;		      default:			break;		}		p += p[1];	}	/* Make bootup pretty */	printk("      %d CPUs available, %d CPUs total\n",		available_cpus, total_cpus);}int __initacpi20_parse (acpi20_rsdp_t *rsdp20){# ifdef CONFIG_ACPI	acpi_xsdt_t *xsdt;	acpi_desc_table_hdr_t *hdrp;	acpi_madt_t *madt;	int tables, i;	if (strncmp(rsdp20->signature, ACPI_RSDP_SIG, ACPI_RSDP_SIG_LEN)) {		printk("ACPI 2.0 RSDP signature incorrect!\n");		return 0;	} else {		printk("ACPI 2.0 Root System Description Ptr at 0x%lx\n",			(unsigned long)rsdp20);	}	xsdt = __va(rsdp20->xsdt);	hdrp = &xsdt->header;	if (strncmp(hdrp->signature,		ACPI_XSDT_SIG, ACPI_XSDT_SIG_LEN)) {		printk("ACPI 2.0 XSDT signature incorrect. Trying RSDT\n");		/* RSDT parsing here */		return 0;	} else {		printk("ACPI 2.0 XSDT at 0x%lx (p=0x%lx)\n",		(unsigned long)xsdt, (unsigned long)rsdp20->xsdt);	}	printk("ACPI 2.0: %.6s %.8s %d.%d\n",		hdrp->oem_id,		hdrp->oem_table_id,		hdrp->oem_revision >> 16,		hdrp->oem_revision & 0xffff);	acpi_cf_init((void *)rsdp20);	tables =(hdrp->length -sizeof(acpi_desc_table_hdr_t))>>3;	for (i = 0; i < tables; i++) {		hdrp = (acpi_desc_table_hdr_t *) __va(readl_unaligned(&xsdt->entry_ptrs[i]));		printk("        :table %4.4s found\n", hdrp->signature);		/* Only interested int the MADT table for now ... */		if (strncmp(hdrp->signature,			ACPI_MADT_SIG, ACPI_MADT_SIG_LEN) != 0)			continue;		/* Save MADT pointer for later */		madt = (acpi_madt_t *) hdrp;		acpi20_parse_madt(madt);	}#ifdef CONFIG_SERIAL_ACPI	/*	 * Now we're interested in other tables.  We want the iosapics already	 * initialized, so we do it in a separate loop.	 */	for (i = 0; i < tables; i++) {		hdrp = (acpi_desc_table_hdr_t *) __va(readl_unaligned(&xsdt->entry_ptrs[i]));		/*		 * search for SPCR and DBGP table entries so we can enable		 * non-pci interrupts to IO-SAPICs.		 */		if (!strncmp(hdrp->signature, ACPI_SPCRT_SIG, ACPI_SPCRT_SIG_LEN) ||		    !strncmp(hdrp->signature, ACPI_DBGPT_SIG, ACPI_DBGPT_SIG_LEN))		{			acpi_ser_t *spcr = (void *)hdrp;			unsigned long global_int;			setup_serial_acpi(hdrp);			/*			 * ACPI is able to describe serial ports that live at non-standard			 * memory space addresses and use SAPIC interrupts.  If not also			 * PCI devices, there would be no interrupt vector information for			 * them.  This checks for and fixes that situation.			 */			if (spcr->length < sizeof(acpi_ser_t))				/* table is not long enough for full info, thus no int */				break;			/*			 * If the device is not in PCI space, but uses a SAPIC interrupt,			 * we need to program the SAPIC so that serial can autoprobe for			 * the IA64 interrupt vector later on.  If the device is in PCI			 * space, it should already be setup via the PCI vectors			 */			if (spcr->base_addr.space_id != ACPI_SERIAL_PCICONF_SPACE &&			    spcr->int_type == ACPI_SERIAL_INT_SAPIC)			{				u32 irq_base;				char *iosapic_address;				int vector;				/* We have a UART in memory space with a SAPIC interrupt */				global_int = (  (spcr->global_int[3] << 24)					      | (spcr->global_int[2] << 16)					      | (spcr->global_int[1] << 8)					      | spcr->global_int[0]);				if (!iosapic_register_irq)					continue;				/* which iosapic does this IRQ belong to? */				if (acpi20_which_iosapic(global_int, madt, &irq_base,							 &iosapic_address) == 0)				{					vector = iosapic_register_irq(global_int,					                              1, /* active high polarity */					                              1, /* edge triggered */					                              irq_base,					                              iosapic_address);				}			}		}	}#endif	acpi_cf_terminate();#  ifdef CONFIG_SMP	if (available_cpus == 0) {		printk("ACPI: Found 0 CPUS; assuming 1\n");		available_cpus = 1; /* We've got at least one of these, no? */	}	smp_boot_data.cpu_count = total_cpus;#  endif# endif /* CONFIG_ACPI */	return 1;}/* * ACPI 1.0b with 0.71 IA64 extensions functions; should be removed once all * platforms start supporting ACPI 2.0 *//* * Identify usable CPU's and remember them for SMP bringup later. */static void __initacpi_lsapic (char *p){	int add = 1;	acpi_entry_lsapic_t *lsapic = (acpi_entry_lsapic_t *) p;	if ((lsapic->flags & LSAPIC_PRESENT) == 0)		return;	printk("      CPU %d (%.04x:%.04x): ", total_cpus, lsapic->eid, lsapic->id);	if ((lsapic->flags & LSAPIC_ENABLED) == 0) {		printk("Disabled.\n");		add = 0;	} else if (lsapic->flags & LSAPIC_PERFORMANCE_RESTRICTED) {		printk("Performance Restricted; ignoring.\n");		add = 0;	}#ifdef CONFIG_SMP	smp_boot_data.cpu_phys_id[total_cpus] = -1;#endif	if (add) {		printk("Available.\n");		available_cpus++;#ifdef CONFIG_SMP		smp_boot_data.cpu_phys_id[total_cpus] = (lsapic->id << 8) | lsapic->eid;#endif /* CONFIG_SMP */	}	total_cpus++;}/* * Info on platform interrupt sources: NMI. PMI, INIT, etc. */static void __initacpi_platform (char *p){	acpi_entry_platform_src_t *plat = (acpi_entry_platform_src_t *) p;	printk("PLATFORM: IOSAPIC %x -> Vector %x on CPU %.04u:%.04u\n",	       plat->iosapic_vector, plat->global_vector, plat->eid, plat->id);}/* * Parse the ACPI Multiple SAPIC Table */static void __initacpi_parse_msapic (acpi_sapic_t *msapic){	acpi_entry_iosapic_t *iosapic;	char *p, *end;	/* Base address of IPI Message Block */	ipi_base_addr = (unsigned long) ioremap(msapic->interrupt_block, 0);	p = (char *) (msapic + 1);	end = p + (msapic->header.length - sizeof(acpi_sapic_t));	while (p < end) {		switch (*p) {		      case ACPI_ENTRY_LOCAL_SAPIC:			acpi_lsapic(p);			break;		      case ACPI_ENTRY_IO_SAPIC:			iosapic = (acpi_entry_iosapic_t *) p;			if (iosapic_init)				/*				 * The ACPI I/O SAPIC table doesn't have a PCAT_COMPAT				 * flag like the MADT table, but we can safely assume that				 * ACPI 1.0b systems have a dual-8259 setup.				 */				iosapic_init(iosapic->address, iosapic->irq_base, 1);			break;		      case ACPI_ENTRY_INT_SRC_OVERRIDE:			acpi_legacy_irq(p);			break;		      case ACPI_ENTRY_PLATFORM_INT_SOURCE:			acpi_platform(p);			break;		      default:			break;		}		/* Move to next table entry. */		p += p[1];	}	/* Make bootup pretty */	printk("      %d CPUs available, %d CPUs total\n", available_cpus, total_cpus);}int __initacpi_parse (acpi_rsdp_t *rsdp){# ifdef CONFIG_ACPI	acpi_rsdt_t *rsdt;	acpi_desc_table_hdr_t *hdrp;	long tables, i;	if (strncmp(rsdp->signature, ACPI_RSDP_SIG, ACPI_RSDP_SIG_LEN)) {		printk("Uh-oh, ACPI RSDP signature incorrect!\n");		return 0;	}	rsdt = __va(rsdp->rsdt);	if (strncmp(rsdt->header.signature, ACPI_RSDT_SIG, ACPI_RSDT_SIG_LEN)) {		printk("Uh-oh, ACPI RDST signature incorrect!\n");		return 0;	}	printk("ACPI: %.6s %.8s %d.%d\n", rsdt->header.oem_id, rsdt->header.oem_table_id,	       rsdt->header.oem_revision >> 16, rsdt->header.oem_revision & 0xffff);	acpi_cf_init(rsdp);	tables = (rsdt->header.length - sizeof(acpi_desc_table_hdr_t)) / 8;	for (i = 0; i < tables; i++) {		hdrp = (acpi_desc_table_hdr_t *) __va(rsdt->entry_ptrs[i]);		/* Only interested int the MSAPIC table for now ... */		if (strncmp(hdrp->signature, ACPI_SAPIC_SIG, ACPI_SAPIC_SIG_LEN) != 0)			continue;		acpi_parse_msapic((acpi_sapic_t *) hdrp);	}	acpi_cf_terminate();#  ifdef CONFIG_SMP	if (available_cpus == 0) {		printk("ACPI: Found 0 CPUS; assuming 1\n");		available_cpus = 1; /* We've got at least one of these, no? */	}	smp_boot_data.cpu_count = total_cpus;#  endif# endif /* CONFIG_ACPI */	return 1;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕精品在线不卡| 国产91综合网| 久久精品网站免费观看| 色爱区综合激月婷婷| 国内外精品视频| 亚洲欧洲综合另类| 久久日韩精品一区二区五区| 欧美视频中文字幕| 99精品桃花视频在线观看| 精品一区二区在线视频| 一区二区三区蜜桃网| 欧美激情在线免费观看| 日韩欧美国产综合| 欧美精品日韩精品| 色香蕉久久蜜桃| 91麻豆精品国产无毒不卡在线观看| 国产乱子伦视频一区二区三区| 亚洲1区2区3区4区| 亚洲精品视频免费观看| 国产精品免费网站在线观看| 精品乱人伦小说| 91精品国产入口| 欧美日韩一区二区不卡| 91香蕉视频黄| 99精品在线观看视频| 粉嫩绯色av一区二区在线观看| 麻豆精品久久精品色综合| 午夜精品一区二区三区免费视频 | 亚洲成人av电影| 国产精品家庭影院| 欧美韩日一区二区三区| 久久久电影一区二区三区| 日韩欧美国产三级电影视频| 337p亚洲精品色噜噜狠狠| 欧美性一二三区| 欧美视频三区在线播放| 欧美手机在线视频| 欧美亚洲一区二区在线| 91福利国产成人精品照片| 91污在线观看| 欧美在线观看你懂的| 欧美这里有精品| 欧美体内she精高潮| 欧美亚洲国产bt| 欧美日韩精品一区二区三区| 在线播放/欧美激情| 日韩女优制服丝袜电影| 337p日本欧洲亚洲大胆精品| 久久麻豆一区二区| 中文字幕中文字幕在线一区 | 精品视频一区 二区 三区| 欧美在线免费视屏| 欧美日韩高清一区二区三区| 欧美欧美欧美欧美首页| 69av一区二区三区| 精品国产91乱码一区二区三区| 2023国产精品自拍| 国产精品免费人成网站| 亚洲色图欧美在线| 亚洲电影激情视频网站| 久久精品国产澳门| 成人免费电影视频| 欧美在线视频日韩| 欧美成人伊人久久综合网| 国产精品午夜在线观看| 一区二区三区日韩精品| 免费人成在线不卡| 高清不卡一区二区在线| 欧洲精品一区二区三区在线观看| 3d成人动漫网站| 中文字幕免费观看一区| 亚洲国产精品一区二区久久恐怖片| 日韩精品三区四区| 国产99久久久久久免费看农村| 一本色道久久加勒比精品| 制服丝袜亚洲网站| 中文字幕精品在线不卡| 午夜不卡在线视频| 国产高清不卡二三区| 欧美在线视频全部完| 精品精品国产高清a毛片牛牛| 国产精品对白交换视频 | 午夜精品久久久久久| 国产一区日韩二区欧美三区| 色综合天天综合网天天狠天天| 欧美精品一卡二卡| 国产精品白丝在线| 久久精品国产亚洲5555| 色婷婷综合久久久久中文| 日韩欧美一区中文| 亚洲女同ⅹxx女同tv| 国内精品久久久久影院一蜜桃| 日本道色综合久久| 欧美激情一区二区三区四区 | 麻豆精品在线看| 色一情一伦一子一伦一区| 精品少妇一区二区三区在线播放| 亚洲精品视频一区| 国产不卡在线视频| 欧美一区二区久久久| 一区二区三区欧美| 成人免费视频网站在线观看| 日韩亚洲欧美高清| 一区二区欧美在线观看| 国产高清精品久久久久| 日韩片之四级片| 亚洲第一电影网| 91网站在线播放| 欧美国产日韩精品免费观看| 另类小说图片综合网| 欧美日韩高清一区二区| 亚洲精品中文字幕乱码三区| 国产99久久久国产精品| 久久综合色天天久久综合图片| 日韩成人一级片| 欧美天堂一区二区三区| 一区二区三区加勒比av| 99久久国产综合精品女不卡| 国产欧美日韩视频一区二区| 国精产品一区一区三区mba桃花| 777xxx欧美| 亚洲一区二区三区四区五区中文 | 久久久影视传媒| 蜜臀99久久精品久久久久久软件| 欧美日韩国产一级片| 亚洲自拍偷拍av| 在线亚洲一区二区| 亚洲精品国产视频| 三级久久三级久久| 18成人在线观看| 亚洲福利一二三区| 久草这里只有精品视频| 6080yy午夜一二三区久久| 午夜精品免费在线| 欧美午夜片在线看| 亚洲电影视频在线| 欧美精品一卡二卡| 免费看日韩a级影片| 日韩欧美成人一区二区| 久久精品久久综合| 久久天天做天天爱综合色| 激情久久久久久久久久久久久久久久| 欧美大胆人体bbbb| 精品一区二区av| 国产欧美日韩在线视频| 不卡视频一二三| 亚洲免费在线视频一区 二区| 99re热视频精品| 亚洲午夜羞羞片| 欧美一级片在线| 国产精品中文欧美| 国产精品成人免费在线| 色偷偷成人一区二区三区91| 亚洲午夜一区二区三区| 91精品国产丝袜白色高跟鞋| 黄色精品一二区| 国产精品欧美精品| 在线观看成人小视频| 日本午夜一区二区| 久久久美女毛片| av网站一区二区三区| 亚洲综合在线第一页| 欧美三级在线看| 看电视剧不卡顿的网站| 国产网站一区二区| 91精品办公室少妇高潮对白| 日本va欧美va欧美va精品| 久久久久国产精品人| 色综合久久中文字幕| 免费看欧美美女黄的网站| 国产欧美一区在线| 精品1区2区3区| 国产精品一卡二| 樱花影视一区二区| 欧美精品一区二区三区四区| a亚洲天堂av| 蜜臀久久99精品久久久久久9| 日本一区二区三区在线观看| 欧美亚洲国产bt| 国产精品99久久久久久有的能看 | 三级影片在线观看欧美日韩一区二区 | 午夜国产不卡在线观看视频| 精品国产一区久久| 色狠狠一区二区| 国产乱码一区二区三区| 亚洲午夜激情av| 亚洲国产成人一区二区三区| 911精品产国品一二三产区| 成人激情免费网站| 久久精品国产999大香线蕉| 亚洲三级视频在线观看| 久久一区二区视频| 欧美日韩国产首页在线观看| 成人蜜臀av电影| 欧美视频日韩视频| 亚洲综合色自拍一区| 色综合 综合色| 久久99精品久久久久| 亚洲一区视频在线| 国产精品婷婷午夜在线观看|