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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? super.c

?? 《嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開(kāi)發(fā)實(shí)驗(yàn)教材二源碼》Linux內(nèi)核移植與編譯實(shí)驗(yàn)
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/* *  linux/fs/hpfs/super.c * *  Mikulas Patocka (mikulas@artax.karlin.mff.cuni.cz), 1998-1999 * *  mounting, unmounting, error handling */#include <linux/string.h>#include "hpfs_fn.h"#include <linux/module.h>#include <linux/init.h>/* Mark the filesystem dirty, so that chkdsk checks it when os/2 booted */static void mark_dirty(struct super_block *s){	if (s->s_hpfs_chkdsk && !(s->s_flags & MS_RDONLY)) {		struct buffer_head *bh;		struct hpfs_spare_block *sb;		if ((sb = hpfs_map_sector(s, 17, &bh, 0))) {			sb->dirty = 1;			sb->old_wrote = 0;			mark_buffer_dirty(bh);			brelse(bh);		}	}}/* Mark the filesystem clean (mark it dirty for chkdsk if chkdsk==2 or if there   were errors) */static void unmark_dirty(struct super_block *s){	struct buffer_head *bh;	struct hpfs_spare_block *sb;	if (s->s_flags & MS_RDONLY) return;	if ((sb = hpfs_map_sector(s, 17, &bh, 0))) {		sb->dirty = s->s_hpfs_chkdsk > 1 - s->s_hpfs_was_error;		sb->old_wrote = s->s_hpfs_chkdsk >= 2 && !s->s_hpfs_was_error;		mark_buffer_dirty(bh);		brelse(bh);	}}/* Filesystem error... */#define ERR_BUF_SIZE 1024void hpfs_error(struct super_block *s, char *m,...){	char *buf;	va_list l;	va_start(l, m);	if (!(buf = kmalloc(ERR_BUF_SIZE, GFP_KERNEL)))		printk("HPFS: No memory for error message '%s'\n",m);	else if (vsprintf(buf, m, l) >= ERR_BUF_SIZE)		printk("HPFS: Grrrr... Kernel memory corrupted ... going on, but it'll crash very soon :-(\n");	printk("HPFS: filesystem error: ");	if (buf) printk("%s", buf);	else printk("%s\n",m);	if (!s->s_hpfs_was_error) {		if (s->s_hpfs_err == 2) {			printk("; crashing the system because you wanted it\n");			mark_dirty(s);			panic("HPFS panic");		} else if (s->s_hpfs_err == 1) {			if (s->s_flags & MS_RDONLY) printk("; already mounted read-only\n");			else {				printk("; remounting read-only\n");				mark_dirty(s);				s->s_flags |= MS_RDONLY;			}		} else if (s->s_flags & MS_RDONLY) printk("; going on - but anything won't be destroyed because it's read-only\n");		else printk("; corrupted filesystem mounted read/write - your computer will explode within 20 seconds ... but you wanted it so!\n");	} else printk("\n");	if (buf) kfree(buf);	s->s_hpfs_was_error = 1;}/*  * A little trick to detect cycles in many hpfs structures and don't let the * kernel crash on corrupted filesystem. When first called, set c2 to 0. * * BTW. chkdsk doesn't detect cycles correctly. When I had 2 lost directories * nested each in other, chkdsk locked up happilly. */int hpfs_stop_cycles(struct super_block *s, int key, int *c1, int *c2,		char *msg){	if (*c2 && *c1 == key) {		hpfs_error(s, "cycle detected on key %08x in %s", key, msg);		return 1;	}	(*c2)++;	if (!((*c2 - 1) & *c2)) *c1 = key;	return 0;}void hpfs_put_super(struct super_block *s){	if (s->s_hpfs_cp_table) kfree(s->s_hpfs_cp_table);	if (s->s_hpfs_bmp_dir) kfree(s->s_hpfs_bmp_dir);	unmark_dirty(s);}unsigned hpfs_count_one_bitmap(struct super_block *s, secno secno){	struct quad_buffer_head qbh;	unsigned *bits;	unsigned i, count;	if (!(bits = hpfs_map_4sectors(s, secno, &qbh, 4))) return 0;	count = 0;	for (i = 0; i < 2048 / sizeof(unsigned); i++) {		unsigned b; 		if (!bits[i]) continue;		for (b = bits[i]; b; b>>=1) count += b & 1;	}	hpfs_brelse4(&qbh);	return count;}static unsigned count_bitmaps(struct super_block *s){	unsigned n, count, n_bands;	n_bands = (s->s_hpfs_fs_size + 0x3fff) >> 14;	count = 0;	for (n = 0; n < n_bands; n++)		count += hpfs_count_one_bitmap(s, s->s_hpfs_bmp_dir[n]);	return count;}int hpfs_statfs(struct super_block *s, struct statfs *buf){	/*if (s->s_hpfs_n_free == -1) {*/		s->s_hpfs_n_free = count_bitmaps(s);		s->s_hpfs_n_free_dnodes = hpfs_count_one_bitmap(s, s->s_hpfs_dmap);	/*}*/	buf->f_type = s->s_magic;	buf->f_bsize = 512;	buf->f_blocks = s->s_hpfs_fs_size;	buf->f_bfree = s->s_hpfs_n_free;	buf->f_bavail = s->s_hpfs_n_free;	buf->f_files = s->s_hpfs_dirband_size / 4;	buf->f_ffree = s->s_hpfs_n_free_dnodes;	buf->f_namelen = 254;	return 0;}/* Super operations */static struct super_operations hpfs_sops ={        read_inode:	hpfs_read_inode,	delete_inode:	hpfs_delete_inode,	put_super:	hpfs_put_super,	statfs:		hpfs_statfs,	remount_fs:	hpfs_remount_fs,};/* * A tiny parser for option strings, stolen from dosfs. * * Stolen again from read-only hpfs. */int parse_opts(char *opts, uid_t *uid, gid_t *gid, umode_t *umask,	       int *lowercase, int *conv, int *eas, int *chk, int *errs,	       int *chkdsk, int *timeshift){	char *p, *rhs;	if (!opts)		return 1;	/*printk("Parsing opts: '%s'\n",opts);*/	for (p = strtok(opts, ","); p != 0; p = strtok(0, ",")) {		if ((rhs = strchr(p, '=')) != 0)			*rhs++ = '\0';		if (!strcmp(p, "help")) return 2;		if (!strcmp(p, "uid")) {			if (!rhs || !*rhs)				return 0;			*uid = simple_strtoul(rhs, &rhs, 0);			if (*rhs)				return 0;		}		else if (!strcmp(p, "gid")) {			if (!rhs || !*rhs)				return 0;			*gid = simple_strtoul(rhs, &rhs, 0);			if (*rhs)				return 0;		}		else if (!strcmp(p, "umask")) {			if (!rhs || !*rhs)				return 0;			*umask = simple_strtoul(rhs, &rhs, 8);			if (*rhs)				return 0;		}		else if (!strcmp(p, "timeshift")) {			int m = 1;			if (!rhs || !*rhs)				return 0;			if (*rhs == '-') m = -1;			if (*rhs == '+' || *rhs == '-') rhs++;			*timeshift = simple_strtoul(rhs, &rhs, 0) * m;			if (*rhs)				return 0;		}		else if (!strcmp(p, "case")) {			if (!rhs || !*rhs)				return 0;			if (!strcmp(rhs, "lower"))				*lowercase = 1;			else if (!strcmp(rhs, "asis"))				*lowercase = 0;			else				return 0;		}		else if (!strcmp(p, "conv")) {			if (!rhs || !*rhs)				return 0;			if (!strcmp(rhs, "binary"))				*conv = CONV_BINARY;			else if (!strcmp(rhs, "text"))				*conv = CONV_TEXT;			else if (!strcmp(rhs, "auto"))				*conv = CONV_AUTO;			else				return 0;		}		else if (!strcmp(p, "check")) {			if (!rhs || !*rhs)				return 0;			if (!strcmp(rhs, "none"))				*chk = 0;			else if (!strcmp(rhs, "normal"))				*chk = 1;			else if (!strcmp(rhs, "strict"))				*chk = 2;			else				return 0;		}		else if (!strcmp(p, "errors")) {			if (!rhs || !*rhs)				return 0;			if (!strcmp(rhs, "continue"))				*errs = 0;			else if (!strcmp(rhs, "remount-ro"))				*errs = 1;			else if (!strcmp(rhs, "panic"))				*errs = 2;			else				return 0;		}		else if (!strcmp(p, "eas")) {			if (!rhs || !*rhs)				return 0;			if (!strcmp(rhs, "no"))				*eas = 0;			else if (!strcmp(rhs, "ro"))				*eas = 1;			else if (!strcmp(rhs, "rw"))				*eas = 2;			else				return 0;		}		else if (!strcmp(p, "chkdsk")) {			if (!rhs || !*rhs)				return 0;			if (!strcmp(rhs, "no"))				*chkdsk = 0;			else if (!strcmp(rhs, "errors"))				*chkdsk = 1;			else if (!strcmp(rhs, "always"))				*chkdsk = 2;			else				return 0;		}		else			return 0;	}	return 1;}static inline void hpfs_help(void){	printk("\n\HPFS filesystem options:\n\      help              do not mount and display this text\n\

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人高清电影在线| 成人免费观看男女羞羞视频| 国产日韩欧美高清| 国产精品嫩草影院com| 日本精品裸体写真集在线观看| 欧美a级一区二区| √…a在线天堂一区| 日韩精品一区二区三区在线播放| 男女性色大片免费观看一区二区 | 99久久免费精品| 中文字幕一区二区在线播放| 成人免费视频免费观看| 国产精品毛片无遮挡高清| 粉嫩一区二区三区在线看 | 欧美精品xxxxbbbb| 亚洲成人综合在线| 91精品国产综合久久香蕉的特点| 午夜视频在线观看一区二区三区| 中文字幕不卡的av| 久久久久久久精| 日韩一级大片在线观看| 国产精品一区二区久久不卡| 天堂精品中文字幕在线| 日韩精品在线看片z| 欧美亚洲国产一卡| 在线观看国产一区二区| 99re这里都是精品| 成人动漫一区二区在线| 国产福利91精品| 国产在线不卡一区| 亚洲精品国产精华液| 亚洲同性gay激情无套| 欧美乱妇15p| 欧美综合视频在线观看| 色网综合在线观看| 蜜臀91精品一区二区三区| 亚洲v中文字幕| 五月综合激情网| 亚洲第一在线综合网站| 亚洲精品一区在线观看| 日韩亚洲欧美一区二区三区| 99精品国产视频| 99久久99久久综合| 精品国产成人系列| 久久精品日韩一区二区三区| 色视频欧美一区二区三区| 一本大道久久a久久综合婷婷| 无码av免费一区二区三区试看 | 国产成人免费视| 成a人片国产精品| 日韩影院精彩在线| 国产精品视频你懂的| 欧美日韩国产精品成人| 日韩一区二区三区免费看| 成人黄色综合网站| 美女脱光内衣内裤视频久久网站| 成人免费在线播放视频| 亚洲欧美视频在线观看| 日韩美女在线视频| 久久久www免费人成精品| 欧美激情一区不卡| 日韩欧美第一区| 国产欧美一区二区三区鸳鸯浴| 国产精品无圣光一区二区| 日韩一区二区麻豆国产| 欧美tickling挠脚心丨vk| 欧美三级电影在线看| 制服丝袜一区二区三区| 在线亚洲一区观看| 国产99久久久精品| 久久er99热精品一区二区| 国产精华液一区二区三区| 蜜桃精品视频在线| 成熟亚洲日本毛茸茸凸凹| 91行情网站电视在线观看高清版| 欧美嫩在线观看| 日本一区二区三区高清不卡| 亚洲精品久久嫩草网站秘色| 国产精品国产三级国产aⅴ无密码| 日韩和欧美一区二区| 国精品**一区二区三区在线蜜桃| caoporen国产精品视频| 欧美日韩国产美| 欧美国产精品一区| 久久综合丝袜日本网| 91精品国产色综合久久ai换脸 | 国产精品综合久久| 在线免费不卡电影| 色系网站成人免费| 精品处破学生在线二十三| 亚洲欧美自拍偷拍| 亚洲丝袜自拍清纯另类| 中文字幕av一区二区三区高| 日韩高清在线观看| 日韩精品国产精品| 免费欧美日韩国产三级电影| 波多野结衣一区二区三区| 日韩欧美色综合网站| 亚洲人123区| 亚洲色图清纯唯美| 亚洲激情图片小说视频| 亚洲精品乱码久久久久久黑人| 国产一区二区中文字幕| 在线不卡一区二区| 亚洲男人的天堂在线aⅴ视频| 亚洲卡通欧美制服中文| 国产一区 二区 三区一级| 国产一区二区福利视频| 制服丝袜亚洲网站| 亚洲一区二区三区免费视频| 成人自拍视频在线| 99re成人精品视频| 国产午夜精品久久久久久免费视| 国产精品素人视频| 麻豆久久久久久久| 欧美丰满美乳xxx高潮www| 日韩精品一区二区三区视频 | 精品国产精品一区二区夜夜嗨| 日韩精品一级中文字幕精品视频免费观看 | 青青草原综合久久大伊人精品优势| 99精品久久99久久久久| 欧美肥大bbwbbw高潮| 久久综合色8888| 国产精品素人一区二区| 亚洲国产精品一区二区www| 成人动漫中文字幕| 国产精品美日韩| 懂色av一区二区三区免费观看| 欧美精品一区二区三区蜜桃视频| 国产精品色婷婷久久58| 国产一区二区伦理| 日韩欧美国产系列| 国产精品久久久久久久久久久免费看 | 亚洲最新视频在线观看| 美女视频黄频大全不卡视频在线播放| 91蝌蚪国产九色| 中文字幕 久热精品 视频在线| 蜜桃久久精品一区二区| 国产成人一区在线| 欧美成人乱码一区二区三区| 亚洲bdsm女犯bdsm网站| 欧美日韩一区在线观看| 一区二区三区欧美久久| 99久久婷婷国产综合精品| 中文字幕二三区不卡| 国产在线视视频有精品| 日韩欧美自拍偷拍| 青娱乐精品视频在线| 成人综合激情网| 国产精品美女久久久久久2018 | 欧美一级精品在线| 日韩va亚洲va欧美va久久| 欧美性猛交xxxx乱大交退制版| 一个色在线综合| 日本久久电影网| 亚洲国产另类av| 99久久综合狠狠综合久久| 中文字幕亚洲电影| 日韩国产在线一| 成人丝袜18视频在线观看| 久久久不卡网国产精品一区| 九一久久久久久| 91精品欧美久久久久久动漫 | 欧美日韩在线亚洲一区蜜芽| 国产精品黄色在线观看| av电影在线观看不卡| 欧美mv和日韩mv国产网站| 激情欧美一区二区三区在线观看| 欧美亚洲精品一区| 国产欧美日韩在线看| 99精品一区二区| 国产精品久久久久久久久久久免费看 | 777奇米四色成人影色区| 日本va欧美va欧美va精品| 欧美xxxxxxxxx| 久久伊99综合婷婷久久伊| 亚洲高清不卡在线| 日韩欧美中文字幕一区| 国产精品456露脸| 国产精品护士白丝一区av| 欧美日韩亚洲国产综合| 一区二区三区视频在线看| 成人综合在线网站| 亚洲一线二线三线视频| 欧美精品一区二区久久久| 一区二区三区欧美激情| 欧美亚洲动漫制服丝袜| 美女爽到高潮91| 自拍偷自拍亚洲精品播放| 国产福利电影一区二区三区| 欧美色图12p| 成熟亚洲日本毛茸茸凸凹| 亚洲一区二区在线观看视频| 欧美va亚洲va香蕉在线| 91丝袜国产在线播放| 一区二区三区在线免费观看| 日韩欧美国产不卡| 久久国产精品72免费观看| 亚洲色欲色欲www在线观看| 欧美精品自拍偷拍|