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

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

?? main.c

?? 適合linux的新手使用,很經典,簡單,方便.
?? C
字號:
/* *  linux/init/main.c * *  (C) 1991  Linus Torvalds */#define __LIBRARY__#include <unistd.h>#include <time.h>/* * we need this inline - forking from kernel space will result * in NO COPY ON WRITE (!!!), until an execve is executed. This * is no problem, but for the stacschedule()k. This is handled by not letting * main() use the stack at all after fork(). Thus, no function * calls - which means inline code for fork too, as otherwise we * would use the stack upon exit from 'fork()'. * * Actually only pause and fork are needed inline, so that there * won't be any messing with the stack from main(), but we define * some others too. */static inline _syscall0(int,fork)static inline _syscall0(int,pause)static inline _syscall1(int,setup,void *,BIOS)static inline _syscall0(int,sync)#include <linux/tty.h>#include <linux/sched.h>#include <linux/head.h>#include <asm/system.h>#include <asm/io.h>#include <stddef.h>#include <stdarg.h>#include <unistd.h>#include <fcntl.h>#include <sys/types.h>#include <linux/fs.h>static char printbuf[1024];extern int vsprintf();extern void init(void);extern void blk_dev_init(void);extern void chr_dev_init(void);extern void hd_init(void);extern void floppy_init(void);extern void mem_init(long start, long end);extern long rd_init(long mem_start, int length);extern long kernel_mktime(struct tm * tm);extern long startup_time;/* * This is set up by the setup-routine at boot-time */#define EXT_MEM_K (*(unsigned short *)0x90002)#define DRIVE_INFO (*(struct drive_info *)0x90080)#define ORIG_ROOT_DEV (*(unsigned short *)0x901FC)/* * Yeah, yeah, it's ugly, but I cannot find how to do this correctly * and this seems to work. I anybody has more info on the real-time * clock I'd be interested. Most of this was trial and error, and some * bios-listing reading. Urghh. */#define CMOS_READ(addr) ({ \outb_p(0x80|addr,0x70); \inb_p(0x71); \})#define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10)static void time_init(void){	struct tm time;	do {		time.tm_sec = CMOS_READ(0);		time.tm_min = CMOS_READ(2);		time.tm_hour = CMOS_READ(4);		time.tm_mday = CMOS_READ(7);		time.tm_mon = CMOS_READ(8);		time.tm_year = CMOS_READ(9);	} while (time.tm_sec != CMOS_READ(0));	BCD_TO_BIN(time.tm_sec);	BCD_TO_BIN(time.tm_min);	BCD_TO_BIN(time.tm_hour);	BCD_TO_BIN(time.tm_mday);	BCD_TO_BIN(time.tm_mon);	BCD_TO_BIN(time.tm_year);	time.tm_mon--;	startup_time = kernel_mktime(&time);}static long memory_end = 0;static long buffer_memory_end = 0;static long main_memory_start = 0;struct drive_info { char dummy[32]; } drive_info;void main(void)		/* This really IS void, no error here. */{			/* The startup routine assumes (well, ...) this *//* * Interrupts are still disabled. Do necessary setups, then * enable them */ 	ROOT_DEV = ORIG_ROOT_DEV; 	drive_info = DRIVE_INFO;	memory_end = (1<<20) + (EXT_MEM_K<<10);	memory_end &= 0xfffff000;	if (memory_end > 16*1024*1024)		memory_end = 16*1024*1024;	if (memory_end > 12*1024*1024) 		buffer_memory_end = 4*1024*1024;	else if (memory_end > 6*1024*1024)		buffer_memory_end = 2*1024*1024;	else		buffer_memory_end = 1*1024*1024;	main_memory_start = buffer_memory_end;#ifdef RAMDISK	main_memory_start += rd_init(main_memory_start, RAMDISK*1024);#endif	mem_init(main_memory_start,memory_end);	trap_init();	blk_dev_init();	chr_dev_init();	tty_init();	time_init();	sched_init();	buffer_init(buffer_memory_end);	hd_init();	floppy_init();	sti();	move_to_user_mode();	if (!fork()) {		/* we count on this going ok */		init();	}/* *   NOTE!!   For any other task 'pause()' would mean we have to get a * signal to awaken, but task0 is the sole exception (see 'schedule()') * as task 0 gets activated at every idle moment (when no other tasks * can run). For task0 'pause()' just means we go check if some other * task can run, and if not we return here. */	for(;;) pause();}static int printf(const char *fmt, ...){	va_list args;	int i;	va_start(args, fmt);	write(1,printbuf,i=vsprintf(printbuf, fmt, args));	va_end(args);	return i;}static char * argv_rc[] = { "/bin/sh", NULL };static char * envp_rc[] = { "HOME=/", NULL };static char * argv[] = { "-/bin/sh",NULL };static char * envp[] = { "HOME=/usr/root", NULL };void init(void){	int pid,i;	setup((void *) &drive_info);	(void) open("/dev/tty0",O_RDWR,0);	(void) dup(0);	(void) dup(0);	printf("%d buffers = %d bytes buffer space\n\r",NR_BUFFERS,		NR_BUFFERS*BLOCK_SIZE);	printf("Free mem: %d bytes\n\r",memory_end-main_memory_start);	if (!(pid=fork())) {		close(0);		if (open("/etc/rc",O_RDONLY,0))			_exit(1);		execve("/bin/sh",argv_rc,envp_rc);		_exit(2);	}	if (pid>0)		while (pid != wait(&i))			/* nothing */;	while (1) {		if ((pid=fork())<0) {			printf("Fork failed in init\r\n");			continue;		}		if (!pid) {			close(0);close(1);close(2);			setsid();			(void) open("/dev/tty0",O_RDWR,0);			(void) dup(0);			(void) dup(0);			_exit(execve("/bin/sh",argv,envp));		}		while (1)			if (pid == wait(&i))				break;		printf("\n\rchild %d died with code %04x\n\r",pid,i);		sync();	}	_exit(0);	/* NOTE! _exit, not exit() */}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人白浆超碰人人人人| 欧美sm极限捆绑bd| 欧美日韩一区二区三区高清| 在线日韩国产精品| 欧美日韩亚洲综合| 欧美成人在线直播| 精品国产在天天线2019| 国产亚洲va综合人人澡精品| 中文字幕乱码亚洲精品一区| 亚洲欧美精品午睡沙发| 婷婷久久综合九色国产成人| 美腿丝袜在线亚洲一区| 国产成人免费视频网站高清观看视频| 成人午夜av在线| 欧美三级韩国三级日本一级| 欧美一级二级三级蜜桃| 国产精品麻豆欧美日韩ww| 一区二区在线观看视频在线观看| 亚洲超碰精品一区二区| 国产高清精品网站| 欧美日韩一区小说| 国产日韩欧美在线一区| 亚洲乱码日产精品bd| 免费看日韩a级影片| 99久久99久久免费精品蜜臀| 日韩天堂在线观看| 亚洲.国产.中文慕字在线| 9久草视频在线视频精品| 91麻豆.com| 在线免费观看日韩欧美| 欧美午夜精品免费| 精品91自产拍在线观看一区| 日韩国产一二三区| 亚洲欧美激情小说另类| 国产综合色在线视频区| 91麻豆精品在线观看| 精品欧美乱码久久久久久| 亚洲综合色区另类av| 成人免费视频一区二区| 26uuu欧美| 全国精品久久少妇| 欧美久久一二区| 专区另类欧美日韩| 理论片日本一区| 日韩一区二区三区三四区视频在线观看| 一区二区三区中文免费| 国产精选一区二区三区| 精品久久久久香蕉网| 精品亚洲成a人在线观看| 日韩免费看网站| 青青草97国产精品免费观看| 精品国产乱码久久久久久蜜臀 | 亚洲国产成人一区二区三区| 久久国产乱子精品免费女| 欧美成人a∨高清免费观看| 首页综合国产亚洲丝袜| 欧美亚洲高清一区| 亚洲一区视频在线| 日韩三级在线免费观看| 国产精品一二三四区| 国产精品初高中害羞小美女文| 暴力调教一区二区三区| 玉米视频成人免费看| 欧美日韩一区高清| 精品一区二区三区的国产在线播放| 欧美成人综合网站| 成人黄色免费短视频| 香港成人在线视频| 久久久久久综合| 在线观看亚洲a| 国产精品一二三四五| 亚洲综合在线视频| 精品久久久久久久一区二区蜜臀| 国产成人精品一区二| 亚洲资源在线观看| 欧美精品一区男女天堂| 在线免费观看日本一区| 国产精品夜夜嗨| 午夜精彩视频在线观看不卡| 国产亚洲精品7777| 日韩欧美一二三四区| 97精品国产97久久久久久久久久久久| 日产国产高清一区二区三区| 亚洲欧洲av一区二区三区久久| 精品久久久久一区| 51精品国自产在线| 欧美主播一区二区三区美女| 国产成人免费视频网站高清观看视频| 亚洲18影院在线观看| 樱花草国产18久久久久| 中文一区在线播放| 欧美mv和日韩mv国产网站| 欧美久久久影院| 欧美日韩中文一区| 欧美日韩一区小说| 色综合久久久久| av高清不卡在线| www.亚洲激情.com| 99久久夜色精品国产网站| 成人精品电影在线观看| 国产一区二区精品久久99| 美女视频一区二区三区| 日本成人中文字幕在线视频| 免费的成人av| 精品在线亚洲视频| 国产一区二区美女诱惑| 懂色av一区二区三区免费看| 成人激情动漫在线观看| 91香蕉视频mp4| 欧美三级韩国三级日本一级| 777色狠狠一区二区三区| 日韩欧美国产不卡| 久久久久成人黄色影片| 中文字幕一区二区三区视频 | 视频一区中文字幕国产| 天堂一区二区在线| 激情文学综合插| 不卡的av中国片| 欧美日韩国产成人在线91| 日韩久久久久久| 亚洲欧洲精品成人久久奇米网| 亚洲婷婷国产精品电影人久久| 亚洲成a人v欧美综合天堂下载| 久久激情五月激情| 99热在这里有精品免费| 欧美日韩在线三级| 国产欧美精品一区aⅴ影院| 亚洲午夜一区二区| 国产传媒一区在线| 欧美日韩精品高清| 日本一区二区不卡视频| 日韩成人精品视频| 成人av网站免费| 日韩免费视频一区| 天堂成人国产精品一区| 成人avav影音| 久久精品在线免费观看| 午夜欧美一区二区三区在线播放| 成人av资源网站| 日韩一区二区三区观看| 一区二区三区在线观看欧美| 国产精品一二三区在线| 日韩欧美在线综合网| 一区二区三区精品| 99视频精品全部免费在线| 精品国产一区二区三区四区四| 亚洲成人久久影院| 欧美午夜精品理论片a级按摩| 自拍偷拍欧美激情| av一二三不卡影片| 国产三级精品视频| 国产精品一二三区在线| 久久久欧美精品sm网站| 国产一区在线不卡| 久久久久国产免费免费| 国产精品中文有码| 一区二区三区在线观看国产| 成人av在线播放网站| 欧美精品一区视频| 日韩美女精品在线| 久久97超碰国产精品超碰| 成人一区二区三区视频| 欧美日韩国产首页| 久久久久9999亚洲精品| 午夜精品久久久久久久99樱桃| 91久久精品午夜一区二区| 亚洲天堂久久久久久久| 欧美亚洲图片小说| 日韩精品亚洲一区| 日韩视频一区二区在线观看| 国内偷窥港台综合视频在线播放| 久久精品一区二区三区不卡牛牛| 粉嫩av一区二区三区在线播放| 中文字幕高清一区| 在线看日韩精品电影| 日韩精品欧美精品| 欧美无砖砖区免费| 精品亚洲aⅴ乱码一区二区三区| 国产偷国产偷亚洲高清人白洁| 成人综合在线观看| 亚洲图片一区二区| 国产亚洲成年网址在线观看| 色综合久久久网| 精品一区二区三区免费播放| 最新高清无码专区| 欧美一区二区成人6969| 成人av在线一区二区三区| 天天影视涩香欲综合网| 久久久久久久免费视频了| 欧美日韩亚洲综合在线| 国产精品一品视频| 青青草原综合久久大伊人精品| 国产精品久久久久久久岛一牛影视| 欧美精品亚洲二区| 色综合久久天天综合网| 国产a精品视频| 国产一区二区调教| 奇米综合一区二区三区精品视频| 亚洲欧美一区二区三区极速播放| 久久久久久免费毛片精品|