⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setup.c

📁 linux-2.4.29操作系统的源码
💻 C
📖 第 1 页 / 共 2 页
字号:
			continue;		if (curr_pfn + size - 1 > PFN_DOWN(HIGHMEM_START))			size = PFN_DOWN(HIGHMEM_START) - curr_pfn;		if (!size)			continue;		/*		 * ... finally, did all the rounding and playing		 * around just make the area go away?		 */		if (last_pfn <= curr_pfn)			continue;		/* Register lowmem ranges */		free_bootmem(PFN_PHYS(curr_pfn), PFN_PHYS(size));	}	/* Reserve the bootmap memory.  */	reserve_bootmem(PFN_PHYS(first_usable_pfn), bootmap_size);#ifdef CONFIG_BLK_DEV_INITRD	/* Board specific code should have set up initrd_start and initrd_end */	ROOT_DEV = MKDEV(RAMDISK_MAJOR, 0);	if (&__rd_start != &__rd_end) {		initrd_start = (unsigned long)&__rd_start;		initrd_end = (unsigned long)&__rd_end;	}	initrd_below_start_ok = 1;	if (initrd_start) {		unsigned long initrd_size = ((unsigned char *)initrd_end) - ((unsigned char *)initrd_start);		printk("Initial ramdisk at: 0x%p (%lu bytes)\n",		       (void *)initrd_start,		       initrd_size);		if (PHYSADDR(initrd_end) > PFN_PHYS(max_low_pfn)) {			printk("initrd extends beyond end of memory "			       "(0x%08lx > 0x%08lx)\ndisabling initrd\n",			       (unsigned long) PHYSADDR(initrd_end),			       PFN_PHYS(max_low_pfn));			initrd_start = initrd_end = 0;		}	}#endif /* CONFIG_BLK_DEV_INITRD  */}static inline void resource_init(void){	int i;	code_resource.start = virt_to_bus(&_ftext);	code_resource.end = virt_to_bus(&_etext) - 1;	data_resource.start = virt_to_bus(&_fdata);	data_resource.end = virt_to_bus(&_edata) - 1;	/*	 * Request address space for all standard RAM.	 */	for (i = 0; i < boot_mem_map.nr_map; i++) {		struct resource *res;		unsigned long start, end;		start = boot_mem_map.map[i].addr;		end = boot_mem_map.map[i].addr + boot_mem_map.map[i].size - 1;		if (start >= MAXMEM)			continue;		if (end >= MAXMEM)			end = MAXMEM - 1;		res = alloc_bootmem(sizeof(struct resource));		switch (boot_mem_map.map[i].type) {		case BOOT_MEM_RAM:		case BOOT_MEM_ROM_DATA:			res->name = "System RAM";			break;		case BOOT_MEM_RESERVED:		default:			res->name = "reserved";		}		res->start = start;		res->end = end;		res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;		request_resource(&iomem_resource, res);		/*		 *  We dont't know which RAM region contains kernel data,		 *  so we try it repeatedly and let the resource manager		 *  test it.		 */		request_resource(res, &code_resource);		request_resource(res, &data_resource);	}}#undef PFN_UP#undef PFN_DOWN#undef PFN_PHYS#undef MAXMEM#undef MAXMEM_PFNvoid __init setup_arch(char **cmdline_p){	void atlas_setup(void);	void baget_setup(void);	void cobalt_setup(void);	void lasat_setup(void);	void ddb_setup(void);	void decstation_setup(void);	void deskstation_setup(void);	void jazz_setup(void);	void sni_rm200_pci_setup(void);	void ip22_setup(void);	void ev96100_setup(void);	void malta_setup(void);	void sead_setup(void);	void ikos_setup(void);	void momenco_ocelot_setup(void);	void momenco_ocelot_g_setup(void);	void momenco_ocelot_c_setup(void);	void momenco_jaguar_atx_setup(void);	void nino_setup(void);	void nec_osprey_setup(void);	void nec_eagle_setup(void);	void zao_capcella_setup(void);	void victor_mpc30x_setup(void);	void ibm_workpad_setup(void);	void casio_e55_setup(void);	void tanbac_tb0226_setup(void);	void jmr3927_setup(void);	void tx4927_setup(void); 	void it8172_setup(void);	void swarm_setup(void);	void hp_setup(void);	void au1x00_setup(void);	void frame_info_init(void);	frame_info_init();#if defined(CONFIG_BLK_DEV_FD) || defined(CONFIG_BLK_DEV_FD_MODULE)	fd_ops = &no_fd_ops;#endif#ifdef CONFIG_BLK_DEV_IDE	ide_ops = &no_ide_ops;#endif	rtc_ops = &no_rtc_ops;	switch(mips_machgroup)	{#ifdef CONFIG_BAGET_MIPS	case MACH_GROUP_BAGET:		baget_setup();		break;#endif#ifdef CONFIG_MIPS_COBALT        case MACH_GROUP_COBALT:                cobalt_setup();                break;#endif#ifdef CONFIG_DECSTATION	case MACH_GROUP_DEC:		decstation_setup();		break;#endif#ifdef CONFIG_MIPS_ATLAS	case MACH_GROUP_UNKNOWN:		atlas_setup();		break;#endif#ifdef CONFIG_MIPS_JAZZ	case MACH_GROUP_JAZZ:		jazz_setup();		break;#endif#ifdef CONFIG_MIPS_MALTA	case MACH_GROUP_UNKNOWN:		malta_setup();		break;#endif#ifdef CONFIG_MOMENCO_OCELOT	case MACH_GROUP_MOMENCO:		momenco_ocelot_setup();		break;#endif#ifdef CONFIG_MOMENCO_OCELOT_G	case MACH_GROUP_MOMENCO:		momenco_ocelot_g_setup();		break;#endif#ifdef CONFIG_MOMENCO_OCELOT_C	case MACH_GROUP_MOMENCO:		momenco_ocelot_c_setup();		break;#endif#ifdef CONFIG_MOMENCO_JAGUAR_ATX	case MACH_GROUP_MOMENCO:		momenco_jaguar_atx_setup();		break;#endif#ifdef CONFIG_MIPS_SEAD	case MACH_GROUP_UNKNOWN:		sead_setup();		break;#endif#ifdef CONFIG_SGI_IP22	/* As of now this is only IP22.  */	case MACH_GROUP_SGI:		ip22_setup();		break;#endif#ifdef CONFIG_SNI_RM200_PCI	case MACH_GROUP_SNI_RM:		sni_rm200_pci_setup();		break;#endif#ifdef CONFIG_DDB5074	case MACH_GROUP_NEC_DDB:		ddb_setup();		break;#endif#ifdef CONFIG_DDB5476       case MACH_GROUP_NEC_DDB:               ddb_setup();               break;#endif#ifdef CONFIG_DDB5477       case MACH_GROUP_NEC_DDB:               ddb_setup();               break;#endif#ifdef CONFIG_CPU_VR41XX	case MACH_GROUP_NEC_VR41XX:		switch (mips_machtype) {#ifdef CONFIG_NEC_OSPREY		case MACH_NEC_OSPREY:			nec_osprey_setup();			break;#endif#ifdef CONFIG_NEC_EAGLE		case MACH_NEC_EAGLE:			nec_eagle_setup();			break;#endif#ifdef CONFIG_ZAO_CAPCELLA		case MACH_ZAO_CAPCELLA:			zao_capcella_setup();			break;#endif#ifdef CONFIG_VICTOR_MPC30X		case MACH_VICTOR_MPC30X:			victor_mpc30x_setup();			break;#endif#ifdef CONFIG_IBM_WORKPAD		case MACH_IBM_WORKPAD:			ibm_workpad_setup();			break;#endif#ifdef CONFIG_CASIO_E55		case MACH_CASIO_E55:			casio_e55_setup();			break;#endif#ifdef CONFIG_TANBAC_TB0226		case MACH_TANBAC_TB0226:			tanbac_tb0226_setup();			break;#endif#ifdef CONFIG_TANBAC_TB0229		case MACH_TANBAC_TB0229:			tanbac_tb0229_setup();			break;#endif		}		break;#endif#ifdef CONFIG_MIPS_EV96100	case MACH_GROUP_GALILEO:		ev96100_setup();		break;#endif#ifdef CONFIG_MIPS_EV64120	case MACH_GROUP_GALILEO:		ev64120_setup();		break;#endif#if defined(CONFIG_MIPS_IVR) || defined(CONFIG_MIPS_ITE8172)	case  MACH_GROUP_ITE:	case  MACH_GROUP_GLOBESPAN:		it8172_setup();		break;#endif#ifdef CONFIG_NINO	case MACH_GROUP_PHILIPS:		nino_setup();		break;#endif#ifdef CONFIG_LASAT        case MACH_GROUP_LASAT:                lasat_setup();                break;#endif#ifdef CONFIG_SOC_AU1X00	case MACH_GROUP_ALCHEMY:		au1x00_setup();		break;#endif#ifdef CONFIG_TOSHIBA_JMR3927	case MACH_GROUP_TOSHIBA:		jmr3927_setup();		break;#endif#ifdef CONFIG_TOSHIBA_RBTX4927       case MACH_GROUP_TOSHIBA:               tx4927_setup();               break;#endif#ifdef CONFIG_SIBYTE_BOARD	case MACH_GROUP_SIBYTE:		swarm_setup();		break;#endif#ifdef CONFIG_HP_LASERJET        case MACH_GROUP_HP_LJ:                hp_setup();                break;#endif#ifdef  CONFIG_PMC_YOSEMITE        case MACH_GROUP_TITAN:                pmc_yosemite_setup();                break;#endif	default:		panic("Unsupported architecture");	}	strncpy(command_line, arcs_cmdline, sizeof command_line);	command_line[sizeof command_line - 1] = 0;	strcpy(saved_command_line, command_line);	*cmdline_p = command_line;	parse_mem_cmdline();	bootmem_init();	paging_init();	resource_init();}static int __init fpu_disable(char *s){	cpu_data[0].options &= ~MIPS_CPU_FPU;	return 1;}__setup("nofpu", fpu_disable);

⌨️ 快捷键说明

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