Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

linux 0.11 ÄÚºËѧϰ bitmap.c


/*
 *  linux/fs/bitmap.c
 *
 *  (C) 1991  Linus Torvalds
 */
/* bitmap.c contains the code that handles the inode and block bitmaps */
#include <string.h>
#include <linux/sched.h>
#include <linux/kernel.h> // һЩÄں˳£Óú¯ÊýµÄÔ­Ðζ¨Òå
/* ½«Ö¸¶¨µØÖ·(addr)´¦µÄÒ»¿éÄÚ´æÇåÁã */
#define clear_block(addr) \
__asm__("cld\n\t" \
"rep\n\t" \
"stosl" \
::"a" (0),"c" (BLOCK_SIZE/4),"D" ((long) (addr)):"cx","di")
/* ÖÃλָ¶¨µØÖ·¿ªÊ¼µÄµÚnr ¸öÎ»Æ«ÒÆ´¦µÄ±ÈÌØÎ» */
#define set_bit(nr,addr) ({\
register int res __asm__("ax"); \
__asm__ __volatile__("btsl %2,%3\n\tsetb %%al": \
"=a" (res):"0" (0),"r" (nr),"m" (*(addr))); \
res;})
/* ¸´Î»Ö¸¶¨µØÖ·addr¿ªÊ¼µÄµÚnr Î»Æ«ÒÆ´¦µÄ±ÈÌØÎ» */
#define clear_bit(nr,addr) ({\
register int res __asm__("ax"); \
__asm__ __volatile__("btrl %2,%3\n\tsetnb %%al": \
"=a" (res):"0" (0),"r" (nr),"m" (*(addr))); \
res;})
/* ´Óaddr ¿ªÊ¼Ñ°ÕÒµÚ1 ¸ö0 Öµ±ÈÌØÎ»£¬²¢½«Æä¾àÀëaddr µÄ±ÈÌØÎ»Æ«ÒÆÖµ·µ»Ø */
#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;})
/* ¸´Î»Ö¸¶¨Âß¼­¿éblock £¨Ïà¶ÔÓÚ´ÅÅ̶øÑÔ£©µÄÂß¼­¿éλͼ±ÈÌØÎ» */
void free_block(int dev, int block)
{
struct super_block * sb;
struct buffer_head * bh;
if (!(sb = get_super(dev))) // ȡָ¶¨É豸dev µÄ³¬¼¶¿é
panic("trying to free block on nonexistent device"); // É豸²»´æÔÚ
// ÈôÂß¼­¿éºÅСÓÚÊ׸öÂß¼­¿éºÅ»òÕß´óÓÚÉ豸ÉÏ×ÜÂß¼­¿éÊý
if (block < sb->s_firstdatazone || block >= sb->s_nzones)
panic("trying to free block not in datazone");
bh = get_hash_table(dev,block); // ´Óhash ±íÖÐѰÕҸÿéÊý¾Ý
if (bh) // ºÏ·¨£¿ 
{
if (bh->b_count != 1) // Ö»Óиýø³ÌÕ¼¾Ýblock
{
printk("trying to free block (%04x:%d), count=%d\n",


Ïà¹ØÎĵµ£º

Unix/Linux ϵͳ×Ô¶¯»¯¹ÜÀí: ½ø³Ì¹ÜÀíÆª


Unix/Linux ½ø³Ì¹ÜÀíÏà¹ØÃüÁî½éÉÜ
½ø³ÌÊDzÙ×÷ϵͳÓÃÓÚ¿ØÖÆÏµÍ³×ÊԴʹÓõÄʵÌå¡£Unix/Linux ½ø³Ì¹ÜÀíÏà¹ØµÄÃüÁîÖ÷ÒªÓÐÒÔϼ¸¸ö£¬ÔÚºóÃæµÄ½Å±¾ÊµÏÖÖлáÓõ½²¿·ÖÃüÁî¡£
ÏÔʾ½ø³ÌÊôÐÔÃüÁî
ps ÃüÁ¸ÃÃüÁîÊÇ×î»ù±¾Í¬Ê±Ò²ÊǷdz£Ç¿´óµÄ½ø³Ì²é¿´ÃüÁÓÃÓÚ±¨¸æ½ø³Ì±êʶ¡¢Óû§¡¢CPU ʱ¼äÏûºÄÒÔ¼°ÆäËûÊôÐÔ¡£ÀûÓÃËü¿ÉÒÔÈ·¶¨ÓÐÄÄÐ ......

linuxϵÄAndroid¿ª·¢

ÏÂÔØ SDK
ϵͳºÍÈí¼þÐèÇó
ÓÃAndroid sdkµÄ´úÂëºÍ¹¤¾ß¿ª·¢AndroidÓ¦ÓóÌÐò,ÄãÐèÒªÏÂÃæÁгöÀ´µÄºÏÊÊ¿ª·¢µçÄԺͿª·¢»·¾³.
ËùÐè²Ù×÷ϵͳ:
•Windows XP »ò Vista
•Mac OS X 10.4.8 »ò¸ü¸ß°æ±¾ (½öÖ§³Öx86)
•Linux ( Linux Ubuntu Dapper Drake °æ±¾ÒѲâÊÔ)
ËùÐ迪·¢»·¾³:
•Eclipse IDE
◦Ecli ......

zz GDB¸ÅÊö£¨LINUXϵĸú×Ùµ÷ÊÔ£©


GDBÊÇGNU¿ªÔ´×éÖ¯·¢²¼µÄÒ»¸öÇ¿´óµÄUNIXϵijÌÐòµ÷ÊÔ¹¤¾ß¡£»òÐí£¬¸÷λ±È½Ïϲ»¶ÄÇÖÖͼÐΠ
½çÃæ·½Ê½µÄ£¬ÏñVC¡¢BCBµÈIDEµÄµ÷ÊÔ£¬µ«Èç¹ûÄãÊÇÔÚUNIXƽ̨ÏÂ×öÈí¼þ£¬Äã»á·¢ÏÖGDBÕâ¸ö 
µ÷ÊÔ¹¤¾ßÓбÈVC¡¢BCBµÄͼÐλ¯µ÷ÊÔÆ÷¸üÇ¿´óµÄ¹¦ÄÜ¡£Ëùν“´çÓÐËù³¤£¬³ßÓÐËù¶Ì”¾ÍÊÇÕâ 
¸öµÀÀí¡£ 
 
Ò» ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ