• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ class_unregister函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中class_unregister函数的典型用法代码示例。如果您正苦于以下问题:C++ class_unregister函数的具体用法?C++ class_unregister怎么用?C++ class_unregister使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了class_unregister函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: cleanup_basic_device_module

static void __exit cleanup_basic_device_module(void)
{
    class_unregister(&lfs_sysfs_class);
    // kobject_put(lfs_kobj);
    device_destroy(lfs_class, MKDEV(major_number, 0));
    class_unregister(lfs_class);
    class_destroy(lfs_class);
    unregister_chrdev(major_number, DEVICE_NAME);
    printk(KERN_INFO "LSDDriver: Bye!\n");
}
开发者ID:buharin,项目名称:KernelDev,代码行数:10,代码来源:driver.c


示例2: fir_init

static int __init fir_init(void)
{
	int ret;
	ret = register_chrdev(0,DEVICE_NAME, &fir_fops);
	if(ret < 0)
	{
		printk("fir: can't get major number\n");
		return ret;
	}

	fir_major = ret;
	fir_class = class_create(THIS_MODULE, "fir_class");
	if(IS_ERR(fir_class))
	{
		printk("fir: failed in creating class\n");
		unregister_chrdev(fir_major, DEVICE_NAME);
		return -1;
	}

	fir_device = device_create(fir_class,NULL,MKDEV(fir_major,0),NULL,DEVICE_NAME);
	if(IS_ERR(fir_device))
	{
		printk("fir: failed in creating device!\n");
		unregister_chrdev(fir_major, DEVICE_NAME);
		class_unregister(fir_class);
		class_destroy(fir_class);
		return -1;
	}
	
	fir_addr = (unsigned long) ioremap(FIR_BASEADDR, sizeof(u32));

	printk("fir installed successfully!\n");
	return 0;
}
开发者ID:shenerguang,项目名称:HadoopFIR,代码行数:34,代码来源:fir_driver.c


示例3: watchdog_dev_init

int __init watchdog_dev_init(void)
{
	int err;

	watchdog_wq = alloc_workqueue("watchdogd",
				      WQ_HIGHPRI | WQ_MEM_RECLAIM, 0);
	if (!watchdog_wq) {
		pr_err("Failed to create watchdog workqueue\n");
		return -ENOMEM;
	}

	err = class_register(&watchdog_class);
	if (err < 0) {
		pr_err("couldn't register class\n");
		goto err_register;
	}

	err = alloc_chrdev_region(&watchdog_devt, 0, MAX_DOGS, "watchdog");
	if (err < 0) {
		pr_err("watchdog: unable to allocate char dev region\n");
		goto err_alloc;
	}

	return 0;

err_alloc:
	class_unregister(&watchdog_class);
err_register:
	destroy_workqueue(watchdog_wq);
	return err;
}
开发者ID:AshishNamdev,项目名称:linux,代码行数:31,代码来源:watchdog_dev.c


示例4: dmabufr_exit

static void __exit dmabufr_exit(void)
{
	dev_t dev = MKDEV(major, 0);

	class_unregister(dmabufr_class);
	unregister_chrdev_region(dev, DMABUFR_NUM_DEVICES);
}
开发者ID:prabindh,项目名称:dmabufr,代码行数:7,代码来源:dmabufr.c


示例5: uart16550_cleanup

static void uart16550_cleanup(void)
{
        int have_com1 =0;
        int have_com2 = 0;
        cdev_del(firstcdev);
        cdev_del(secondcdev);         

          if(behavior==0x3){
                have_com1=1; have_com2=1;
         }
         else if(behavior==0x2){
                have_com1=0; have_com2=1;
         }
         else if(behavior==0x1){
                have_com1=1; have_com2=0;
         }

        if (have_com1) {
                /* Reset the hardware device for COM1 */
                uart16550_hw_cleanup_device(COM1_BASEPORT);
                /* Remove the sysfs info for /dev/com1 */
                device_destroy(uart16550_class, MKDEV(major, 0));
        }
        if (have_com2) {
                /* Reset the hardware device for COM2 */
                uart16550_hw_cleanup_device(COM2_BASEPORT);
                /* Remove the sysfs info for /dev/com2 */
                device_destroy(uart16550_class, MKDEV(major, 1));
        }
        
        class_unregister(uart16550_class);
        class_destroy(uart16550_class);
}
开发者ID:ThibaultUrien,项目名称:OS,代码行数:33,代码来源:uart16550.c


示例6: smc_mod_exit

static void __exit smc_mod_exit(void)
{
	platform_driver_unregister(&smc_driver);
	class_unregister(&smc_class);
	unregister_chrdev(smc_major, SMC_DEV_NAME);
	mutex_destroy(&smc_lock);
}
开发者ID:nspierbundel,项目名称:amlogic-common-3.0.8,代码行数:7,代码来源:smartcard.c


示例7: rmidev_exit

static void __exit rmidev_exit(void)
{
	pr_debug("%s: exiting.\n", __func__);
	platform_driver_unregister(&rmidev_driver);
	class_unregister(rmidev_device_class);
	class_destroy(rmidev_device_class);
}
开发者ID:Hadramos,项目名称:android_sony_xperiaz_kernel_sources,代码行数:7,代码来源:clearpad_rmi_dev.c


示例8: smc_mod_init

static int __init smc_mod_init(void)
{
	int ret = -1;
	
	mutex_init(&smc_lock);
	
	smc_major = register_chrdev(0, SMC_DEV_NAME, &smc_fops);
	if(smc_major<=0) {
		mutex_destroy(&smc_lock);
		pr_error("register chrdev error\n");
		goto error_register_chrdev;
	}
	
	if(class_register(&smc_class)<0) {
		pr_error("register class error\n");
		goto error_class_register;
	}
	
	if(platform_driver_register(&smc_driver)<0) {
		pr_error("register platform driver error\n");
		goto error_platform_drv_register;
	}
	
	return 0;
error_platform_drv_register:
	class_unregister(&smc_class);
error_class_register:
	unregister_chrdev(smc_major, SMC_DEV_NAME);
error_register_chrdev:
	mutex_destroy(&smc_lock);
	return ret;
}
开发者ID:nspierbundel,项目名称:amlogic-common-3.0.8,代码行数:32,代码来源:smartcard.c


示例9: macvtap_init

static int macvtap_init(void)
{
	int err;

	err = tap_create_cdev(&macvtap_cdev, &macvtap_major, "macvtap");

	if (err)
		goto out1;

	err = class_register(&macvtap_class);
	if (err)
		goto out2;

	err = register_netdevice_notifier(&macvtap_notifier_block);
	if (err)
		goto out3;

	err = macvlan_link_register(&macvtap_link_ops);
	if (err)
		goto out4;

	return 0;

out4:
	unregister_netdevice_notifier(&macvtap_notifier_block);
out3:
	class_unregister(&macvtap_class);
out2:
	tap_destroy_cdev(macvtap_major, &macvtap_cdev);
out1:
	return err;
}
开发者ID:mdamt,项目名称:linux,代码行数:32,代码来源:macvtap.c


示例10: motor_init

static int __init motor_init(void)
{
	int err;

	printk(KERN_INFO DRV_DESC ", version " DRV_VERSION "\n");

	/*register the class */
	motor_class = class_create(THIS_MODULE, "motor_class");
	if(IS_ERR(motor_class)){
		goto err;
	}

	err = motor_add_one(0, mot0);
	if (err) goto err;

	err = motor_add_one(1, mot1);
	if (err) goto err;

	err = motor_add_one(2, mot2);
	if (err) goto err;

	err = motor_add_one(3, mot3);
	if (err) goto err;

	return 0;

err:
	class_unregister(motor_class);
	return -1;
}
开发者ID:claudyus,项目名称:kstepper,代码行数:30,代码来源:stepper-drv.c


示例11: sysmon_exit

/** @brief The LKM cleanup function
 *  Similar to the initialization function, it is static. The __exit macro notifies that if this
 *  code is used for a built-in driver (not a LKM) that this function is not required.
 */
static void __exit sysmon_exit(void)
{
    data_packet_list_node *dp = NULL;
    unsigned long flags;

    device_destroy(SYSMONClass, MKDEV(majorNumber, 0));     // remove the device
    class_unregister(SYSMONClass);                          // unregister the device class
    class_destroy(SYSMONClass);                             // remove the device class
    unregister_chrdev(majorNumber, DEVICE_NAME);             // unregister the major number

    dp = getNodeFromActiveList();
    
    spin_lock_irqsave(&dp_list_lock, flags);

    while(dp != NULL)
    {
        kfree(dp);
        dp = getNodeFromActiveList();
    }

    dp = getNodeFromStorageList(false);

    while(dp != NULL)
    {
        kfree(dp);
        dp = getNodeFromStorageList(false);
    }
  
    spin_unlock_irqrestore(&dp_list_lock, flags);
  
    printk(KERN_INFO "SYSMON: Goodbye from the LKM!\n");
}
开发者ID:ileshenko,项目名称:evernote,代码行数:36,代码来源:sysmon_driver.c


示例12: ultrasonic_init

static int __init ultrasonic_init(void) 
{
	int ret;
	ret = register_chrdev(0,DEVICE_NAME, &ultrasonic_fops);
	if(ret < 0)
	{
		printk("ultrasonic: can't get major number\n");
		return ret;
	}
	ultrasonic_major = ret;
	ultrasonic_class = class_create(THIS_MODULE, "ultrasonic_class");
	if(IS_ERR(ultrasonic_class))
	{
		printk("ultrasonic: failed in creating class\n");
		unregister_chrdev(ultrasonic_major, DEVICE_NAME);
		return -1;
	}
	ultrasonic_device = device_create(ultrasonic_class,\
									  NULL, \
									  MKDEV(ultrasonic_major, 0), \
									  NULL,\
									  DEVICE_NAME);
	if(IS_ERR(ultrasonic_device))
	{
		printk("ultrasonic: failed in creating device!\n");
		unregister_chrdev(ultrasonic_major, DEVICE_NAME);
		class_unregister(ultrasonic_class);
		class_destroy(ultrasonic_class);
		return -1;
	}
	base_addr = (unsigned long) ioremap(ULTRASONIC_PHY_ADDR, sizeof(u32));
	printk("Ultrasonic initail successfully\n");
	return 0;
}
开发者ID:Frank-Shaw,项目名称:zrobot_v1,代码行数:34,代码来源:ultrasonic.c


示例13: ebbchar_exit

static void __exit ebbchar_exit(void){
	device_destroy(ebbcharClass, MKDEV(majorNumber, 0));
	class_unregister(ebbcharClass);
	class_destroy(ebbcharClass);
	unregister_chrdev(majorNumber, DEVICE_NAME);
	printk(KERN_INFO "EBBChar: Goodbye from the LKM!\n");
}
开发者ID:CarltonSemple,项目名称:exploringBB,代码行数:7,代码来源:ebbchar.c


示例14: init_ge2d_device

/***********************************************************************
*
* module  section    (init&exit)
*
************************************************************************/
static int  
init_ge2d_device(void)
{
	int  ret=0;
	
	strcpy(ge2d_device.name,"ge2d");
	ret=register_chrdev(0,ge2d_device.name,&ge2d_fops);
	if(ret <=0) 
	{
		amlog_level(LOG_LEVEL_HIGH,"register ge2d device error\r\n");
		return  ret ;
	}
	ge2d_device.major=ret;
	ge2d_device.dbg_enable=0;
	amlog_level(LOG_LEVEL_LOW,"ge2d_dev major:%d\r\n",ret);
	ret = class_register(&ge2d_class);
	if(ret<0 )
	{
		amlog_level(LOG_LEVEL_HIGH,"error create ge2d class\r\n");
		return ret;
	}
	ge2d_device.cla=&ge2d_class ;
	ge2d_device.dev=device_create(ge2d_device.cla,NULL,MKDEV(ge2d_device.major,0),NULL,ge2d_device.name);
	if (IS_ERR(ge2d_device.dev)) {
		amlog_level(LOG_LEVEL_HIGH,"create ge2d device error\n");
		class_unregister(ge2d_device.cla);
		return -1 ;
	}
	return ge2d_setup();
	
}
开发者ID:rofehr,项目名称:aml-original-linux-kernel,代码行数:36,代码来源:ge2d_main.c


示例15: macvtap_exit

static void macvtap_exit(void)
{
	rtnl_link_unregister(&macvtap_link_ops);
	unregister_netdevice_notifier(&macvtap_notifier_block);
	class_unregister(&macvtap_class);
	tap_destroy_cdev(macvtap_major, &macvtap_cdev);
}
开发者ID:mdamt,项目名称:linux,代码行数:7,代码来源:macvtap.c


示例16: hv_cdev_exit

static void __exit hv_cdev_exit(void)
{
	int i;

	PINFO("EXIT\n");

	if (!get_use_mmls_cdev()) {
		PINFO("%s: nothing to un-init; not using cdev\n", __func__);
		goto not_using_cdev;
	}

	for (i = 0; i < HV_CDEV_N_MINORS; i++) {
		hv_cdev_device_num = MKDEV(hv_cdev_major, HV_CDEV_FIRST_MINOR+i);
		device_destroy(devices[i].hv_cdev_class, hv_cdev_device_num);
		class_unregister(devices[i].hv_cdev_class);
		class_destroy(devices[i].hv_cdev_class);
		cdev_del(&devices[i].cdev);
	}

	unregister_chrdev_region(hv_cdev_device_num, HV_CDEV_N_MINORS);

	mmls_iomem_release();

not_using_cdev:
	return;
}
开发者ID:ssg10,项目名称:linux_char_driver_and_app,代码行数:26,代码来源:hv_cdev.c


示例17: Gpio_cleanup

//----------------------------------------------------------------------------------------------//
//																								//
// Function Name		:	Gpio_cleanup														//
//																								//
// Description			:	Module destroy function	(rmmod)										//
//																								//
// Return				:   Nothing																//
//																								//
//----------------------------------------------------------------------------------------------//
static void __exit Gpio_cleanup (void)
{
	// Variable initialization
	int iCpt = 0;
    
    // For all gpio
	for (iCpt=0; iCpt<DRIVER_DEV_REGISTER_NB; iCpt++) {
		// Delete its node and its entrie in "/dev"
		device_destroy (m_pGpioClass, MKDEV (m_uiGpioMajor, m_uiGpioMinor+iCpt));
	}
    
    // Delete the entries in "/sys/class"
    class_unregister(m_pGpioClass);
    class_destroy (m_pGpioClass);

	// Destroy the 'm_oGpioCDev' global variable
    cdev_del (&m_oGpioCDev);
	
	// Deallocates the driver 'DRV_DEV_NAME' using its first node 'm_oGpioDev' and the number of minor allocated
	unregister_chrdev_region (m_oGpioDev, DRIVER_DEV_REGISTER_NB);
	
	// Restore gpio register default mode for all change mux mode
	RestoreAllChangedMux ();
    
    printk (KERN_NOTICE "%s%s : Driver unloaded\n", DRV_NAME, __func__);
}
开发者ID:appert44,项目名称:Gumstix,代码行数:35,代码来源:ifsttar-gpio-drv.c


示例18: zrcar_wheel_module_exit

static void __exit zrcar_wheel_module_exit(void)
{
    device_destroy(wheel_class, MKDEV(wheel_major, 0));
    class_unregister(wheel_class);
    class_destroy(wheel_class);
    unregister_chrdev(wheel_major, DEVICE_NAME);
    printk("wheel module exit.\n");
}
开发者ID:chhx001,项目名称:fs-zrobot-zed,代码行数:8,代码来源:wheel_driver.c


示例19: wifi_power_remove

static int wifi_power_remove(struct platform_device *pdev)
{
    unregister_chrdev_region(wifi_power_devno,1);
    class_unregister(&wifi_power_class);
    device_destroy(NULL, wifi_power_devno);
    cdev_del(wifi_power_cdev);
    return 0;
}
开发者ID:MindShow,项目名称:odroid-c1-kernel-3.19,代码行数:8,代码来源:wifi_power.c


示例20: cleanup_module

void cleanup_module(void)
{
	device_destroy(projectdriverClass, MKDEV(majorNumber, 0));
	class_unregister(projectdriverClass);
	class_destroy(projectdriverClass);
	unregister_chrdev(majorNumber, DEVICE_NAME);
	printk(KERN_INFO "Goodbye From Brett and Julian\n");
}
开发者ID:julianrojasm,项目名称:DeviceD,代码行数:8,代码来源:deviceDriver.c



注:本文中的class_unregister函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ classname函数代码示例发布时间:2022-05-30
下一篇:
C++ class_to_shost函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap