91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

Linux 0.11內核完全解析(含源碼),非常好的一本書,不斷的研究,才能不斷的進步。

資源截圖

代碼片段和文件信息

/*
?*??linux/fs/bitmap.c
?*
?*??(C)?1991??Linus?Torvalds
?*/

/*?bitmap.c?contains?the?code?that?handles?the?inode?and?block?bitmaps?*/
#include?

#include?
#include?

#define?clear_block(addr)?\
__asm__(“cld\n\t“?\
“rep\n\t“?\
“stosl“?\
::“a“?(0)“c“?(BLOCK_SIZE/4)“D“?((long)?(addr)):“cx““di“)

#define?set_bit(nraddr)?({\
register?int?res?__asm__(“ax“);?\
__asm__?__volatile__(“btsl?%2%3\n\tsetb?%%al“:?\
“=a“?(res):“0“?(0)“r“?(nr)“m“?(*(addr)));?\
res;})

#define?clear_bit(nraddr)?({\
register?int?res?__asm__(“ax“);?\
__asm__?__volatile__(“btrl?%2%3\n\tsetnb?%%al“:?\
“=a“?(res):“0“?(0)“r“?(nr)“m“?(*(addr)));?\
res;})

#define?find_first_zero(addr)?({?\
int?__res;?\
__asm__(“cld\n“?\
“1:\tlodsl\n\t“?\
“notl?%%eax\n\t“?\
“bsfl?%%eax%%edx\n\t“?\
“je?2f\n\t“?\
“addl?%%edx%%ecx\n\t“?\
“jmp?3f\n“?\
“2:\taddl?$32%%ecx\n\t“?\
“cmpl?$8192%%ecx\n\t“?\
“jl?1b\n“?\
“3:“?\
:“=c“?(__res):“c“?(0)“S“?(addr):“ax““dx““si“);?\
__res;})

void?free_block(int?dev?int?block)
{
struct?super_block?*?sb;
struct?buffer_head?*?bh;

if?(!(sb?=?get_super(dev)))
panic(“trying?to?free?block?on?nonexistent?device“);
if?(block?s_firstdatazone?||?block?>=?sb->s_nzones)
panic(“trying?to?free?block?not?in?datazone“);
bh?=?get_hash_table(devblock);
if?(bh)?{
if?(bh->b_count?!=?1)?{
printk(“trying?to?free?block?(%04x:%d)?count=%d\n“
devblockbh->b_count);
return;
}
bh->b_dirt=0;
bh->b_uptodate=0;
brelse(bh);
}
block?-=?sb->s_firstdatazone?-?1?;
if?(clear_bit(block&8191sb->s_zmap[block/8192]->b_data))?{
printk(“block?(%04x:%d)?“devblock+sb->s_firstdatazone-1);
panic(“free_block:?bit?already?cleared“);
}
sb->s_zmap[block/8192]->b_dirt?=?1;
}

int?new_block(int?dev)
{
struct?buffer_head?*?bh;
struct?super_block?*?sb;
int?ij;

if?(!(sb?=?get_super(dev)))
panic(“trying?to?get?new?block?from?nonexistant?device“);
j?=?8192;
for?(i=0?;?i<8?;?i++)
if?(bh=sb->s_zmap[i])
if?((j=find_first_zero(bh->b_data))<8192)
break;
if?(i>=8?||?!bh?||?j>=8192)
return?0;
if?(set_bit(jbh->b_data))
panic(“new_block:?bit?already?set“);
bh->b_dirt?=?1;
j?+=?i*8192?+?sb->s_firstdatazone-1;
if?(j?>=?sb->s_nzones)
return?0;
if?(!(bh=getblk(devj)))
panic(“new_block:?cannot?get?block“);
if?(bh->b_count?!=?1)
panic(“new?block:?count?is?!=?1“);
clear_block(bh->b_data);
bh->b_uptodate?=?1;
bh->b_dirt?=?1;
brelse(bh);
return?j;
}

void?free_inode(struct?m_inode?*?inode)
{
struct?super_block?*?sb;
struct?buffer_head?*?bh;

if?(!inode)
return;
if?(!inode->i_dev)?{
memset(inode0sizeof(*inode));
return;
}
if?(inode->i_count>1)?{
printk(“trying?to?free?inode?with?count=%d\n“inode->i_count);
panic(“free_inode“);
}
if?(inode->i_nlinks)
panic(“trying?to?free?inode?with?links“);
if?(!(sb?=?get_super(inode->i_dev)))
panic(“trying?to?free?inode?on?nonexistent?device“);
if?(inode->i_num?i_num?>?sb->s_ninodes)
panic(“trying?to?fr

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??1991-12-08?21:38??linux-0.11\
?????目錄???????????0??1991-12-04?13:11??linux-0.11\tools\
?????目錄???????????0??1991-12-08?14:08??linux-0.11\mm\
?????目錄???????????0??1991-12-08?14:10??linux-0.11\lib\
?????目錄???????????0??1991-12-08?14:08??linux-0.11\kernel\
?????目錄???????????0??1991-12-05?19:59??linux-0.11\init\
?????目錄???????????0??1991-09-22?19:58??linux-0.11\include\
?????目錄???????????0??1991-12-08?14:08??linux-0.11\fs\
?????目錄???????????0??1991-12-05?22:48??linux-0.11\boot\
?????目錄???????????0??1991-12-08?14:09??linux-0.11\kernel\blk_drv\
?????目錄???????????0??1991-12-08?14:09??linux-0.11\kernel\math\
?????目錄???????????0??1991-12-08?18:36??linux-0.11\kernel\chr_drv\
?????目錄???????????0??1991-09-17?13:08??linux-0.11\include\asm\
?????目錄???????????0??1991-11-02?13:35??linux-0.11\include\linux\
?????目錄???????????0??1991-09-17?15:06??linux-0.11\include\sys\
?????目錄???????????0??2010-05-26?05:12??linux中文注釋\
?????目錄???????????0??2007-03-16?03:39??linux中文注釋\tools\
?????目錄???????????0??2007-03-16?03:39??linux中文注釋\mm\
?????目錄???????????0??2007-03-16?03:39??linux中文注釋\lib\
?????目錄???????????0??2007-03-16?03:39??linux中文注釋\kernel\
?????目錄???????????0??2007-03-16?03:39??linux中文注釋\init\
?????目錄???????????0??2007-03-16?03:39??linux中文注釋\include\
?????目錄???????????0??2007-03-16?03:39??linux中文注釋\fs\
?????目錄???????????0??2007-03-16?03:39??linux中文注釋\boot\
?????目錄???????????0??2007-03-16?03:39??linux中文注釋\kernel\math\
?????目錄???????????0??2007-03-16?03:39??linux中文注釋\kernel\chr_drv\
?????目錄???????????0??2007-03-16?03:39??linux中文注釋\kernel\blk_drv\
?????目錄???????????0??2007-03-16?03:39??linux中文注釋\include\sys\
?????目錄???????????0??2007-03-16?03:39??linux中文注釋\include\linux\
?????目錄???????????0??2007-03-16?03:39??linux中文注釋\include\asm\
?????文件????????2887??1991-12-06?03:12??linux-0.11\Makefile
............此處省略197個文件信息

評論

共有 條評論