linux 0.11 minix 1.0 文件系统 中篇 hash_table


上篇地址链接


struct buffer_head * s_imap[8];        0x0001faa0  0x0001fac4  0x0001fae8
    struct buffer_head * s_zmap[8];        0x0001fb0c      0x0001fb30      0x0001fb54  
                        0x0001fb78      0x0001fb9c      0x0001fbc0      0x0001fbe4
                        0x0001fc08



hash_table[]为指针数组,hash_table[157]=0x1faa0,0x1faa0表示块2的buffer_head结构指针。

块号是0002,设备号是0x0301,异或后为0x303既771,mod307后为157。


struct buffer_head {
    char * b_data;            /* pointer to data block (1024 bytes) */
    unsigned long b_blocknr;    /* block number */
    unsigned short b_dev;        /* device (0 = free) */
    unsigned char b_uptodate;
    unsigned char b_dirt;        /* 0-clean,1-dirty */
    unsigned char b_count;        /* users using this block */
    unsigned char b_lock;        /* 0 - ok, 1 -locked */
    struct task_struct * b_wait;
    struct buffer_head * b_prev;
    struct buffer_head * b_next;
    struct buffer_head * b_prev_free;        0x0001fa7c
    struct buffer_head * b_next_free;        0x0001fac4
};



你可能感兴趣的:(linux 0.11 minix 1.0 文件系统 中篇 hash_table)