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

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

?? linux.c

?? arm7,44b0芯片的blob程序,適用于學嵌入式linux的新手.
?? C
字號:
/* * linux.c: support functions for booting a kernel * * Copyright (C) 2001  Erik Mouw (J.A.K.Mouw@its.tudelft.nl) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA * */#ident "$Id: linux.c,v 1.8 2002/01/06 15:46:17 erikm Exp $"#ifdef HAVE_CONFIG_H# include <blob/config.h>#endif#include <blob/linux.h>#include <blob/arch.h>#include <blob/command.h>#include <blob/init.h>#include <blob/main.h>#include <blob/memory.h>#include <blob/util.h>#include <blob/serial.h>#include <asm/setup.h>static void setup_start_tag(void);static void setup_memory_tags(void);static void setup_commandline_tag(int argc, char *argv[]);static void setup_ramdisk_tag(void);static void setup_initrd_tag(void);static void setup_end_tag(void);static struct tag *params;void clif(void){	asm("\n	        mrs     r0, cpsr\n	        orr     r0, r0, #0xc0\n	        msr     cpsr, r0\n        ");}static int boot_linux(int argc, char *argv[]){	void (*theKernel)(int zero, int arch) = (void (*)(int, int))KERNEL_RAM_BASE;	clif();	setup_start_tag();	setup_memory_tags();	setup_commandline_tag(argc, argv);  	setup_initrd_tag();	setup_ramdisk_tag();	setup_end_tag();	/* we assume that the kernel is in place */	SerialOutputString("\nStarting kernel ...\n\n");	serial_flush_output();	/* disable subsystems that want to be disabled before kernel boot */	exit_subsystems();	/* start kernel */	theKernel(0, ARCH_NUMBER);	SerialOutputString("Hey, the kernel returned! This should not happen.\n");	return 0;}static char boothelp[] = "boot [kernel options]\n""Boot Linux with optional kernel options\n";__commandlist(boot_linux, "boot", boothelp);static void setup_start_tag(void){	params = (struct tag *)BOOT_PARAMS;	params->hdr.tag = ATAG_CORE;	params->hdr.size = tag_size(tag_core);	params->u.core.flags = 0;	params->u.core.pagesize = 0;	params->u.core.rootdev = 0;	params = tag_next(params);}static void setup_memory_tags(void){	int i;	for(i = 0; i < NUM_MEM_AREAS; i++) {		if(memory_map[i].used) {			params->hdr.tag = ATAG_MEM;			params->hdr.size = tag_size(tag_mem32);			params->u.mem.start = memory_map[i].start;			params->u.mem.size = memory_map[i].len;						params = tag_next(params);		}#if defined( NEPONSET )		/* When neponset board is present dont report		 * the 2nd ram area to the kernel. This area		 * is on the neponset board and would require		 * NUMA support in the kernel.*/		break;#endif	}}static void setup_commandline_tag(int argc, char *argv[]){	char *p;	int i;	/* initialise commandline */	params->u.cmdline.cmdline[0] = '\0';	/* copy default commandline from parameter block */	if(blob_status.cmdline[0] != '\0') 		strlcpy(params->u.cmdline.cmdline, blob_status.cmdline, 			COMMAND_LINE_SIZE);	/* copy commandline */	if(argc >= 2) {		p = params->u.cmdline.cmdline;		for(i = 1; i < argc; i++) {			strlcpy(p, argv[i], COMMAND_LINE_SIZE);			p += strlen(p);			*p++ = ' ';		}			p--;		*p = '\0';		/* technically spoken we should limit the length of		 * the kernel command line to COMMAND_LINE_SIZE		 * characters, but the kernel won't copy longer		 * strings anyway, so we don't care over here.		 */	}	if(strlen(params->u.cmdline.cmdline) > 0) {		params->hdr.tag = ATAG_CMDLINE;		params->hdr.size = (sizeof(struct tag_header) + 				    strlen(params->u.cmdline.cmdline) + 1 + 4) >> 2;				params = tag_next(params);	}}static void setup_initrd_tag(void){	/* an ATAG_INITRD node tells the kernel where the compressed         * ramdisk can be found. ATAG_RDIMG is a better name, actually.	 */	params->hdr.tag = ATAG_INITRD;	params->hdr.size = tag_size(tag_initrd);		params->u.initrd.start = RAMDISK_RAM_BASE;	params->u.initrd.size = RAMDISK_FLASH_LEN;		params = tag_next(params);}static void setup_ramdisk_tag(void){	/* an ATAG_RAMDISK node tells the kernel how large the         * decompressed ramdisk will become.	 */	params->hdr.tag = ATAG_RAMDISK;	params->hdr.size = tag_size(tag_ramdisk);		params->u.ramdisk.start = 0;	params->u.ramdisk.size = RAMDISK_SIZE;	params->u.ramdisk.flags = 1;	/* automatically load ramdisk */		params = tag_next(params);}static void setup_end_tag(void){	params->hdr.tag = ATAG_NONE;	params->hdr.size = 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美在线1卡| 欧美综合久久久| 日本午夜一区二区| 亚洲国产另类av| 一区二区三区国产| 亚洲综合自拍偷拍| 亚洲韩国精品一区| 日韩精品午夜视频| 日韩国产高清影视| 蜜臀av一区二区在线免费观看| 亚洲va在线va天堂| 日本伊人色综合网| 国精产品一区一区三区mba视频 | 亚洲特黄一级片| 中文字幕亚洲不卡| 亚洲一区二区综合| 免费一区二区视频| 国产精品资源网站| 色综合久久天天| 欧美一级二级三级蜜桃| 精品国产不卡一区二区三区| 国产亚洲精品福利| 一区二区三区在线观看视频| 亚洲国产日韩综合久久精品| 蜜桃在线一区二区三区| 国产电影一区在线| 色综合天天综合网国产成人综合天| 欧美性大战xxxxx久久久| 欧美午夜在线一二页| wwwwww.欧美系列| 国产精品久久久久一区二区三区共| 亚洲欧美日韩精品久久久久| 日韩精品一卡二卡三卡四卡无卡| 国产精品一区二区久久精品爱涩 | 亚洲主播在线观看| 久久99精品视频| 91欧美激情一区二区三区成人| 欧美日韩国产一区| 国产日产欧美精品一区二区三区| 一区二区三区日韩精品| 九九九精品视频| 欧洲一区在线观看| 国产无人区一区二区三区| 亚洲国产一区二区在线播放| 国产一区不卡视频| 欧美挠脚心视频网站| 国产欧美日韩另类视频免费观看| 日韩中文字幕91| 91丨porny丨首页| 国产视频一区二区在线观看| 日韩中文欧美在线| 欧美自拍丝袜亚洲| 亚洲人成影院在线观看| 激情五月激情综合网| 欧美剧情电影在线观看完整版免费励志电影| 久久网站最新地址| 奇米精品一区二区三区四区| 色婷婷av一区二区三区大白胸| 久久精品欧美日韩精品 | 精品国产伦一区二区三区免费| 亚洲综合丁香婷婷六月香| 成人久久久精品乱码一区二区三区| 在线不卡一区二区| 亚洲一区二区三区四区在线观看 | 伊人一区二区三区| 国产精品2024| 26uuu国产日韩综合| 日韩精品久久理论片| 色天天综合久久久久综合片| 亚洲欧洲在线观看av| 成人激情av网| 国产精品久久久久永久免费观看 | 日韩欧美区一区二| 青青国产91久久久久久 | 久久九九国产精品| 国产乱子伦视频一区二区三区 | 欧美体内she精高潮| 樱花草国产18久久久久| 色婷婷激情综合| 夜夜嗨av一区二区三区| 91久久一区二区| 一区二区在线观看免费| 欧美在线色视频| 丝袜美腿亚洲一区| 日韩三级视频在线观看| 激情综合色播激情啊| 精品国产青草久久久久福利| 国产精品自拍毛片| 国产精品高潮久久久久无| 91免费看视频| 午夜精品爽啪视频| 精品精品欲导航| 国产成人午夜精品影院观看视频| 日本一区二区动态图| 99re免费视频精品全部| 亚洲精品日日夜夜| 日韩一区国产二区欧美三区| 久久成人久久爱| 国产精品久久久久久久久免费桃花| 99精品欧美一区| 午夜久久久影院| 国产亚洲成年网址在线观看| 成人av在线影院| 日韩精品欧美精品| 中文av一区二区| 欧美军同video69gay| 懂色av一区二区三区蜜臀| 亚洲日韩欧美一区二区在线| 欧美裸体一区二区三区| 国产成人av影院| 亚洲国产综合91精品麻豆| 精品处破学生在线二十三| 91伊人久久大香线蕉| 秋霞午夜鲁丝一区二区老狼| 中文字幕在线不卡视频| 欧美日本韩国一区| 成人av在线资源网| 美女视频免费一区| 亚洲欧洲综合另类在线| 精品粉嫩超白一线天av| 日本精品一区二区三区四区的功能| 六月丁香综合在线视频| 亚洲精品久久久久久国产精华液| 日韩一级二级三级| 色婷婷一区二区三区四区| 国产乱对白刺激视频不卡| 五月婷婷久久综合| 亚洲女人的天堂| 日韩精品一区二区三区中文精品| 在线一区二区观看| 丁香另类激情小说| 国产麻豆日韩欧美久久| 免费人成黄页网站在线一区二区 | 91精品国产欧美一区二区18| 9人人澡人人爽人人精品| 国产呦精品一区二区三区网站| 亚洲日本丝袜连裤袜办公室| 2024国产精品| 精品欧美黑人一区二区三区| 91精品国产综合久久精品图片| 一本一道波多野结衣一区二区| 国产精品影视在线观看| 六月丁香婷婷久久| 日产国产欧美视频一区精品| 亚洲成人精品一区二区| 亚洲成人免费看| 亚洲va天堂va国产va久| 亚洲成av人片在线| 午夜电影网一区| 亚洲mv在线观看| 亚洲第四色夜色| 午夜视频一区二区| 天天影视色香欲综合网老头| 亚洲最大色网站| 午夜久久久影院| 偷偷要91色婷婷| 人人狠狠综合久久亚洲| 久久精品av麻豆的观看方式| 日本欧美在线观看| 精品一二线国产| 国产一区二区三区国产| 成人看片黄a免费看在线| 99久久伊人久久99| 色88888久久久久久影院野外| 色www精品视频在线观看| 欧美影片第一页| 欧美伦理视频网站| 2021久久国产精品不只是精品| 欧美精品一区二区不卡| 国产精品毛片大码女人| 136国产福利精品导航| 亚洲一区二区三区影院| 日本美女一区二区| 国产成人免费视频精品含羞草妖精 | 91免费视频网址| 欧美日韩黄色一区二区| 欧美变态tickle挠乳网站| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲另类中文字| 日韩成人一级大片| 成人午夜看片网址| 欧美吻胸吃奶大尺度电影| 欧美videos大乳护士334| 国产精品乱码人人做人人爱 | 亚洲电影一级片| 久久精品国产亚洲a| 9人人澡人人爽人人精品| 欧美老肥妇做.爰bbww| 欧美极品aⅴ影院| 亚洲午夜三级在线| 狠狠色综合色综合网络| 99在线精品一区二区三区| 91精品国产综合久久久久久久久久| 国产亚洲一区二区在线观看| 亚洲一区二区三区在线| 国产麻豆9l精品三级站| 欧美理论在线播放| 国产精品免费视频观看| 另类中文字幕网| 欧美在线观看一二区|