virtual_root.c

来自「Linux Kernel 2.6.9 for OMAP1710」· C语言 代码 · 共 76 行

C
76
字号
/* * Virtual EISA root driver. * Acts as a placeholder if we don't have a proper EISA bridge. * * (C) 2003 Marc Zyngier <maz@wild-wind.fr.eu.org> * * This code is released under the GPL version 2. */#include <linux/config.h>#include <linux/kernel.h>#include <linux/device.h>#include <linux/eisa.h>#include <linux/module.h>#include <linux/moduleparam.h>#include <linux/init.h>#if defined(CONFIG_ALPHA_JENSEN) || defined(CONFIG_EISA_VLB_PRIMING)#define EISA_FORCE_PROBE_DEFAULT 1#else#define EISA_FORCE_PROBE_DEFAULT 0#endifstatic int force_probe = EISA_FORCE_PROBE_DEFAULT;static void virtual_eisa_release (struct device *);/* The default EISA device parent (virtual root device). * Now use a platform device, since that's the obvious choice. */static struct platform_device eisa_root_dev = {	.name = "eisa",	.id   = 0,	.dev  = {		.release = virtual_eisa_release,	},};static struct eisa_root_device eisa_bus_root = {	.dev           = &eisa_root_dev.dev,	.bus_base_addr = 0,	.res	       = &ioport_resource,	.slots	       = EISA_MAX_SLOTS,	.dma_mask      = 0xffffffff,};static void virtual_eisa_release (struct device *dev){	/* nothing really to do here */}static int virtual_eisa_root_init (void){	int r;	        if ((r = platform_device_register (&eisa_root_dev))) {                return r;        }	eisa_bus_root.force_probe = force_probe;		eisa_root_dev.dev.driver_data = &eisa_bus_root;	if (eisa_root_register (&eisa_bus_root)) {		/* A real bridge may have been registered before		 * us. So quietly unregister. */		platform_device_unregister (&eisa_root_dev);		return -1;	}	return 0;}module_param (force_probe, int, 0444);device_initcall (virtual_eisa_root_init);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?