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

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

?? do_mounts.c

?? linux 得初始化。
?? C
?? 第 1 頁 / 共 2 頁
字號:
	lseek(fd, (start_block+1) * BLOCK_SIZE, 0);	read(fd, buf, size);	/* Try minix */	if (minixsb->s_magic == MINIX_SUPER_MAGIC ||	    minixsb->s_magic == MINIX_SUPER_MAGIC2) {		printk(KERN_NOTICE		       "RAMDISK: Minix filesystem found at block %d\n",		       start_block);		nblocks = minixsb->s_nzones << minixsb->s_log_zone_size;		goto done;	}	/* Try ext2 */	if (ext2sb->s_magic == cpu_to_le16(EXT2_SUPER_MAGIC)) {		printk(KERN_NOTICE		       "RAMDISK: ext2 filesystem found at block %d\n",		       start_block);		nblocks = le32_to_cpu(ext2sb->s_blocks_count);		goto done;	}	printk(KERN_NOTICE	       "RAMDISK: Couldn't find valid RAM disk image starting at %d.\n",	       start_block);	done:	lseek(fd, start_block * BLOCK_SIZE, 0);	kfree(buf);	return nblocks;}#endifstatic int __init rd_load_image(char *from){	int res = 0;#ifdef CONFIG_BLK_DEV_RAM	int in_fd, out_fd;	unsigned long rd_blocks, devblocks;	int nblocks, i;	char *buf;	unsigned short rotate = 0;#if !defined(CONFIG_ARCH_S390) && !defined(CONFIG_PPC_ISERIES)	char rotator[4] = { '|' , '/' , '-' , '\\' };#endif	out_fd = open("/dev/ram", O_RDWR, 0);	if (out_fd < 0)		goto out;	in_fd = open(from, O_RDONLY, 0);	if (in_fd < 0)		goto noclose_input;	nblocks = identify_ramdisk_image(in_fd, rd_image_start);	if (nblocks < 0)		goto done;	if (nblocks == 0) {#ifdef BUILD_CRAMDISK		if (crd_load(in_fd, out_fd) == 0)			goto successful_load;#else		printk(KERN_NOTICE		       "RAMDISK: Kernel does not support compressed "		       "RAM disk images\n");#endif		goto done;	}	/*	 * NOTE NOTE: nblocks suppose that the blocksize is BLOCK_SIZE, so	 * rd_load_image will work only with filesystem BLOCK_SIZE wide!	 * So make sure to use 1k blocksize while generating ext2fs	 * ramdisk-images.	 */	if (sys_ioctl(out_fd, BLKGETSIZE, (unsigned long)&rd_blocks) < 0)		rd_blocks = 0;	else		rd_blocks >>= 1;	if (nblocks > rd_blocks) {		printk("RAMDISK: image too big! (%d/%d blocks)\n",		       nblocks, rd_blocks);		goto done;	}			/*	 * OK, time to copy in the data	 */	buf = kmalloc(BLOCK_SIZE, GFP_KERNEL);	if (buf == 0) {		printk(KERN_ERR "RAMDISK: could not allocate buffer\n");		goto done;	}	if (sys_ioctl(in_fd, BLKGETSIZE, (unsigned long)&devblocks) < 0)		devblocks = 0;	else		devblocks >>= 1;	if (strcmp(from, "/dev/initrd") == 0)		devblocks = nblocks;	if (devblocks == 0) {		printk(KERN_ERR "RAMDISK: could not determine device size\n");		goto done;	}	printk(KERN_NOTICE "RAMDISK: Loading %d blocks [%d disk%s] into ram disk... ", 		nblocks, ((nblocks-1)/devblocks)+1, nblocks>devblocks ? "s" : "");	for (i=0; i < nblocks; i++) {		if (i && (i % devblocks == 0)) {			printk("done disk #%d.\n", i/devblocks);			rotate = 0;			if (close(in_fd)) {				printk("Error closing the disk.\n");				goto noclose_input;			}			change_floppy("disk #%d", i/devblocks+1);			in_fd = open(from, O_RDONLY, 0);			if (in_fd < 0)  {				printk("Error opening disk.\n");				goto noclose_input;			}			printk("Loading disk #%d... ", i/devblocks+1);		}		read(in_fd, buf, BLOCK_SIZE);		write(out_fd, buf, BLOCK_SIZE);#if !defined(CONFIG_ARCH_S390) && !defined(CONFIG_PPC_ISERIES)		if (!(i % 16)) {			printk("%c\b", rotator[rotate & 0x3]);			rotate++;		}#endif	}	printk("done.\n");	kfree(buf);successful_load:	res = 1;done:	close(in_fd);noclose_input:	close(out_fd);out:	sys_unlink("/dev/ram");#endif	return res;}static int __init rd_load_disk(int n){#ifdef CONFIG_BLK_DEV_RAM	if (rd_prompt)		change_floppy("root floppy disk to be loaded into RAM disk");	create_dev("/dev/ram", MKDEV(RAMDISK_MAJOR, n), NULL);#endif	return rd_load_image("/dev/root");}#ifdef CONFIG_DEVFS_FSstatic void __init convert_name(char *prefix, char *name, char *p, int part){	int host, bus, target, lun;	char dest[64];	char src[64];	char *base = p - 1;	/*  Decode "c#b#t#u#"  */	if (*p++ != 'c')		return;	host = simple_strtol(p, &p, 10);	if (*p++ != 'b')		return;	bus = simple_strtol(p, &p, 10);	if (*p++ != 't')		return;	target = simple_strtol(p, &p, 10);	if (*p++ != 'u')		return;	lun = simple_strtol(p, &p, 10);	if (!part)		sprintf(dest, "%s/host%d/bus%d/target%d/lun%d",				prefix, host, bus, target, lun);	else if (*p++ == 'p')		sprintf(dest, "%s/host%d/bus%d/target%d/lun%d/part%s",				prefix, host, bus, target, lun, p);	else		sprintf(dest, "%s/host%d/bus%d/target%d/lun%d/disc",				prefix, host, bus, target, lun);	*base = '\0';	sprintf(src, "/dev/%s", name);	sys_mkdir(src, 0755);	*base = '/';	sprintf(src, "/dev/%s", name);	sys_symlink(dest, src);}static void __init devfs_make_root(char *name){	if (!strncmp(name, "sd/", 3))		convert_name("../scsi", name, name+3, 1);	else if (!strncmp(name, "sr/", 3))		convert_name("../scsi", name, name+3, 0);	else if (!strncmp(name, "ide/hd/", 7))		convert_name("..", name, name + 7, 1);	else if (!strncmp(name, "ide/cd/", 7))		convert_name("..", name, name + 7, 0);}#elsestatic void __init devfs_make_root(char *name){}#endifstatic void __init mount_root(void){#ifdef CONFIG_ROOT_NFS	if (MAJOR(ROOT_DEV) == UNNAMED_MAJOR) {		if (mount_nfs_root()) {			sys_chdir("/root");			ROOT_DEV = current->fs->pwdmnt->mnt_sb->s_dev;			printk("VFS: Mounted root (nfs filesystem).\n");			return;		}		printk(KERN_ERR "VFS: Unable to mount root fs via NFS, trying floppy.\n");		ROOT_DEV = MKDEV(FLOPPY_MAJOR, 0);	}#endif	devfs_make_root(root_device_name);	create_dev("/dev/root", ROOT_DEV, root_device_name);#ifdef CONFIG_BLK_DEV_FD	if (MAJOR(ROOT_DEV) == FLOPPY_MAJOR) {		/* rd_doload is 2 for a dual initrd/ramload setup */		if (rd_doload==2) {			if (rd_load_disk(1)) {				ROOT_DEV = MKDEV(RAMDISK_MAJOR, 1);				create_dev("/dev/root", ROOT_DEV, NULL);			}		} else			change_floppy("root floppy");	}#endif	mount_block_root("/dev/root", root_mountflags);}#ifdef CONFIG_BLK_DEV_INITRDstatic int old_fd, root_fd;static int do_linuxrc(void * shell){	static char *argv[] = { "linuxrc", NULL, };	extern char * envp_init[];	close(old_fd);	close(root_fd);	close(0);	close(1);	close(2);	setsid();	(void) open("/dev/console",O_RDWR,0);	(void) dup(0);	(void) dup(0);	return execve(shell, argv, envp_init);}#endifstatic void __init handle_initrd(void){#ifdef CONFIG_BLK_DEV_INITRD	int ram0 = kdev_t_to_nr(MKDEV(RAMDISK_MAJOR,0));	int error;	int i, pid;	create_dev("/dev/root.old", ram0, NULL);	/* mount initrd on rootfs' /root */	mount_block_root("/dev/root.old", root_mountflags & ~MS_RDONLY);	sys_mkdir("/old", 0700);	root_fd = open("/", 0, 0);	old_fd = open("/old", 0, 0);	/* move initrd over / and chdir/chroot in initrd root */	sys_chdir("/root");	sys_mount(".", "/", NULL, MS_MOVE, NULL);	sys_chroot(".");	mount_devfs_fs ();	pid = kernel_thread(do_linuxrc, "/linuxrc", SIGCHLD);	if (pid > 0) {		while (pid != wait(&i))			yield();	}	/* move initrd to rootfs' /old */	sys_fchdir(old_fd);	sys_mount("/", ".", NULL, MS_MOVE, NULL);	/* switch root and cwd back to / of rootfs */	sys_fchdir(root_fd);	sys_chroot(".");	sys_umount("/old/dev", 0);	close (root_fd);	close (old_fd);	if (real_root_dev == ram0) {		sys_chdir("/old");		return;	}	ROOT_DEV = real_root_dev;	mount_root();	printk(KERN_NOTICE "Trying to move old root to /initrd ... ");	error = sys_mount("/old", "/root/initrd", NULL, MS_MOVE, NULL);	if (!error)		printk("okay\n");	else {		int fd = open("/dev/root.old", O_RDWR, 0);		printk("failed\n");		printk(KERN_NOTICE "Unmounting old root\n");		sys_umount("/old", MNT_DETACH);		printk(KERN_NOTICE "Trying to free ramdisk memory ... ");		if (fd < 0) {			error = fd;		} else {			error = sys_ioctl(fd, BLKFLSBUF, 0);			close(fd);		}		printk(!error ? "okay\n" : "failed\n");	}#endif}static int __init initrd_load(void){#ifdef CONFIG_BLK_DEV_INITRD	create_dev("/dev/ram", MKDEV(RAMDISK_MAJOR, 0), NULL);	create_dev("/dev/initrd", MKDEV(RAMDISK_MAJOR, INITRD_MINOR), NULL);#endif	return rd_load_image("/dev/initrd");}/* * Prepare the namespace - decide what/where to mount, load ramdisks, etc. */void prepare_namespace(void){	int is_floppy = MAJOR(ROOT_DEV) == FLOPPY_MAJOR;#ifdef CONFIG_ALL_PPC	extern void arch_discover_root(void);	arch_discover_root();#endif /* CONFIG_ALL_PPC */#ifdef CONFIG_BLK_DEV_INITRD	if (!initrd_start)		mount_initrd = 0;	real_root_dev = ROOT_DEV;#endif	sys_mkdir("/dev", 0700);	sys_mkdir("/root", 0700);	sys_mknod("/dev/console", S_IFCHR|0600, MKDEV(TTYAUX_MAJOR, 1));#ifdef CONFIG_DEVFS_FS	sys_mount("devfs", "/dev", "devfs", 0, NULL);	do_devfs = 1;#endif	create_dev("/dev/root", ROOT_DEV, NULL);	if (mount_initrd) {		if (initrd_load() && ROOT_DEV != MKDEV(RAMDISK_MAJOR, 0)) {			handle_initrd();			goto out;		}	} else if (is_floppy && rd_doload && rd_load_disk(0))		ROOT_DEV = MKDEV(RAMDISK_MAJOR, 0);	mount_root();out:	sys_umount("/dev", 0);	sys_mount(".", "/", NULL, MS_MOVE, NULL);	sys_chroot(".");	mount_devfs_fs ();}#ifdef CONFIG_BLK_DEV_RAM#if defined(BUILD_CRAMDISK) && defined(CONFIG_BLK_DEV_RAM)/* * gzip declarations */#define OF(args)  args#ifndef memzero#define memzero(s, n)     memset ((s), 0, (n))#endiftypedef unsigned char  uch;typedef unsigned short ush;typedef unsigned long  ulg;#define INBUFSIZ 4096#define WSIZE 0x8000    /* window size--must be a power of two, and */			/*  at least 32K for zip's deflate method */static uch *inbuf;static uch *window;static unsigned insize;  /* valid bytes in inbuf */static unsigned inptr;   /* index of next byte to be processed in inbuf */static unsigned outcnt;  /* bytes in output buffer */static int exit_code;static long bytes_out;static int crd_infd, crd_outfd;#define get_byte()  (inptr < insize ? inbuf[inptr++] : fill_inbuf())		/* Diagnostic functions (stubbed out) */#define Assert(cond,msg)#define Trace(x)#define Tracev(x)#define Tracevv(x)#define Tracec(c,x)#define Tracecv(c,x)#define STATIC staticstatic int  fill_inbuf(void);static void flush_window(void);static void *malloc(int size);static void free(void *where);static void error(char *m);static void gzip_mark(void **);static void gzip_release(void **);#include "../lib/inflate.c"static void __init *malloc(int size){	return kmalloc(size, GFP_KERNEL);}static void __init free(void *where){	kfree(where);}static void __init gzip_mark(void **ptr){}static void __init gzip_release(void **ptr){}/* =========================================================================== * Fill the input buffer. This is called only when the buffer is empty * and at least one byte is really needed. */static int __init fill_inbuf(void){	if (exit_code) return -1;		insize = read(crd_infd, inbuf, INBUFSIZ);	if (insize == 0) return -1;	inptr = 1;	return inbuf[0];}/* =========================================================================== * Write the output window window[0..outcnt-1] and update crc and bytes_out. * (Used for the decompressed data only.) */static void __init flush_window(void){    ulg c = crc;         /* temporary variable */    unsigned n;    uch *in, ch;        write(crd_outfd, window, outcnt);    in = window;    for (n = 0; n < outcnt; n++) {	    ch = *in++;	    c = crc_32_tab[((int)c ^ ch) & 0xff] ^ (c >> 8);    }    crc = c;    bytes_out += (ulg)outcnt;    outcnt = 0;}static void __init error(char *x){	printk(KERN_ERR "%s", x);	exit_code = 1;}static int __init crd_load(int in_fd, int out_fd){	int result;	insize = 0;		/* valid bytes in inbuf */	inptr = 0;		/* index of next byte to be processed in inbuf */	outcnt = 0;		/* bytes in output buffer */	exit_code = 0;	bytes_out = 0;	crc = (ulg)0xffffffffL; /* shift register contents */	crd_infd = in_fd;	crd_outfd = out_fd;	inbuf = kmalloc(INBUFSIZ, GFP_KERNEL);	if (inbuf == 0) {		printk(KERN_ERR "RAMDISK: Couldn't allocate gzip buffer\n");		return -1;	}	window = kmalloc(WSIZE, GFP_KERNEL);	if (window == 0) {		printk(KERN_ERR "RAMDISK: Couldn't allocate gzip window\n");		kfree(inbuf);		return -1;	}	makecrc();	result = gunzip();	kfree(inbuf);	kfree(window);	return result;}#endif  /* BUILD_CRAMDISK && CONFIG_BLK_DEV_RAM */#endif  /* CONFIG_BLK_DEV_RAM */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品欧美一区二区在线观看| 久久国产生活片100| 亚洲风情在线资源站| 国产精品资源在线观看| 精品国产一区二区三区四区四| 亚洲综合在线第一页| 成人永久aaa| 久久这里只有精品6| 激情综合色综合久久| 欧美成人r级一区二区三区| 本田岬高潮一区二区三区| 一本久久精品一区二区| 国产亚洲欧洲一区高清在线观看| 久久精品国产亚洲高清剧情介绍| 夜夜精品浪潮av一区二区三区| 91麻豆精品国产91久久久久久久久 | 亚洲一区二区三区在线播放| 久久精品亚洲精品国产欧美kt∨| 欧美另类高清zo欧美| 日精品一区二区| 日韩一区二区三区视频| 精品无码三级在线观看视频| 亚洲国产aⅴ天堂久久| 国产精品毛片a∨一区二区三区| 懂色av一区二区三区免费观看| 国产精品久久久久影院色老大| 日本丶国产丶欧美色综合| 午夜精品影院在线观看| 欧美精品自拍偷拍| 中文字幕欧美国产| 亚洲国产高清不卡| 成人av免费在线观看| 日本二三区不卡| 久久国产夜色精品鲁鲁99| 国产精品久久久久久久久免费相片 | 亚洲综合久久久| 中文字幕欧美日韩一区| 国产午夜一区二区三区| 精品久久一二三区| 日韩欧美专区在线| 日韩欧美激情在线| 国内欧美视频一区二区 | 亚洲成人黄色小说| 国产亚洲福利社区一区| 91美女片黄在线观看| 日韩国产成人精品| 亚洲一二三区不卡| 久久精品99久久久| 成人动漫视频在线| 亚洲欧洲无码一区二区三区| 欧美性色综合网| 成人免费视频国产在线观看| 在线视频国内自拍亚洲视频| 色婷婷精品大视频在线蜜桃视频| 91麻豆精品国产91久久久资源速度 | 国产成人超碰人人澡人人澡| 精品国产伦一区二区三区免费| 久久精品日韩一区二区三区| 亚洲精品视频免费观看| 国产精品天干天干在线综合| 亚洲在线中文字幕| 国产成人在线视频网站| 欧美日韩免费观看一区二区三区| 丁香激情综合国产| 欧美男生操女生| 中文字幕字幕中文在线中不卡视频| 中文字幕第一区综合| 午夜国产精品一区| 成人av电影免费在线播放| 欧美一区日韩一区| 精品va天堂亚洲国产| 亚洲一二三区视频在线观看| 成人深夜福利app| 日韩精品最新网址| 午夜在线成人av| 99精品偷自拍| 欧美日韩国产一级| 18欧美乱大交hd1984| 国产在线国偷精品免费看| 国产激情视频一区二区在线观看 | 91视频观看免费| 精品国产髙清在线看国产毛片| 亚洲一区二区五区| 99国产精品99久久久久久| 欧美精品一区二区三区蜜桃| 五月开心婷婷久久| 日本道免费精品一区二区三区| 国产精品全国免费观看高清 | 97se亚洲国产综合在线| 久久女同性恋中文字幕| 中文字幕一区二区三区乱码在线| 久久成人久久爱| 欧美一区二区三区在线观看视频 | 国产精品白丝av| 日韩网站在线看片你懂的| 亚洲国产精品麻豆| 色激情天天射综合网| 亚洲欧洲三级电影| 成人18视频日本| 日本一区二区三区电影| 亚洲福利视频一区二区| 91免费看片在线观看| 亚洲欧洲日产国产综合网| 成人高清av在线| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 国产欧美日韩另类一区| 国产一区二区三区四区五区美女 | 精品国产免费一区二区三区四区| 欧美系列日韩一区| 69久久99精品久久久久婷婷| 国产69精品久久777的优势| 亚洲无人区一区| 国产日韩欧美a| 精品视频1区2区| 狠狠色综合播放一区二区| 亚洲精品乱码久久久久久久久 | 在线看日本不卡| 午夜欧美在线一二页| 欧美精品一区二区三区很污很色的 | kk眼镜猥琐国模调教系列一区二区 | 欧美二区三区的天堂| 欧美日韩一本到| 日韩欧美你懂的| 日韩精品自拍偷拍| 精品免费国产一区二区三区四区| 欧美日韩一区二区三区高清| 日本道在线观看一区二区| 欧美亚洲国产一区二区三区va| 不卡一卡二卡三乱码免费网站| 国产1区2区3区精品美女| 国产精品一区二区在线观看不卡| 黑人巨大精品欧美黑白配亚洲| 自拍偷在线精品自拍偷无码专区| 免费成人在线观看| 青青草97国产精品免费观看无弹窗版 | √…a在线天堂一区| 色偷偷成人一区二区三区91| 国产成人在线视频网址| 成人免费视频caoporn| 国产拍欧美日韩视频二区| 99视频精品在线| 亚洲午夜在线观看视频在线| 欧美一区二区啪啪| 国产盗摄视频一区二区三区| 成人免费毛片嘿嘿连载视频| 911精品国产一区二区在线| 一区二区三区四区激情| 69堂精品视频| 国产成人免费xxxxxxxx| 亚洲你懂的在线视频| 丰满白嫩尤物一区二区| 亚洲欧洲精品一区二区三区| 欧美三级电影网| 国产精品1区2区3区| 亚洲久本草在线中文字幕| 欧美一区在线视频| 99视频一区二区三区| 美国精品在线观看| 欧美一卡在线观看| 成人国产精品视频| 日本不卡一二三| 1024成人网色www| 欧美videofree性高清杂交| 99久久精品国产导航| 麻豆精品视频在线观看视频| 国产精品国产三级国产普通话99| 538在线一区二区精品国产| 不卡一区二区在线| 极品少妇一区二区三区精品视频| 欧美国产乱子伦 | 欧美成人三级在线| 99精品久久只有精品| 久久电影国产免费久久电影| 亚洲一区欧美一区| 国产精品色在线| 日韩视频在线观看一区二区| 色狠狠一区二区| 精品蜜桃在线看| 777亚洲妇女| 色成人在线视频| 成人污视频在线观看| 日韩电影免费在线观看网站| 亚洲人成小说网站色在线 | 亚洲午夜久久久久中文字幕久| 国产欧美一区二区在线| 日韩欧美国产精品| 欧美精品粉嫩高潮一区二区| 色综合天天综合给合国产| 亚洲欧美日韩国产成人精品影院| 2022国产精品视频| 欧美一区二区三区视频在线观看| 欧美午夜精品理论片a级按摩| 97精品视频在线观看自产线路二| 国产一区二区日韩精品| 蜜臀久久久久久久| 日本不卡123| 日韩国产欧美在线播放| 无吗不卡中文字幕| 亚洲线精品一区二区三区八戒| 亚洲影视资源网|