字符设备之异步信号通知
应用程序注册信号处理函数
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);