作家
登录

Linux设备驱动中的并发控制

作者: 来源: 2017-11-07 09:07:06 阅读 我要评论

  •     This example is to introduce poll,blocking and non-blocking access 
  •        
  •     The initial developer of the original code is Baohua Song 
  •     <author@linuxdriver.cn>. All Rights Reserved. 
  • ======================================================================*/#include <linux/module.h>#include <linux/types.h>#include <linux/fs.h>#include <linux/errno.h>#include <linux/mm.h>#include <linux/sched.h>#include <linux/slab.h>#include <linux/init.h>#include <linux/cdev.h>#include <asm/io.h>#include <asm/system.h>#include <asm/uaccess.h>#include <linux/poll.h>#include <linux/time.h>#include <linux/timer.h>#include <linux/kernel.h>#include <linux/spinlock.h>#include <linux/interrupt.h>#define GLOBALFIFO_SIZE 0x1000 /*全局fifo最大年夜4K字节*/#define FIFO_CLEAR 0x1  /*清0全局内存的长度*/#define GLOBALFIFO_MAJOR 250    /*预设的globalfifo的主设备号*/static int globalfifo_major = GLOBALFIFO_MAJOR;/*globalfifo设备构造体*/struct globalfifo_dev                                      
  • {                                                         
  •   struct cdev cdev; /*cdev构造体*/                        
  •   unsigned int current_len;    /*fifo有效数据长度*/ 
  •   unsigned char mem[GLOBALFIFO_SIZE]; /*全局内存*/         
  •   struct semaphore sem; /*并发控制用的旌旗灯号量*/            
  •   wait_queue_head_t r_wait; /*壅塞读用的等待队列头*/      
  •   wait_queue_head_t w_wait; /*壅塞写竽暌姑的等待队列头*/      
  •   struct tasklet_struct tlet; 
  • };struct globalfifo_dev *globalfifo_devp; /*设备构造体指针*//*文件打开函数*/int globalfifo_open(struct inode *inode, struct file *filp) 
  • {  /*将设备构造体指针赋值给文件私稀有据指针*/ 
  •   filp->private_data = globalfifo_devp;  return 0; 
  • }/*文件释放函数*/int globalfifo_release(struct inode *inode, struct file *filp) 
  • {  return 0; 
  • }/* ioctl设备控制函数 */static int globalfifo_ioctl(struct inode *inodep, struct file *filp, unsigned  int cmd, unsigned long arg) 
  • {  struct globalfifo_dev *dev = filp->private_data;/*获得设备构造体指针*/ 

      推荐阅读

      看看60万码农怎么评论:这世界上还有没有月薪低于3万的程序员?

    IT界一位大年夜神早已下过定论:“对于那些月薪三万以下,自称法度榜样员的码农们,其实我们大年夜来没有把他们归为我们法度榜样员的部队。他们固然老是以法度榜样员自居,但只是他们>>>详细阅读


    本文标题:Linux设备驱动中的并发控制

    地址:http://www.17bianji.com/lsqh/38523.html

  • 关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)