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

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

?? super.c

?? ARM 嵌入式 系統(tǒng) 設(shè)計(jì)與實(shí)例開發(fā) 實(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一区二区三区免费野_久草精品视频
亚洲精品国产品国语在线app| 一区二区国产盗摄色噜噜| 99在线精品一区二区三区| 日韩激情在线观看| 中文字幕 久热精品 视频在线| 欧美日韩大陆一区二区| 99r国产精品| 国产一区日韩二区欧美三区| 丝袜亚洲另类欧美| 亚洲蜜桃精久久久久久久| 国产亚洲欧美激情| 337p亚洲精品色噜噜噜| 国产一区美女在线| 666欧美在线视频| 亚洲一区在线观看视频| 亚洲精品一区二区三区蜜桃下载| 日韩av网站在线观看| 奇米色777欧美一区二区| 国产精品一区二区果冻传媒| 午夜欧美电影在线观看| 日韩一区二区中文字幕| 国内精品视频一区二区三区八戒| 欧美激情一区二区三区四区| 日韩美一区二区三区| 欧美午夜寂寞影院| 亚洲丝袜制服诱惑| 不卡视频一二三| 国产女人18毛片水真多成人如厕 | 欧美一级生活片| 亚洲精品乱码久久久久久| 久久蜜桃av一区精品变态类天堂| a4yy欧美一区二区三区| 裸体在线国模精品偷拍| 天天av天天翘天天综合网色鬼国产| 国产日韩欧美在线一区| 丁香网亚洲国际| 中文字幕va一区二区三区| 91麻豆精品秘密| 日韩毛片一二三区| 欧美高清性hdvideosex| 蜜乳av一区二区三区| 亚洲影视在线播放| 欧美激情一区二区三区全黄| 91久久精品一区二区三区| 亚洲欧美日韩久久| 91麻豆精品国产91| 成人免费黄色大片| 免费xxxx性欧美18vr| 久久久91精品国产一区二区精品| 欧美怡红院视频| 亚洲图片一区二区| 中文字幕一区二区三中文字幕| 日韩三级.com| 在线播放国产精品二区一二区四区| 成人影视亚洲图片在线| 欧美a级理论片| 亚洲女同女同女同女同女同69| 久久久久久久电影| 亚洲h在线观看| 亚洲成人动漫精品| 99久久伊人精品| 99在线精品视频| 欧美午夜影院一区| 欧美一二三四区在线| 欧美精品一区二区三区一线天视频 | 99精品视频中文字幕| 在线观看一区不卡| 91精品国产综合久久国产大片| 精品理论电影在线| 中文字幕在线不卡一区二区三区| 亚洲精品国产a久久久久久| 日韩成人一区二区三区在线观看| 狠狠色丁香久久婷婷综合_中 | 欧美日韩一区二区欧美激情| 欧美一区二区女人| 欧美激情一二三区| 在线不卡a资源高清| 制服丝袜亚洲精品中文字幕| 在线观看免费视频综合| 国产亚洲va综合人人澡精品| 亚洲婷婷在线视频| 日韩不卡免费视频| 蜜桃免费网站一区二区三区| 精品亚洲成av人在线观看| 91麻豆精品国产无毒不卡在线观看| 99久久久久久| 欧美老肥妇做.爰bbww视频| ...av二区三区久久精品| 91精品免费在线观看| 日本一二三不卡| 亚洲大片在线观看| 粉嫩av一区二区三区粉嫩| 欧美日韩国产电影| 亚洲色大成网站www久久九九| 免费精品视频在线| 在线看日韩精品电影| 久久只精品国产| 亚洲成a人v欧美综合天堂| 成人黄色网址在线观看| 日韩一级欧美一级| 亚洲国产另类精品专区| av综合在线播放| 久久综合999| 免费看精品久久片| 欧美色男人天堂| 亚洲乱码中文字幕| 激情六月婷婷综合| 日韩三级免费观看| 午夜视频在线观看一区二区三区| 成人爽a毛片一区二区免费| 日韩一级片网址| 97久久人人超碰| 精品1区2区在线观看| 亚洲二区在线观看| 91丨porny丨户外露出| 亚洲国产岛国毛片在线| 国内久久精品视频| 日韩一级免费观看| 日韩电影在线一区二区| 欧美性受极品xxxx喷水| 亚洲欧洲精品一区二区三区不卡| 国产精品系列在线播放| 久久久精品免费免费| 捆绑变态av一区二区三区| 欧美军同video69gay| 亚洲一二三级电影| 在线观看成人小视频| 亚洲欧美国产77777| www.久久久久久久久| 中文字幕永久在线不卡| 粉嫩高潮美女一区二区三区| 久久久99久久精品欧美| 国产精品中文有码| 国产色一区二区| 国产不卡视频一区二区三区| 国产视频在线观看一区二区三区 | a亚洲天堂av| 中文字幕一区二区三区在线不卡 | 毛片一区二区三区| 日韩三级视频在线观看| 久久 天天综合| 久久久久久久精| jvid福利写真一区二区三区| 最新热久久免费视频| 色国产精品一区在线观看| 亚洲第一福利视频在线| 8v天堂国产在线一区二区| 日本欧美在线看| 精品91自产拍在线观看一区| 成人网在线播放| 亚洲精品免费一二三区| 欧美三级韩国三级日本一级| 日本网站在线观看一区二区三区| 日韩一二三四区| 成人午夜视频在线观看| 亚洲精品日韩综合观看成人91| 在线一区二区三区| 男女男精品视频| 国产欧美日韩在线看| 91免费看片在线观看| 日韩激情中文字幕| 国产色婷婷亚洲99精品小说| 91免费观看在线| 欧美a一区二区| 亚洲国产精品av| 欧美图区在线视频| 狠狠色狠狠色综合日日91app| 国产精品女人毛片| 在线看一区二区| 精品一区二区三区免费毛片爱| 国产精品免费视频网站| 欧美军同video69gay| 国产91精品免费| 亚洲成人一二三| 久久久www免费人成精品| 日本福利一区二区| 国产一区二区三区精品视频| 亚洲精品免费一二三区| 欧美精品一区二区高清在线观看| av资源网一区| 久久成人久久爱| 一本色道久久综合亚洲aⅴ蜜桃| 性欧美大战久久久久久久久| 国产欧美一区二区三区沐欲| 欧美性受xxxx| 成人一区二区三区| 蜜桃视频在线观看一区| 亚洲免费观看在线视频| 久久综合精品国产一区二区三区 | 成人国产视频在线观看| 色综合久久99| 日韩欧美另类在线| 专区另类欧美日韩| 天天色 色综合| 丁香另类激情小说| 欧美视频一区在线| 天堂蜜桃91精品| 欧美色倩网站大全免费| 国产精品无码永久免费888| 欧美色图激情小说|