platform


02$ cat test.c  
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/platform_device.h>


static int selfprobe (struct platform_device *pdev)
{
    printk("Device: %s match Driver %s OK!\n", pdev->name, (pdev->dev.driver)->name);

    return 0;
}

static int selfremove (struct platform_device *pdev)
{
    printk("Device: %s mismatch Driver %s OK!\n", pdev->name, (pdev->dev.driver)->name);

    return 0;
}

static struct platform_driver selfdrv = {
    .probe = selfprobe,    
    .remove = selfremove,
    .driver.name = "self_",
};

static struct platform_device *pselfdev = NULL;

static int __init test_init(void)
{
    printk("hello, world!\n");    

    pselfdev = platform_device_alloc("self_", -1);

    if (NULL == pselfdev) {
        return -ENOMEM;
    }
    if (platform_device_add(pselfdev))  {
        platform_device_put(pselfdev);
    }

    return platform_driver_register(&selfdrv);
}

static void __exit test_exit(void)
{
    printk("Byebye, world!\n");    

    platform_driver_unregister(&selfdrv);
    platform_device_unregister(pselfdev);
}



module_init(test_init);
module_exit(test_exit);

MODULE_LICENSE("GPL");
MODULE_AUTHOR("MR. Millet");
MODULE_VERSION("version 6.0");
MODULE_DESCRIPTION("A simple example for driver module");
02$ cat Makefile 
#obj-m        := dev.o drv.o
obj-m        := test.o
#KERNEL_DIR    := /linux-3.5-drv/
KERNEL_DIR    := /home/hyh/develop/linux-3.5/


all: 
    make -C $(KERNEL_DIR) M=$(shell pwd) modules
clean:
    make -C $(KERNEL_DIR) M=$(shell pwd) clean

    
02$


转载于:https://my.oschina.net/tplinuxhyh/blog/524572

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值