zoukankan      html  css  js  c++  java
  • main.c 流程-buffer初始化

    void buffer_init(long buffer_end)函数的理解:

     *   0         0x100000          0x400000                    0x10 00000(16M)
     *    ----------------------------------------------------------
     *   |   kernel  | memery buffer   |   main memory              |             
     *    ----------------------------------------------------------

    以上图为例,该段主要初始化memery buffer部分,并且前地址地段储存缓存头部,高端储存缓存块(1K);

    缓存头部struct buffer_head

     1 struct buffer_head {
     2     char * b_data;            /* pointer to data block (1024 bytes) */
     3     unsigned long b_blocknr;    /* block number */
     4     unsigned short b_dev;        /* device (0 = free) */
     5     unsigned char b_uptodate;
     6     unsigned char b_dirt;        /* 0-clean,1-dirty */
     7     unsigned char b_count;        /* users using this block */
     8     unsigned char b_lock;        /* 0 - ok, 1 -locked */
     9     struct task_struct * b_wait;
    10     struct buffer_head * b_prev;
    11     struct buffer_head * b_next;
    12     struct buffer_head * b_prev_free;
    13     struct buffer_head * b_next_free;
    14 };

    用环形双链表链接:

    node0 <--->node1<--> ...... <-->noden<-->node0

  • 相关阅读:
    如何安装Tomcat服务器
    浅谈数据库中的锁机制
    彻底理解js中this的指向
    Javascript模块化编程的写法
    滚屏加载--无刷新动态加载数据技术的应用
    JavaScript正则表达式
    CSS:水平居中与垂直居中
    Linux常用命令大全
    HTML的元素嵌套规则
    clearfix清除浮动进化史
  • 原文地址:https://www.cnblogs.com/qianzhilan/p/6091644.html
Copyright © 2011-2022 走看看