[linux驱动]设备驱动模型相关(二)——常用API

1,在/sys/class/目录下创建一个设备节点,比如创建一个class_test_usb的设备节点

[cpp] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. static struct calss *test_class;  
  2. test_class = class_creat(THIS_MODULE,"class_test_usb");  


2,在class_test_usb目录下创建另外一个设备节点android0,如下

[cpp] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. struct device *dev;  
  2. dev = device_creat(test_calss,NULL,MKDEV(0,0),NULL,"android0");  
  3. if(IS_ERR(dev))  
  4.     return PTR_ERR(dev);  


3,在/sys/class/class_test_usb/android0/目录下创建几个其它设备节点enable state等

[cpp] view plaincopy在CODE上查看代码片派生到我的代码片
 
    1. static struct device_attribute* test_attributes[]={  
    2.     &dev_attr_state,  
    3.     &dev_attr_enable,  
    4.     NULL  
    5. }  
    6. static DEVICE_ATTR(enable,S_IRUGO |S_IWUSR,enable_show,enable_store);  
    7.   
    8.   
    9. struct device_attribute ** attrs=test_attributes;  
    10. struct device_attribute *attr;  
    11. int err;  
    12. while((attr=*attrs++))  
    13. {  
    14.     err=device_creat_file(dev,attr);  
    15.     if(err)  
    16.     {  
    17.         device_destory(test_class,dev->devt);  
    18.         return err;  
    19.     }  
    20. }  
原文地址:https://www.cnblogs.com/zhiliao112/p/4237235.html