<ol id="hlxck"></ol>

      <track id="hlxck"></track>

      1. <optgroup id="hlxck"><li id="hlxck"><del id="hlxck"></del></li></optgroup>

                  <ol id="hlxck"><blockquote id="hlxck"></blockquote></ol><ol id="hlxck"></ol>

                    <legend id="hlxck"></legend>
                  1. <span id="hlxck"><video id="hlxck"></video></span>
                    <span id="hlxck"><output id="hlxck"></output></span>

                  2. <span id="hlxck"><sup id="hlxck"></sup></span>

                  3. <span id="hlxck"></span>
                  4. <optgroup id="hlxck"></optgroup>

                    請教個網卡驅動代碼問題

                    日期 : 2022-11-30 19:16:41作者 : 熊人

                    V 站高人比較多,請教個問題。我在學習網卡驅動,看的是<<深入理解 linux 網絡技術內幕>>這本書.里面用的是 3c59x 網卡的例子( 3c59x.c ).其中在申請 buffer 的時候,先是從寄存器里面讀取信息賦值給 rx_status.然后通過 rx_status & 0x1ffff 得到 packet 的大小。但使用 dev_alloc_skb (最新的內核使用 netdev_alloc_skb 函數)分配 buffer 的時候為什么還要加 5 呢?

                    網上找了找,有個網友說這是一種保護機制。沒有細講,不是很明白。找了 linux 的遠古 commit 歷史,也沒有說明。有懂的 V 友能詳細說說嗎?


                    /* The packet length: up to 4.5K!. */

                    short pkt_len = rx_status & 0x1fff;

                    struct sk_buff *skb;


                    skb = dev_alloc_skb(pkt_len + 5);

                    要不是為了 buffer alignment ,要不是加上了某個 header 的最小長度是個魔法數,換句話說 dev_alloc_skb(0)也沒有實際意義吧。

                    標簽 :  

                    AAAAA级少妇高潮大片_亚洲人成自拍网站在线观看_中文无码妇乱子伦视频_日本极品少妇videossexhd 闺蜜扒开我的腿用黄瓜折磨我_韩国三级高潮爽无码_国产精品久久久久久AV免费不卡_狠狠躁夜夜躁人人爽天天天天 成年女人粗暴毛片免费观看_高H猛烈失禁潮喷A片在线播放_性XXXX欧美老妇506070_好多水好爽小荡货好紧好热 国产亚洲AV手机在线观看_免费两性的视频网站_少妇被技师按摩高潮HD_怎么打无码人妻丰满熟妇区毛片 熟妇人妻水多爽中文字幕_精品久久久久香蕉网_合租屋里交换娇妻粗大猛烈进出呻吟声视频_中国精品无码免费专区午夜 久久精品亚洲AV中文2区金莲_91精品久久_一本久久a久久精品综合麻豆_久久久久久黃色網站免費