字符设备之异步信号通知

应用程序注册信号处理函数

  my_signal_fun();

应用程序获取应用PID并告诉驱动

  fcntl(fd, F_SETOWN, getpid());//获取pid

  int oflags = fcntl(fd, F_GETFL);

  fcntl(fd, F_SETFL, oflags|FASYNC);//改变fasync标记,最终调用驱动的fasync>fasync_helper:初始化/释放xxx_struct_async

由驱动程序发出信号:

  xxx_async结构体在fasync函数中调用return fasync_helper(fd , filp, on, &xxx_button)后初始化;

  发信号函数kill_fasync(&xxx_struct_async, SIGIO, POLL_IN);

 

posted @ 2015-10-08 15:43  丿踏遍青山人未老  阅读(233)  评论(0编辑  收藏  举报