zoukankan      html  css  js  c++  java
  • Linux通信之异步通知模式

    【参考】韦东山 教学笔记

    为了使设备支持异步通知机制,驱动程序中涉及以下3项工作:
    1. 支持F_SETOWN命令,能在这个控制命令处理中设置filp->f_owner为对应进程ID。
    不过此项工作已由内核完成,设备驱动无须处理。
    2. 支持F_SETFL命令的处理,每当FASYNC标志改变时,驱动程序中的fasync()函数将得以执行。
    驱动中应该实现fasync()函数。

    3. 在设备资源可获得时,调用kill_fasync()函数激发相应的信号


    应用程序:
    fcntl(fd, F_SETOWN, getpid()); // 告诉内核,发给谁

    Oflags = fcntl(fd, F_GETFL);
    fcntl(fd, F_SETFL, Oflags | FASYNC); // 改变fasync标记,最终会调用到驱动的faync > fasync_helper:初始化/释放fasync_struct

  • 相关阅读:
    C++模板&泛型编程
    C++继承
    测试pc大、小端
    C语言标准定义的32个关键字
    *塔,菱形
    练习小题目
    c一些关键字
    uvaoj 489
    uvaoj1339
    hdu1969Pie(根据体积二分,分馅饼)
  • 原文地址:https://www.cnblogs.com/Hello-words/p/6266580.html
Copyright © 2011-2022 走看看