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

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

?? inode.c

?? 一個完整的SHELL實現源代碼
?? C
字號:
#include "fs.h"

inode g_inode[NINODE]={0};

/* copy inode_o src into inode dst as the ino'th inode.
*/
static s_int inode_o2m(inode *dst,inode_o *src,s_int ino)
{
	s_int k;
	dst->flag=ILOCK | IUSE;
	dst->count=1; /* use count */
	dst->dev=0;  /* not used */
	dst->number=ino;
	dst->mode=src->mode;
	dst->nlink=src->nlink;
	dst->uid=src->uid;
	dst->gid=src->gid;
	dst->size0=src->size0;
	dst->size1=src->size1;
	for(k=0;k<8;k++)
		dst->adr[k]=src->addr[k]; /* i known it is not good when linux and unix v6 do not use more var i */
	dst->lastr=src->mtime[0];
	return 0;
}

/* copy inode src into inode_o dst.
*/
static s_int inode_m2o(inode_o *dst,inode *src)
{
	s_int k;
	dst->mode=src->mode;
	dst->nlink=src->nlink;
	dst->uid=src->uid;
	dst->gid=src->gid;
	dst->size0=src->size0;
	dst->size1=src->size1;
	for(k=0;k<8;k++)
		dst->addr[k]=src->adr[k];
	dst->mtime[0]=src->lastr;
	return 0;
}

/* iget(ino)
   =========
   get the No.'ino'th inode from hdd to mem
*/
inode *iget(s_int ino)
{
	inode_o *pbuf;
	inode *ip;
	/* find inode in memory */
	for(ip=&g_inode[0];ip<&g_inode[NINODE];ip++)
	{
		/*if((ip->mode & IALLOC) == 0)continue;*/
		if((ip->flag & IUSE) == 0)
		{
			continue;
		}
		if(ino==ip->number)
		{
			if(ip->flag&ILOCK)
			{
				/*p->flag|=IWAIT;*/
			}
			else
			{
				ip->flag|=ILOCK;
			}
			ip->count++;
			return ip; /* found the No.ino inode */
		}
	}
	/* not found in memory, find a free inode record */
	for(ip=&g_inode[0];ip<&g_inode[NINODE];ip++)
	{
		if((ip->flag&ILOCK)==0) /* a free inode record, not being used */
			break;
	}
	if(ip == &g_inode[NINODE])
	{
		panic("iget():g_inode empty.");
		return NULL;
	}
	/* swap old inode out, save it to hdd 
	     if it has been used before
	*/
	if(ip->flag & IUSE) 
	{
		pbuf=(inode_o *)bread((ip->number>>4)+2);
		if(!pbuf)
		{
			#ifdef DEBUG_MODE
			printf("iget: bread return NULL.\n");
			#endif
			return NULL; /* failed to load it */
		}
		inode_m2o(&pbuf[ip->number & 0x0f],ip);
	}

	/* Not in g_inode[], or say not in memory. load it */
	pbuf=(inode_o *)bread((ino>>4)+2);
	if(!pbuf)
	{
		#ifdef DEBUG_MODE
		printf("iget: bread return NULL.\n");
		#endif
		return NULL; /* failed to load it */
	}
	inode_o2m(ip,&pbuf[ino&0x0f],ino);
	return ip;
}


/* iput(ino)
   =========
   let *ip inode free from mem, and ready to swap out
*/
s_int iput(inode *ip)
{
       ip->count--;
       if(ip->count<=0)           /* if it is not used by others */
       	ip->flag&=~ILOCK; /* allow it swap out */
	return 0;
}

/*分配i結點函數*/
inode *ialloc()
{
	s_int ino;
	s_int *bp;
	s_int i,j;
	inode *ip;
	inode_o *op;
	loop:
	if(g_sblock.ninode>0)
	{
		ino=g_sblock.inode[--g_sblock.ninode];
		g_sblock.fmod=1;/* super block modified */
		ip=iget(ino);
		if(ip==NULL)return NULL;
		if(ip->mode==0)
		{
			for(bp=&ip->mode;bp<&ip->adr[8];)*bp++=0;
			return ip;
		}
		/* Inode was allocated after all.
		 * look some more.
		 */
		iput(ip);
		goto loop;
	}
	for(i=g_sblock.isize+1;i>=2;i--)
	{
		op=(inode_o *)bread(i);
		for(j=0;j<512/sizeof(inode_o);j++)
		{
			if((op[j].mode & IALLOC) == 0)
			{
				g_sblock.inode[g_sblock.ninode++]=((i-2)<<4)+j;
				g_sblock.fmod=1;/* super block modified */
				if(g_sblock.ninode==100)goto loop;
			}
		}
	}
	if(g_sblock.ninode>0)goto loop;
	return NULL;
}

/*釋放i結點函數*/
s_int ifree(s_int ino)
{
	inode *ip;
	ip=iget(ino);
	if(ip==NULL)return 1;
	ip->mode=0;
	iput(ip);
	if(g_sblock.ninode<99)
	{
		g_sblock.inode[g_sblock.ninode++]=ino;
		g_sblock.fmod = 1; /* super block modified */
	}
	/*else
	{
		hd_write(bno,&g_sblock);
		g_sblock.nfree=1;
		g_sblock.free[0]=bno;
	}*/
	return 0;	
}

s_int iwrite_back()
{
	inode_o *pbuf;
	inode *ip;
	for(ip=&g_inode[0];ip<&g_inode[NINODE];ip++)
	{
		/* all used inode should be saved to hdd */
		if((ip->flag & IUSE) ==0)continue;
		pbuf=(inode_o *)bread((ip->number>>4)+2);
		if(!pbuf)
		{
			#ifdef DEBUG_MODE
			printf("iwrite_back: bread return NULL.\n");
			#endif
			return NULL; /* failed to load it */
		}
		inode_m2o(&pbuf[ip->number & 0x0f],ip);
	}
	return 0;
}

s_int iname()
{
	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
heyzo一本久久综合| 久久在线免费观看| 91麻豆精品91久久久久同性| 91小宝寻花一区二区三区| 91年精品国产| 91免费精品国自产拍在线不卡| 成人av网址在线观看| 国产白丝网站精品污在线入口| 99re6这里只有精品视频在线观看| 91在线精品一区二区| 欧美日韩一区二区三区高清| 欧美sm极限捆绑bd| 国产精品乱人伦中文| 亚洲一级片在线观看| 美女精品一区二区| www.日韩精品| 欧美日韩国产精品成人| 精品美女在线观看| 亚洲欧美一区二区在线观看| 亚洲在线视频免费观看| 国产麻豆一精品一av一免费| 欧美日韩一二三| 国产精品色哟哟| 久久精品国产99久久6| 91污在线观看| 日韩精品一区二区三区三区免费 | 亚洲欧美日韩一区二区| 亚洲尤物在线视频观看| 国产精品亚洲а∨天堂免在线| 欧美色网一区二区| 欧美国产日韩精品免费观看| 日韩精品五月天| 99r精品视频| 欧美精品一区在线观看| 亚洲国产成人av| www.在线欧美| 久久综合九色综合欧美就去吻| 一区二区成人在线视频| 国产99久久久久| 精品国精品国产| 亚洲国产成人porn| 91美女蜜桃在线| 国产欧美一区二区三区沐欲| 日韩二区三区四区| 欧美亚洲国产一区在线观看网站| 亚洲国产精品国自产拍av| 另类综合日韩欧美亚洲| 欧美精品日日鲁夜夜添| 亚洲卡通动漫在线| 9色porny自拍视频一区二区| 亚洲精品在线观看网站| 日本免费在线视频不卡一不卡二| 欧美性色黄大片| 亚洲精品国产精华液| youjizz久久| 日本一区二区三区国色天香 | 国产欧美一区二区精品久导航| 日韩专区中文字幕一区二区| 日本高清无吗v一区| 亚洲人成影院在线观看| 97精品久久久午夜一区二区三区 | 国产精品一卡二卡| 欧美mv日韩mv国产网站app| 视频在线观看一区| 欧美日韩中字一区| 亚洲亚洲精品在线观看| 91激情在线视频| 亚洲精品福利视频网站| 色婷婷综合久久久久中文| 亚洲人一二三区| 色综合天天在线| 亚洲免费在线视频一区 二区| av在线综合网| 亚洲激情av在线| 91久久精品一区二区三| 夜夜嗨av一区二区三区| 欧美性受极品xxxx喷水| 午夜激情一区二区| 91.com在线观看| 日韩精品一级中文字幕精品视频免费观看| 精品视频123区在线观看| 首页国产丝袜综合| 日韩欧美一区二区视频| 国内成人精品2018免费看| 国产亚洲短视频| 成人99免费视频| 亚洲人成网站在线| 欧美日韩一级视频| 另类综合日韩欧美亚洲| 久久精品男人天堂av| 国产二区国产一区在线观看| 国产精品久久久久一区 | 亚洲国产色一区| 777午夜精品免费视频| 美女被吸乳得到大胸91| 精品国产一区二区三区四区四| 国产乱妇无码大片在线观看| 国产精品福利av | 美女视频网站久久| 久久久精品欧美丰满| aa级大片欧美| 五月婷婷综合网| 久久先锋影音av鲁色资源| 91香蕉视频mp4| 日本一道高清亚洲日美韩| 国产欧美一区二区精品性色超碰| 一本一道久久a久久精品综合蜜臀| 五月天亚洲婷婷| 久久精品欧美一区二区三区麻豆 | 亚洲国产一区在线观看| 日韩一区二区三区视频| 国产九色sp调教91| 一个色综合av| 久久这里只有精品6| 色婷婷亚洲婷婷| 久久99国产精品免费| 17c精品麻豆一区二区免费| 69堂精品视频| www.在线成人| 麻豆精品在线看| 亚洲美女视频在线观看| 精品久久久久香蕉网| 色94色欧美sute亚洲13| 狠狠色综合播放一区二区| 日韩美女久久久| 欧美va亚洲va| 91传媒视频在线播放| 国产自产2019最新不卡| 亚洲综合999| 国产蜜臀av在线一区二区三区| 欧美三级视频在线| 成人妖精视频yjsp地址| 日本最新不卡在线| 亚洲另类在线视频| 久久综合网色—综合色88| 欧美性猛交xxxxxx富婆| 懂色av中文一区二区三区| 青青草伊人久久| 亚洲综合久久久| 国产精品久久久久影院亚瑟| 日韩一区二区三区精品视频| 色又黄又爽网站www久久| 国产经典欧美精品| 免费欧美日韩国产三级电影| 亚洲免费视频中文字幕| 欧美经典三级视频一区二区三区| 欧美一二三区在线| 在线免费观看一区| 99精品久久只有精品| 国产福利视频一区二区三区| 喷水一区二区三区| 亚洲午夜在线电影| 亚洲欧美日韩国产综合在线| 国产亚洲精品免费| 欧美不卡视频一区| 在线播放亚洲一区| 一本一道久久a久久精品| 福利视频网站一区二区三区| 精一区二区三区| 蜜臀精品一区二区三区在线观看 | 欧美日韩在线观看一区二区 | 亚洲综合激情另类小说区| 中文字幕国产一区| 久久精品亚洲乱码伦伦中文| 欧美一级艳片视频免费观看| 欧美在线观看你懂的| 色综合久久久久久久| www.亚洲人| www.成人在线| 成人深夜福利app| 国产电影精品久久禁18| 国产精品一线二线三线精华| 精品在线播放午夜| 老司机午夜精品| 老司机精品视频在线| 久久精品国产精品亚洲综合| 玖玖九九国产精品| 久久精品国产亚洲aⅴ| 久久99精品久久久久久国产越南| 日韩电影在线免费观看| 青青草国产成人av片免费| 琪琪久久久久日韩精品| 蜜臀av性久久久久蜜臀aⅴ流畅| 日韩成人av影视| 日本美女一区二区| 麻豆国产欧美一区二区三区| 奇米影视一区二区三区小说| 美女视频免费一区| 激情综合色播五月| 国产精品一卡二| a美女胸又www黄视频久久| 91麻豆视频网站| 91黄视频在线观看| 欧美久久婷婷综合色| 日韩欧美www| 久久中文娱乐网| 国产精品电影一区二区| 玉米视频成人免费看| 污片在线观看一区二区| 精品一区二区三区免费|