Skip to content
Snippets Groups Projects
Select Git revision
  • 1fbfee6c6dc0f4a4c587b6b163ee79643fc9aaa7
  • master default protected
  • android-msm-bullhead-3.10-nougat_kgdb_less_changes
  • android-msm-bullhead-3.10-nougat_kgdb
  • android-msm-bullhead-3.10-nougat_klist
  • android-4.4
  • android-msm-vega-4.4-oreo-daydream
  • android-msm-wahoo-4.4-p-preview-5
  • android-msm-wahoo-4.4-pie
  • android-msm-marlin-3.18-p-preview-5
  • android-msm-marlin-3.18-pie
  • android-msm-wahoo-2018.07-oreo-m2
  • android-msm-wahoo-2018.07-oreo-m4
  • android-msm-wahoo-4.4-p-preview-4
  • android-msm-bullhead-3.10-oreo-m6
  • android-msm-angler-3.10-oreo-m6
  • android-msm-marlin-3.18-p-preview-4
  • android-msm-stargazer-3.18-oreo-wear-dr
  • android-msm-catshark-3.18-oreo-wear-dr
  • android-msm-wahoo-4.4-oreo-m2
  • android-msm-wahoo-4.4-oreo-m4
  • android-daydreamos-8.0.0_r0.5
  • android-8.1.0_r0.92
  • android-8.1.0_r0.91
  • android-daydreamos-8.0.0_r0.4
  • android-p-preview-5_r0.2
  • android-p-preview-5_r0.1
  • android-9.0.0_r0.5
  • android-9.0.0_r0.4
  • android-9.0.0_r0.2
  • android-9.0.0_r0.1
  • android-8.1.0_r0.81
  • android-8.1.0_r0.80
  • android-8.1.0_r0.78
  • android-8.1.0_r0.76
  • android-8.1.0_r0.75
  • android-8.1.0_r0.72
  • android-8.1.0_r0.70
  • android-p-preview-4_r0.2
  • android-p-preview-4_r0.1
  • android-wear-8.0.0_r0.30
41 results

class.c

Blame
  • user avatar
    Greg Kroah-Hartman authored
    This renames the struct class "subsys" field to be "class_subsys" to
    make things easier when struct bus_type and struct class merge in the
    future.  It also makes grepping for fields easier as well.
    
    Based on an idea from Kay.
    
    Cc: Kay Sievers <kay.sievers@vrfy.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    1fbfee6c
    History
    class.c 9.72 KiB
    /*
     * class.c - basic device class management
     *
     * Copyright (c) 2002-3 Patrick Mochel
     * Copyright (c) 2002-3 Open Source Development Labs
     * Copyright (c) 2003-2004 Greg Kroah-Hartman
     * Copyright (c) 2003-2004 IBM Corp.
     *
     * This file is released under the GPLv2
     *
     */
    
    #include <linux/device.h>
    #include <linux/module.h>
    #include <linux/init.h>
    #include <linux/string.h>
    #include <linux/kdev_t.h>
    #include <linux/err.h>
    #include <linux/slab.h>
    #include <linux/genhd.h>
    #include "base.h"
    
    #define to_class_attr(_attr) container_of(_attr, struct class_attribute, attr)
    
    static ssize_t class_attr_show(struct kobject *kobj, struct attribute *attr,
    			       char *buf)
    {
    	struct class_attribute *class_attr = to_class_attr(attr);
    	struct class_private *cp = to_class(kobj);
    	ssize_t ret = -EIO;
    
    	if (class_attr->show)
    		ret = class_attr->show(cp->class, buf);
    	return ret;
    }
    
    static ssize_t class_attr_store(struct kobject *kobj, struct attribute *attr,
    				const char *buf, size_t count)
    {
    	struct class_attribute *class_attr = to_class_attr(attr);
    	struct class_private *cp = to_class(kobj);
    	ssize_t ret = -EIO;
    
    	if (class_attr->store)
    		ret = class_attr->store(cp->class, buf, count);
    	return ret;
    }
    
    static void class_release(struct kobject *kobj)
    {
    	struct class_private *cp = to_class(kobj);
    	struct class *class = cp->class;
    
    	pr_debug("class '%s': release.\n", class->name);
    
    	if (class->class_release)
    		class->class_release(class);
    	else
    		pr_debug("class '%s' does not have a release() function, "
    			 "be careful\n", class->name);
    }
    
    static struct sysfs_ops class_sysfs_ops = {
    	.show	= class_attr_show,
    	.store	= class_attr_store,
    };
    
    static struct kobj_type class_ktype = {
    	.sysfs_ops	= &class_sysfs_ops,
    	.release	= class_release,