Create a device node in code

转载 2016年05月31日 22:23:18
static int __init ofcd_init(void) /* Constructor */
{
    printk(KERN_INFO "Welcome!");
    if (alloc_chrdev_region(&first, 0, 1, "char_dev") < 0)  //$cat /proc/devices
    {
        return -1;
    }
    if ((cl = class_create(THIS_MODULE, "chardrv")) == NULL)    //$ls /sys/class
    {
        unregister_chrdev_region(first, 1);
        return -1;
    }

    cdev_init(&c_dev, &fops);
    if (cdev_add(&c_dev, first, 1) == -1)
    {
        device_destroy(cl, first);
        class_destroy(cl);
        unregister_chrdev_region(first, 1);
        return -1;
    }
    if (device_create(cl, NULL, first, NULL, "mynull") == NULL) //$ls /dev/
    {
        class_destroy(cl);
        unregister_chrdev_region(first, 1);
        return -1;
    }
return 0;

}


Code might be clear if you would use goto like kernel uses. 

相关文章推荐

Genymotion添加模拟器时报“Unable to create virtual device,Server returned HTTP status code 0”

使用Genymotion添加模拟器时报“Unable to create virtual device,Server returned HTTP status code 0”,被墙了导致无法下载,解决...
  • iqv520
  • iqv520
  • 2016年03月18日 23:02
  • 5071

Genymotion添加模拟器时报Unable to create virtual device,Server returned HTTP status code xxx

Genymotion添加模拟器时报Unable to create virtual device,Server returned HTTP status code xxx,被墙了导致无法下载,解决方法...

device_create函数分析 【一】

device_create函数分析 在2.6比较新的内核里面,这个函数在设备驱动中比较重要,拿出来单独分析下 源码如下: /** * device_create - creates a ...

Apache起不来,报No space left on device: Couldn't create accept lock

Apache起不来,报No space left on device: Couldn't create accept lock今天早上,罗明在搭建测试环境的时候,发现启动MA应用后,访问总是出错。报错...

cannot create temp file for here-document: No space left on device

今天在master服务器上输入命令时,系统报错cannot create temp file for here-document: No space left on device猜测是硬盘容量已满,使...

device_create分析

device_create分析2010-11-12 10:46在2.6比较新的内核里面,这个函数在设备驱动中比较重要,拿出来单独分析下源码如下:/*** device_create - creates...

class_device_create的问题

class_device_create的问题 今天在编译一个Linux kernel module 的时候,遇到下面的错误: error: implicit declaration...

Mac Android Genymotion unable create virtual device

Mac 安装Genymotion 需要安装VirtualBox ,全部安装完后创建genymotion device 点击ADD后不能显示device列表,测试可能是由于VirtualBox的网络设...

TFS部署:create_block allocate space error. ret: -1, error: 28, error desc: No space left on device

在CentOS 6.5 下安装完TFS部署的过程中,执行“./scripts/stfs format 1”命令时,出现错误:ERROR create_block (blockfile_manager....

device_create

在驱动程序中初始化入口函数中,向内核注册一个设备后,往往要注册一个类 例如 static int __init mydriver_init(void) //驱动程序的初始化 {     ……...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Create a device node in code
举报原因:
原因补充:

(最多只允许输入30个字)