作家
登录

Linux设备驱动中的并发控制

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

"Error %d adding LED%d", err, index); 
  • }void jit_tasklet_fn(unsigned long arg) 
  •  printk("in jit_tasklet_fn  jiffies=%ld\n",jiffies); 
  • }/*设备驱动模块加载函数*/int globalfifo_init(void) 
  • {  int ret; 
  •   dev_t devno = MKDEV(globalfifo_major, 0);  /* 申请设备号*/ 
  •   if (globalfifo_major) 
  •     ret = register_chrdev_region(devno, 1, "globalfifo");  else  /* 动态申请设备号 */ 
  •  
  •   { 
  •     ret = alloc_chrdev_region(&devno, 0, 1, "globalfifo"); 
  •     globalfifo_major = MAJOR(devno); 
  •   }  if (ret < 0)    return ret;  /* 动态申请设备构造体的内存*/ 
  •   globalfifo_devp = kmalloc(sizeof(struct globalfifo_dev), GFP_KERNEL);  if (!globalfifo_devp)    /*申请掉败*/ 
  •   { 
  •     ret =  - ENOMEM;    goto fail_malloc; 
  •   } 
  •  
  •   memset(globalfifo_devp, 0, sizeof(struct globalfifo_dev)); 
  •  
  •   globalfifo_setup_cdev(globalfifo_devp, 0); 
  •  
  •   init_MUTEX(&globalfifo_devp->sem);   /*初始化旌旗灯号量*/ 
  •   init_waitqueue_head(&globalfifo_devp->r_wait); /*初始化读等待队列头*/ 
  •   init_waitqueue_head(&globalfifo_devp->w_wait); /*初始化写等待队列头*/ 
  •  /* register the tasklet */ 
  •  tasklet_init(&globalfifo_devp->tlet, jit_tasklet_fn, (unsigned long)globalfifo_devp);  return 0; 
  •  
  •   fail_malloc: unregister_chrdev_region(devno, 1);  return ret; 
  • }/*模块卸载函数*/void globalfifo_exit(void) 
  •   cdev_del(&globalfifo_devp->cdev);   /*刊出cdev*/ 
  •   kfree(globalfifo_devp);     /*释放设备构造体内存*/ 
  •   unregister_chrdev_region(MKDEV(globalfifo_major, 0), 1); /*释放设备号*/} 
  •  
  • MODULE_AUTHOR("Song Baohua"); 
  • MODULE_LICENSE("Dual BSD/GPL"); 
  •  
  • module_param(globalfifo_major, int, S_IRUGO); 
  •  
  • module_init(globalfifo_init); 
  • module_exit(globalfifo_exit); 
  • 【编辑推荐】

    1. Linux就该这么学?进修Linux的步调
    2. 怎么在Linux中运行DOS法度榜样 ?
    3. Linux敕令行:find的26个用轨典范
    4. 带你懂得2017版Linux内核开辟申报
    5. Linux 下删除了文件,空间为何不释放?
    【义务编辑:庞桂玉 TEL:(010)68476606】

      推荐阅读

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

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


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

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

    关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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