taoyuetao的个人空间 https://blog.eetop.cn/taoyuetao [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

[随笔] netif_start_queue和netif_wake_queue的区别

已有 8055 次阅读| 2006-10-31 10:11 |个人分类:【 Linux & GNU 】

天气: 晴朗
心情: 高兴

netif_start_queue 用来告诉上层网络协定这个驱动程序还有空的缓冲区可用,请把下 
一个封包送进来。

netif_wake_queue() 会使得上层协定开始传送新的资料下来,这个函数除了通知网络系统可再次开始传输数据包之外

和netif_start_queue()函数一样。

两个函数原型

        static inline void netif_start_queue(struct net_device *dev)
    525 {
    526     clear_bit(__LINK_STATE_XOFF, &dev->state);
    527 }
    528
    529 static inline void netif_wake_queue(struct net_device *dev)
    530 {
    531     if (test_and_clear_bit(__LINK_STATE_XOFF, &dev->state))
    532         __netif_schedule(dev);
    533 }


点赞

发表评论 评论 (2 个评论)

回复 taoyuetao 2006-10-31 10:16
在很多驱动中直接使用netif_wake_queue, 而不使用netif_start_queue
回复 taoyuetao 2006-10-31 12:16
网络驱动如果按模块方式加载。可以使用 register_netdev()注册,或者使用init_netdev() 来注册

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 0

    粉丝
  • 0

    好友
  • 0

    获赞
  • 1075

    评论
  • 4435

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-26 03:39 , Processed in 0.014626 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部